GPU vs TPU: cómo funcionan los chips de IA

Mascote do LinuxPro comparando GPU e TPU

Por trás de cada token do ChatGPT, de cada frame do Sora e de cada LLM que você roda no Ollama, tem um acelerador fazendo a mesma conta trilhões de vezes: multiplicação de matrizes. Os dois jeitos de fazer isso em silício — GPU (NVIDIA) e TPU (Google) — partem de filosofias opostas. Este texto parte do vídeo GPU vs TPU: How AI Chips Actually Work, do Pouria Taj.

O vídeo usa a H100 y la TPU v5e como peças de ensino. Em 2026 o chão de fábrica já é Blackwell de um lado e Trillium/Ironwood do outro — a lição de arquitetura não mudou.

Por que IA é MatMul

Um LLM não vomita o parágrafo de uma vez. A geração é autoregressiva: o prompt vira embeddings, o Transformer produz uma distribuição sobre o próximo token, o token escolhido volta para a entrada, e o ciclo se repete.

Nos diagramas, neurônios e setinhas. No silício, matrizes de pesos. O GPT-3 (175 B, 96 camadas) já empilha dezenas de milhares delas; Claude Opus e GPT-4 sobem para centenas de bilhões a trilhões de parâmetros. Quase todo o custo é o mesmo MAC: linha × coluna, soma, grava a célula da saída.

A sorte do hardware: cada célula da matriz resultante é independente. Não precisa esperar a [0,0] para calcular a [500,200]. Por isso CPU de poucos núcleos rápidos perde feio — e por isso GPU e TPU existem.

Por dentro da GPU: H100

O die GH100 (Hopper) da H100 SXM: 80 bilhões de transistores, 8 GPCs, 132 SMs, 80 GB de HBM3 a 3,35 TB/s, TDP até 700 W.

GH100  (H100 SXM)
80 B transistores | 8 GPC | 132 SM | 80 GB HBM3

  SM × 132
    4 warp schedulers
    128 CUDA cores  (FP32/INT32)
    4 Tensor Cores  (MatMul 4×4, FP8/FP16/BF16)
    256 KB registradores | até 228 KB shared/L1
  • 16.896 CUDA cores: ALU de uso geral. A ~1,98 GHz isso dá ~67 TFLOPS FP32 (um FMA por ciclo).
  • 528 Tensor Cores (4 por SM): hardware de álgebra densa. Bloco de matriz por instrução, FP16/BF16/FP8. Pico de marketing: ~2 PFLOPS FP8 denso, ~4 PFLOPS com esparsidade 2:4.

O host despacha um kernel. Uma MatMul 4096×4096 tem 16,7 milhões de células → milhões de threads, empacotadas em blocos (até 1024). O GigaThread Engine espalha os blocos pelos 132 SMs. Dentro do SM, as threads andam em warps de 32, mesma instrução no mesmo ciclo (SIMT).

O gargalo: memory wall

Um MAC nos registradores: ~4 ciclos. Trazer o número da HBM3 até o core: centenas de ciclos. Gravar o resultado: outra viagem. E milhares de núcleos vizinhos buscam, ao mesmo tempo, a mesma linha e a mesma coluna que o colega do lado acabou de carregar.

Boa parte da energia da GPU não é matemática — é mover dado. É o mesmo muro que a indústria de DRAM tenta furar com HBM e LPDDR (veja a CXMT no LPDDR6).

A aposta da TPU: arranjo sistólico

A pergunta do Google: e se o núcleo passasse o número que acabou de usar direto para o vizinho, sem devolver para a memória?

A TPU é um ASIC só de tensor. Na v5e, cada TensorCore tem quatro MXU de 128×128 MACs — 16.384 unidades por array, quase o total de CUDA cores da H100, mas soldadas umas nas outras. Sem registrador no meio. O nome vem da sístole: o dado pulsa no ritmo do clock.

  X0      X1      X2
  |       |       |
  v       v       v
Y0→ MAC → MAC → MAC →
      |       |       |
      v       v       v
