Inteligência artificial, sem ruído.
Tutoriais4 min

Treinamento distribuído: por que a fiação das GPUs importa tanto quanto sua estratégia

Guia prático sobre topologia de conexão entre GPUs em clusters de treinamento: NVLink, FSDP, ZeRO e como evitar desperdiçar 40% do tempo de treinamento em sincronização.

Treinamento distribuído: por que a fiação das GPUs importa tanto quanto sua estratégia

Por que a fiação das GPUs importa

Quando falamos de treinamento distribuído de modelos de IA, a conversa geralmente gira em torno de estratégias como DDP (Distributed Data Parallel) e FSDP (Fully Sharded Data Parallel). Mas há um fator frequentemente negligenciado que pode fazer ou quebrar o desempenho: a topologia física de como suas GPUs estão conectadas.

Este guia prático, baseado em anos de experiência com clusters de treinamento, explica por que a fiação entre GPUs importa tanto quanto a estratégia de paralelismo que você escolhe — e como otimizar ambas.

Estratégias de treinamento distribuído: uma visão geral

O treinamento de modelos grandes como GPT, Llama e Claude exige distribuir o trabalho entre múltiplas GPUs. As principais estratégias são:

  • DDP (Distributed Data Parallel): cada GPU mantém uma cópia completa do modelo e processa um lote diferente de dados. Os gradientes são sincronizados ao final de cada passo. Simples, mas limitado pelo tamanho do modelo que cabe em uma GPU.
  • FSDP (Fully Sharded Data Parallel): o modelo é dividido (sharded) entre as GPUs. Cada GPU mantém apenas uma fração dos parâmetros, reduzindo o consumo de memória. Inspirado no paper ZeRO da Microsoft.
  • ZeRO Stages (1, 2, 3): a abordagem da DeepSpeed (Microsoft) que divide otimizadores, gradientes e parâmetros progressivamente. ZeRO-3 é o mais agressivo em economia de memória, mas também o mais intensivo em comunicação.

O gargalo invisível: comunicação entre GPUs

Em qualquer estratégia de paralelismo, as GPUs precisam se comunicar constantemente para sincronizar gradientes e parâmetros. E essa comunicação acontece através de links físicos — NVLink, PCIe e redes como InfiniBand.

Um cluster com GPUs mal conectadas pode desperdiçar até 40% do tempo de treinamento esperando sincronização de gradientes. É como ter um motor de Fórmula 1 conectado a pneus de bicicleta — a potência está lá, mas não chega ao chão.

Topologias de conexão e seu impacto

NVLink vs PCIe

O NVLink oferece largura de banda muito superior ao PCIe. Nas GPUs NVIDIA modernas (A100, H100), o NVLink conecta GPUs dentro do mesmo nó com velocidades de até 900 GB/s, enquanto o PCIe 5.0 atinge ~128 GB/s. Para GPUs em nós diferentes, a comunicação passa por NVSwitch e InfiniBand (tipicamente 400 Gb/s por porta).

A recomendação prática: sempre que possível, mantenha as GPUs que compartilham mais dados no mesmo nó, conectadas via NVLink. Isso reduz a latência e maximiza o throughput.

Topologia em anel vs árvore vs all-to-all

A forma como as GPUs são conectadas determina o padrão de comunicação:

  • Anel (Ring): eficiente para all-reduce, comum em DDP. Cada GPU envia para a próxima no anel. Funciona bem com 4-8 GPUs.
  • Árvore (Tree): reduz o número de hops, ideal para broadcast de parâmetros no FSDP. Melhor para clusters grandes.
  • All-to-all: cada GPU se comunica com todas as outras. Necessário para ZeRO-3 e tensor parallelism. Exige rede de alta largura de banda.

Otimização prática: checklist

  1. Verifique a topologia real: use nvidia-smi topo -m para mapear as conexões NVLink e PCIe do seu cluster
  2. Agrupe GPUs por domínio NVLink: configure seu scheduler (SLURM, Kubernetes) para alocar GPUs dentro do mesmo domínio NVLink sempre que possível
  3. Escolha a estratégia certa para sua topologia: DDP funciona bem com conexões de anel, FSDP se beneficia de árvore, tensor parallelism exige all-to-all de alta largura de banda
  4. Monitore o NCCL: ative logs do NCCL (NCCL_DEBUG=INFO) para identificar gargalos de comunicação
  5. Considere o custo: mais GPUs não significam treinamento proporcionalmente mais rápido se a comunicação se tornar o gargalo

Cuidados e limitações

  • ⚠️ Nem toda GPU suporta NVLink: GPUs de consumidor (RTX 4090, etc.) não têm NVLink. Para treinamento distribuído com GPUs de consumidor, você está limitado ao PCIe.
  • ⚠️ O FSDP não é gratuito: a economia de memória vem com custo de comunicação. Se sua topologia de rede é ruim, o FSDP pode ser mais lento que DDP.
  • ⚠️ Frameworks abstraem, mas não eliminam: PyTorch e DeepSpeed escondem a complexidade, mas ignorar a topologia física é a receita para clusters subutilizados.


Descubra mais sobre noticiAI

Assine para receber nossas notícias mais recentes por e-mail.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.