Skip to main content

GPU ou CPU para IA: qual a diferença

PARA AGENTES DE IAChatGPTClaude

Comparação detalhada entre processadores centrais (CPU) e gráficos (GPU) para tarefas de aprendizado de máquina. Explicação da diferença fundamental entre latência (orientado a Latency) e throughput (orientado a Throughput), largura de banda da memória (DDR5 vs HBM3e) e benchmarking via CLI.

1. Visão geral do conceito e a diferença fundamental

Para compreender por que as unidades de processamento gráfico (GPUs) se tornaram a principal moeda da infraestrutura no século XXI, é necessário analisar a diferença fundamental nas filosofias de design dos chips de silício:

  • CPU (Central Processing Unit) — otimizada para minimização de latência (Latency-Oriented): Trata-se de um pequeno conjunto de 8–32 núcleos universais extremamente poderosos, equipados com grandes caches L1/L2/L3 e blocos complexos de predição de desvios (Branch Predictor). A CPU foi projetada para executar uma única thread sequencial de instruções intrincadas do sistema operacional o mais rápido possível.
  • GPU (Graphics Processing Unit) — otimizada para máxima throughput (Throughput-Oriented): É um array composto por 5.000–18.000 núcleos computacionais paralelos simples (ALU), agrupados em multiprocessadores stream (SM). Eles não desperdiçam transistores com predição de desvios, mas utilizam a paradigma SIMT (Single Instruction, Multiple Threads): a mesma operação matemática (por exemplo, multiplicação de vetores) é aplicada simultaneamente a milhares de fluxos de dados.

Modelo mental: A CPU é um mensageiro veloz em um carro esportivo, capaz de entregar imediatamente um pacote urgente. A GPU é um trem de carga gigante, transportando 10.000 toneladas de brita em uma única viagem.

┌─────────────────────────────────────────────────────────────┐
│                   COMPARAÇÃO DE ARQUITETURAS                 │
├─────────────────────────────────────────────────────────────┤
│ 1. CPU: Vários núcleos rápidos + Cache L3 Gigante            │
│    [ NÚCLEO 1 ]  [ NÚCLEO 2 ]  [ NÚCLEO 3 ]  [ NÚCLEO 4 ]   │
│    └───────────────── CACHE L3 (64MB) ─────────────────┘     │
│    Barramento de memória: DDR5 (60 - 90 GB/s)               │
├─────────────────────────────────────────────────────────────┤
│ 2. GPU: Milhares de núcleos simples + Barramento de memória │
│         ultralargo                                          │
│    [SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM][SM] ...     │
│    (até 18 000 núcleos CUDA + Tensor Cores)                 │
│    Barramento de memória: GDDR6X / HBM3e (1 000 - 3 350 GB/s)│
└─────────────────────────────────────────────────────────────┘

2. Benchmarking prático: verificando o aceleramento via CLI

Você pode medir independentemente a velocidade da multiplicação de matrizes na CPU versus a GPU usando um simples teste de linha única em Python:

# Тест швидкості множення матриць 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')
"

Em um sistema moderno, a GPU conclui o cálculo em 0,015 segundos, enquanto uma CPU flagship de 16 núcleos leva mais de 0,8–1,2 segundo para a mesma operação (uma diferença de 50 a 80 vezes!).


3. Por que a inferência de LLMs é limitada pela memória (Memory-Bound)

Durante a fase de geração de texto, o modelo opera sob a regra: para emitir um token, é necessário ler da memória todos os pesos do modelo uma vez:

  • Se o modelo Llama 3.1 8B no formato de 4 bits ocupa 5 GB:
    • Em um sistema com barramento DDR5 (velocidade de leitura de 60 GB/s):
      Limite teórico de velocidade: $\frac{60 \text{ GB/s}}{5 \text{ GB}} \approx 12 \text{ tokens/seg}$.
    • Em uma placa de vídeo RTX 4090 (velocidade de memória de 1.000 GB/s):
      Limite teórico de velocidade: $\frac{1000 \text{ GB/s}}{5 \text{ GB}} \approx 200 \text{ tokens/seg}$.

É exatamente por isso que a placa de vídeo supera o processador na IA generativa não tanto pela frequência ou número de núcleos, mas pela colossal velocidade de transferência de dados entre o chip de memória e os blocos de computação.


4. Conclusão de engenharia final

  • Para orquestração de agentes, parsing de código, roteamento de requisições HTTP e interação com bancos de dados, o processador (CPU) permanece como o senhor absoluto e insubstituível do sistema.
  • Para cálculo de matrizes de pesos de redes neurais, vetorização de embeddings e geração de mídia, o acelerador gráfico (GPU) com alta largura de banda de memória (VRAM) é o padrão sem alternativas.
/ Perguntas FrequentesSchema.org FAQPage

FAQ: GPU ou CPU para IA: qual a diferença

A questão não está apenas nos núcleos, mas na largura de banda da memória (Memory Bandwidth). A geração de cada novo token exige o carregamento de todos os pesos do modelo através da memória. A memória do sistema DDR5 oferece velocidades de 60–100 GB/s, enquanto a memória de vídeo GDDR6X na RTX 4090 entrega mais de 1.000 GB/s, e a memória HBM3e nos aceleradores H100 chega a 3.350 GB/s (30 a 50 vezes mais rápido).
/ Links internos
Todos os termos