Y1→ MAC → MAC → MAC →
      |       |       |
      v       v       v
     S0      S1      S2
  1. Pesos param: saem da HBM, entram na VMEM (SRAM) e ficam fixos em cada célula do array.
  2. Entradas fluem: o prompt entra pela esquerda e anda um passo por ciclo.
  3. Acúmulo desce: cada célula multiplica o que passa pelo peso local, soma o que veio de cima, manda para baixo.
  4. Resultado sai na borda — coluna a coluna, sem round-trip.

A HBM é tocada duas vezes: carregar peso, ler o resultado. Quase 100% da energia vira conta, não trânsito. v5e: ~197 TFLOPS BF16, 16 GB HBM, 819 GB/s — menos pico que a H100, mais joule por MAC em MatMul densa. Em 2026 o mesmo desenho cresceu: Trillium (v6e) foi a 256×256; Ironwood (TPU7x) chega a ~4,6 PFLOPS FP8 e 192 GB de HBM3e por chip, ainda só no GCP.

Em 2026: Blackwell de um lado, Ironwood do outro

H100 e v5e continuam sendo as melhores peças de ensino — o desenho é limpo e os números cabem na cabeça. Mas quem for comprar hoje não compra nenhuma das duas. Vale ver o que a mesma lógica virou quando levada ao limite.

Do lado da NVIDIA, a arquitetura Blackwell abandonou o die único. Um GPU Blackwell empacota 208 bilhões de transistores em dois dies no limite do retículo, costurados por uma interconexão chip a chip de 10 TB/s que faz os dois se comportarem como uma GPU só. O Transformer Engine de segunda geração desceu para FP4: menos bits por número, o dobro de vazão na mesma área. Num DGX B200, cada GPU entrega da ordem de 9 PFLOPS FP4 densos, com 180 GB de HBM3e e ~8 TB/s de banda — contra os 80 GB e 3,35 TB/s da H100. E o recorte de venda deixou de ser a placa: o GB200 NVL72 é um rack refrigerado a líquido com 36 CPUs Grace e 72 GPUs Blackwell num único domínio NVLink.

Do lado do Google, o TPU7x Ironwood seguiu o caminho oposto ao da flexibilidade: dois TensorCores e quatro SparseCores por chip, MXU de 256×256, 4.614 TFLOPS FP8, 192 GB de HBM3E a 7.380 GB/s, e superpod de 9.216 chips ligados por comutação óptica. Foi anunciado em abril de 2025 e entrou em disponibilidade geral em 31 de março de 2026.

Repare que os dois convergiram no formato numérico — FP4 e FP8 — e divergiram no escopo. A NVIDIA empilha silício genérico e resolve a escala com NVLink; o Google mantém o array rígido e resolve a escala com espelho e laser. A conta de baixo, o MAC, é a mesma dos dois lados.

Não é mais um duelo: o terceiro banco

Em 2017 a pergunta “GPU ou TPU?” fazia sentido porque só havia essas duas respostas. Em 2026 o mapa tem mais gente.

  • AMD. A linha Instinct (MI300X, MI325X e sucessoras) coloca muita HBM por placa e roda em Linux com o ROCm, que é aberto. O gargalo nunca foi o silício: é a distância entre um kernel que compila em CUDA e o mesmo kernel em HIP. A cada release essa distância encolhe, mas ainda existe.
  • AWS Trainium. A Amazon fez o próprio ASIC e construiu um data center inteiro em volta dele — é o assunto do post do Project Rainier. Mesma tese da TPU, dono diferente.
  • NPUs no processador. Intel, AMD e os SoCs ARM já embarcam bloco de inferência no die da CPU. Não treinam nada, mas resolvem o modelo pequeno rodando local sem acender a GPU.

O padrão é claro: quem tem carga previsível e escala suficiente para amortizar um projeto de chip constrói o ASIC. Todo mundo mais aluga GPU.

GPU vs TPU, lado a lado

