Skip to main content

GPU czy CPU dla AI: na czym polega różnica

DLA AGENTÓW AIChatGPTClaude

Głębokie porównanie procesorów centralnych (CPU) i graficznych (GPU) w kontekście zadań uczenia maszynowego. Wyjaśnienie fundamentalnej różnicy między orientacją na opóźnienia (Latency-oriented) a przepustowość (Throughput-oriented), przepustowości magistrali pamięci (DDR5 vs HBM3e) oraz benchmarking w CLI.

1. Przegląd koncepcji i fundamentalna różnica

Aby zrozumieć, dlaczego akceleratory graficzne stały się główną walutą infrastrukturalną XXI wieku, należy przyjrzeć się fundamentalnej różnicy w filozofii projektowania układów scalonych:

  • CPU (Central Processing Unit) – zoptymalizowany pod kątem minimalizacji opóźnień (Latency-Oriented): To niewielka grupa 8–32 niezwykle potężnych, uniwersalnych rdzeni z ogromnymi pamięciami podręcznymi L1/L2/L3 oraz złożonymi blokami predykcji skoków (Branch Predictor). CPU został stworzony do maksymalnie szybkiego wykonania jednej sekwencyjnej ścieżki instrukcji systemu operacyjnego.
  • GPU (Graphics Processing Unit) – zoptymalizowany pod kątem maksymalnej przepustowości (Throughput-Oriented): To macierz 5 000–18 000 prostych, równoległych jednostek obliczeniowych (ALU), pogrupowanych w wieloprocesory strumieniowe (SM). Nie marnują one tranzystorów na predykcję skoków, lecz wykorzystują paradygmat SIMT (Single Instruction, Multiple Threads): ta sama operacja matematyczna (np. mnożenie wektorów) jest jednocześnie nakładana na tysiące strumieni danych.

Model mentalny: CPU to szybki kurier w sportowym aucie, który natychmiast dostarczy jedną pilną paczkę. GPU to gigantyczny pociąg towarowy, który przewozi 10 000 ton żwiru w jednym przejeździe.

┌─────────────────────────────────────────────────────────────┐
│                   PORÓWNANIE ARCHITEKTUR                     │
├─────────────────────────────────────────────────────────────┤
│ 1. CPU: Kilka szybkich rdzeni + Ogromna pamięć podręczna L3 │
│    [ RDZEŃ 1 ]  [ RDZEŃ 2 ]  [ RDZEŃ 3 ]  [ RDZEŃ 4 ]       │
│    └───────────────── PAMIĘĆ PODRĘCZNA L3 (64MB) ───────────┘│
│    Magistrala pamięci: DDR5 (60 - 90 GB/s)                  │
├─────────────────────────────────────────────────────────────┤
│ 2. GPU: Tysiące prostych rdzeni + Ultra-szeroka magistrala   │
│    pamięci                                                  │
│    [SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM] ...     │
│    (do 18 000 rdzeni CUDA + Tensor Cores)                   │
│    Magistrala pamięci: GDDR6X / HBM3e (1 000 - 3 350 GB/s)  │
└─────────────────────────────────────────────────────────────┘

2. Praktyczny benchmarking: weryfikacja przyspieszenia przez CLI

Możesz samodzielnie zmierzyć szybkość mnożenia macierzy na CPU versus GPU za pomocą prostego jednowierszowego testu w Pythonie:

# Тест швидкості множення матриць 8192x8192 на доступних пристроях
python3 -c "
import torch, time
n = 8192

# 1. Тест на CPU
a_cpu, b_cpu = torch.randn(n, n), torch.randn(n, n)
t0 = time.time()
torch.mm(a_cpu, b_cpu)
print(f'CPU Time: {time.time() - t0:.3f} s')

# 2. Тест на GPU (якщо є CUDA або Apple MPS)
device = 'cuda' if torch.cuda.is_available() else ('mps' if torch.backends.mps.is_available() else None)
if device:
    a_gpu, b_gpu = a_cpu.to(device), b_cpu.to(device)
    torch.mm(a_gpu, b_gpu) # warmup
    t0 = time.time()
    torch.mm(a_gpu, b_gpu)
    if device == 'cuda': torch.cuda.synchronize()
    print(f'GPU ({device}) Time: {time.time() - t0:.4f} s')
"

Na nowoczesnym systemie GPU kończy obliczenia w 0,015 sekundy, podczas gdy 16-rdzeniowy flagowy CPU zużywa na tę samą operację ponad 0,8–1,2 sekundy (różnica rzędu 50–80 razy!).


3. Dlaczego inferencja LLM jest ograniczona pamięcią (Memory-Bound)

Podczas fazy generowania tekstu model działa zgodnie z regułą: aby wygenerować jeden token, musi odczytać z pamięci wszystkie wagi modelu raz:

  • Jeśli model Llama 3.1 8B w formacie 4-bit zajmuje 5 GB:
    • Na systemie z magistralą DDR5 (prędkość odczytu 60 GB/s):
      Teoretyczny limit prędkości: $\frac{60 \text{ GB/s}}{5 \text{ GB}} \approx 12 \text{ tokenów/sek}$.
    • Na karcie graficznej RTX 4090 (przepustowość pamięci 1 000 GB/s):
      Teoretyczny limit prędkości: $\frac{1000 \text{ GB/s}}{5 \text{ GB}} \approx 200 \text{ tokenów/sek}$.

Dlatego właśnie karta graficzna pokonuje procesor w generatywnym AI nie tyle dzięki częstotliwości taktowania czy liczbie rdzeni, co dzięki kolosalnej prędkości transferu danych między chipem pamięci a jednostkami obliczeniowymi.


4. Podsumowanie inżynierskie

  • Do orkiestracji agentów, parsowania kodu, routingu żądań HTTP oraz interakcji z bazami danych procesor (CPU) pozostaje absolutnie niezastąpionym gospodarzem systemu.
  • Do obliczania wag macierzy sieci neuronowych, wektoryzacji embeddingów oraz generowania treści GPU jest bezkonkurencyjne.
/ Najczęściej zadawane pytaniaSchema.org FAQPage

FAQ: GPU czy CPU dla AI: na czym polega różnica

Kwestia nie dotyczy tylko liczby rdzeni, ale przede wszystkim przepustowości pamięci (Memory Bandwidth). Generacja każdego nowego tokenu wymaga przesyłania wszystkich wag modelu przez pamięć. Pamięć systemowa DDR5 zapewnia prędkość 60–100 GB/s, podczas gdy pamięć wideo GDDR6X w RTX 4090 osiąga ponad 1 000 GB/s, a pamięć HBM3e w akceleratorach H100 – do 3 350 GB/s (czyli 30–50 razy szybciej).
/ Linki wewnętrzne
Wszystkie hasła