GPU ou CPU para IA: qual a diferença
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}$.
- Em um sistema com barramento DDR5 (velocidade de leitura de 60 GB/s):
É 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.
FAQ: GPU ou CPU para IA: qual a diferença
Termos relacionados
Memória de Vídeo (VRAM) para IA
A memória de vídeo da placa gráfica (Video RAM), onde são carregados os pesos da rede neural e a janela de contexto. É o principal gargalo de hardware: se o modelo não couber na VRAM, ele não será executado ou funcionará dezenas de vezes mais lentamente no processador comum.
Apple Silicon para IA (Série M e Memória Unificada)
Arquitetura dos processadores Apple (M1/M2/M3/M4) com Arquitetura de Memória Unificada. Permite que todo o conjunto de memória RAM (até 128-192 GB) seja acessível pelo chip gráfico como VRAM, viabilizando a execução de grandes redes neurais sem necessidade de placas de vídeo de servidor.
Neural Processing Unit (NPU)
Um microchip de hardware especializado (Neural Processing Unit), projetado exclusivamente para executar redes neurais artificiais com consumo mínimo de energia. Responsável pelo desfoque de fundo em videochamadas, aprimoramento de fotos e assistentes de IA locais sem esgotar a bateria.
vLLM (Motor de inferência de alto desempenho)
O principal motor de inferência e serventia de LLMs de código aberto, que revolucionou a capacidade de processamento graças ao algoritmo de virtualização de memória PagedAttention e ao batching contínuo.