NVIDIA H100 (GPU) Google TPU v5e
Tipo SIMT programável ASIC de tensor
MatMul CUDA + Tensor Cores, via registrador/cache MXU sistólico 128×128
Memória HBM o tempo todo dado flui célula a célula
Pico ~2 PFLOPS FP8 denso / 700 W ~197 TFLOPS BF16
Onde roda AWS, Azure, GCP, on-prem, PC só Google (GCP / pods)
Software CUDA, PyTorch, Triton, TensorRT JAX, TensorFlow, XLA, PyTorch-XLA
Geração de 2026 Blackwell B200 / GB200 NVL72 (FP4) TPU7x Ironwood (FP8, superpod de 9.216)

Por que o mundo ainda compra GPU

Se a TPU gasta menos joule na mesma conta, por que a fila da NVIDIA não acaba?

  1. Rigidez do ASIC. A TPU é rápida porque o silício é a matemática dos Transformers de agora. Um modelo novo que não viva de MatMul densa deixa um data center de ASIC no vácuo.
  2. A GPU não fez essa aposta. Qualquer kernel — física, molécula, híbrido, o próximo paper — cabe em software.
  3. O fosso do CUDA. Duas décadas de bibliotecas e gente que já sabe. Código novo sobe no driver da NVIDIA no mesmo dia. Risco de adoção, para empresa, é o que decide a compra — não o TDP da MXU.

E na sua máquina?

Nada disso muda o fato de que, no Linux da sua mesa, o acelerador é a GPU que está no slot PCIe. Vale saber ler o que você tem:

# o que está no barramento
lspci | grep -Ei "vga|3d|display"

# NVIDIA: modelo, VRAM, driver, uso em tempo real
nvidia-smi

# AMD: o equivalente do ROCm
rocm-smi

# Intel/Arc e integradas
sudo intel_gpu_top

O número que decide se um modelo cabe não é TFLOPS — é VRAM. Um modelo de 7 B em quantização Q4 pede algo perto de 5 GB; um 70 B no mesmo Q4 passa de 40 GB e já exige duas placas ou offload para a RAM, com a queda de velocidade que vem junto. É a conta que o post do servidor recondicionado faz na prática, e o motivo de llama.cpp e Ollama insistirem tanto em GGUF quantizado.

TPU você não instala: ela só existe dentro do Google, alugada por hora no GCP ou de graça no Colab e no Kaggle. Se o seu roteiro é rodar modelo local, o caminho é CUDA ou ROCm — e a comparação deste post serve para entender por que a conta fecha assim, não para escolher entre as duas.

Linha do tempo

  • 2006 — a NVIDIA lança o CUDA e transforma a placa de jogo em processador de uso geral.
  • 2012 — a AlexNet vence o ImageNet treinando em duas GTX 580 e prova que rede neural é problema de GPU.
  • 2015 — o Google põe a TPU v1 em produção interna, só inferência INT8.
  • 2017 — sai o paper da TPU v1; a v2 traz treino e bfloat16; o Transformer nasce em pods de TPU.
  • 2017 — a arquitetura Volta estreia os Tensor Cores na NVIDIA: a GPU passa a ter hardware dedicado de MatMul.
  • 2020–2022 — Ampere e Hopper consolidam o fosso do CUDA; a A100 e depois a H100 viram moeda de troca.
  • 2021 — a TPU v4 estreia a comutação óptica (OCS) e o torus 3D no pod.
  • 2023 — a AMD lança a série Instinct MI300 com ROCm aberto; a corrida deixa de ser de um só fornecedor.
  • 2024 — TPU v6e Trillium (MXU 256×256) e anúncio do Blackwell, com dois dies num pacote só.
  • 2025 — GB200 NVL72 chega aos data centers; a Anthropic fecha acesso a até 1 milhão de TPUs.
  • abr/2026 — o TPU7x Ironwood entra em disponibilidade geral: 4.614 TFLOPS FP8 e superpod de 9.216 chips.

Referencias

Especialização extrema versus generalidade: a TPU mostra o teto de eficiência quando a conta é conhecida; a GPU vende o seguro de que a conta de amanhã ainda cabe no mesmo rack. No Linux do dia a dia, o que você tem na mesa continua sendo a GPU — e o CUDA que veio junto.