Fronteira
Interconnects e clusters
Quando um modelo precisa de vários chips: NVLink contra PCIe contra InfiniBand, o volume de all-reduce por token implicado pelo hidden size 5120, e por que 4 KV heads limitam o grau de tensor parallel.
Atualizada em
01 · Conceito
Conceito
A lição 9.4 deixou você com um problema de dimensionamento. O Qwen3.8-27B em bf16 são 54 GB de pesos, e a lição 7.2 acrescenta até 16 GiB de KV cache para uma única sequência de comprimento máximo, então um único acelerador de 80 GB serve o modelo com muito pouco espaço para usuários. A correção óbvia é mais GPUs. A pergunta que esta lição responde é quanto isso de fato custa, porque o fio entre os chips tem um preço que não aparece em nenhuma ficha técnica que você estava consultando.
A lição 5.8 estabeleceu o mecanismo. Sob tensor parallelism cada matriz de pesos é dividida entre ranks — heads de attention e de DeltaNet distribuídos de um jeito, as projeções de subida e descida da FFN de outro —, então cada rank computa um resultado parcial sobre sua fatia, e as fatias precisam ser somadas antes de o residual stream seguir. No arranjo padrão cada camada tem dois desses pontos de reconciliação: um depois da projeção de saída que segue o misturador de sequência, e um depois da projeção de descida da FFN. Cada reconciliação é um all-reduce sobre um único vetor hidden para o token que está sendo decodificado.
Esse é o exemplo trabalhado inteiro, e ele é pequeno o bastante para fazer de cabeça. Hidden size 5120, bf16:
Um ring all-reduce coloca vezes o payload no fio de cada rank, então duas GPUs movem 1,25 MiB por token e quatro movem cerca de 1,875 MiB. A uma taxa interativa de 50 tokens por segundo isso é menos de 100 MiB por segundo por rank — um erro de arredondamento diante das centenas de gigabytes por segundo do NVLink informadas pelo fabricante, e confortável até para PCIe.
Então os bytes não são o problema, e é exatamente aqui que acontece o desvio errado clássico. Um engenheiro calcula esse payload, vê que é trivial, conclui que o interconnect é irrelevante, e compra quatro GPUs numa placa só com PCIe esperando quatro vezes o throughput de uma. O erro é medir a quantidade errada: 128 all-reduces por token não são uma transferência de 1,25 MiB, são 128 idas e voltas bloqueantes em série, e o que domina um coletivo pequeno é a latência, não a bandwidth.
Coloque hipóteses declaradas sobre a latência — são hipóteses para tornar o formato visível, não números de fabricante — e refaça a aritmética. Digamos que um fabric rápido intranó custe cerca de 10 microssegundos por all-reduce pequeno e um lento cerca de 50. O tempo de leitura de pesos por token é a divisão da lição 9.1 com a fatia por GPU:
A comunicação acrescenta um valor fixo de 128 vezes a latência por coletivo: 1,28 ms no fabric rápido, 6,4 ms no lento. Somando essas heurísticas declaradas e as hipóteses de latência:
Leia essas três linhas com atenção. Dobrar de duas para quatro GPUs no fabric rápido devolveu 1,76 vez, não 2 — o compute caiu pela metade enquanto a comunicação permaneceu fixa. E quatro GPUs no fabric lento são mais lentas que duas no rápido. O interconnect, e não a contagem de aceleradores, decidiu o resultado. É por isso que o NVLink existe como produto distinto do PCIe, por que o tensor parallelism é mantido dentro de um nó, e por que fabrics entre nós como InfiniBand ou RoCE ficam reservados às formas de paralelismo que reconciliam raramente — data parallelism, que sincroniza uma vez por passo de treinamento, ou pipeline parallelism sobre os 16 super-blocos do modelo, que passa uma ativação entre estágios em vez de reconciliar a cada camada.
O prefill se comporta de forma oposta e vale ver por quê. Um prompt de 4.096 tokens roda todas as posições de uma vez, então os mesmos 128 coletivos carregam 4.096 vetores hidden cada:
Agora os bytes importam de verdade e a bandwidth governa, que é a divisão de arithmetic intensity da lição 7.3 reaparecendo na rede em vez da memória. O prefill é limitado por bandwidth sobre o fabric; o decode é limitado por latência sobre ele.
A regra durável para projeto de cluster é que você deve colocar o paralelismo que reconcilia com mais frequência no fio mais rápido que possui, e nunca dividir um modelo através de uma fronteira que as dimensões dele próprio não dividem. Para este espécime isso significa tensor parallelism dentro de um nó, em grau 2 ou 4, sobre NVLink; todo o resto pela rede. A lição 9.10 pega essas configurações e finalmente as precifica.
02 · Analogia
Analogia
Quatro tradutores dividem um discurso, cada um pegando uma frase a cada quatro, e depois de cada sentença precisam parar e reconciliar para que o sentido compartilhado siga consistente. Acrescentar tradutores encurta a fatia de trabalho de cada um, mas não reduz o número de reconciliações — e se eles estiverem em prédios separados gritando pelas janelas, reconciliar custa mais que traduzir. O discurso termina mais rápido quando os tradutores estão numa sala só, e acrescentar um quinto no corredor torna tudo mais lento.
03 · Explique de volta
Explique de volta
Calcule o payload de all-reduce por token decodificado para o Qwen3.8-27B em tensor parallel, explique por que dobrar a contagem de GPUs não dobra o throughput, e nomeie a dimensão do modelo que limita o grau limpo de tensor parallel.
Comparar com uma resposta-modelo
No tensor parallelism estilo Megatron cada camada tem dois pontos onde resultados parciais precisam ser somados entre ranks — depois da projeção de saída da attention ou do DeltaNet e depois da projeção de descida da FFN. Cada reconciliação é sobre um vetor hidden: 5120 valores a 2 bytes são 10 KiB. Ao longo de 64 camadas isso dá 128 all-reduces por token carregando 1,25 MiB de payload, e um ring all-reduce move 2 vezes N menos 1 sobre N disso por rank, então 1,25 MiB com dois ranks e cerca de 1,875 MiB com quatro. Os bytes são triviais para o NVLink; o custo é latência, porque 128 sincronizações acontecem em série por token. O sharding corta pela metade a leitura de pesos por GPU a cada vez que N dobra, mas as 128 sincronizações não encolhem, então a comunicação cresce como fração do passo e os retornos diminuem. O limite é a contagem de KV heads: o Qwen3.8-27B tem 4 KV heads, então graus de tensor parallel acima de 4 precisam replicar KV heads entre ranks, duplicando o cache e abrindo mão da economia de memória que motivou o sharding.
04 · Teste seu entendimento
Teste seu entendimento
Conclua o teach-back e acerte o quiz para finalizar a aula.
◎ · Marcador de evidência
Fontes
- NVIDIA Corporation (2026). NVIDIA NVLink and Data Center Networking.
- NVIDIA Corporation (2026). NVIDIA Collective Communications Library (NCCL) Documentation.
- Qwen Team (2026). Qwen3.8-27B Model Card.