Os frameworks modernos de machine learning costumam usar a NVIDIA Collective Communications Library (NCCL) para primitivos de comunicação GPU-para-GPU.
A versão aprimorada do NCCL do Google é chamada de NCCL/gIB e está disponível nas VMs A3 Ultra, A4 e A4X do Google Cloud. O NCCL/gIB geralmente tem melhor desempenho do que o NCCL upstream na infraestrutura do Google. Como a performance do NCCL pode afetar o desempenho geral da carga de trabalho, recomendamos que você use NCCL/gIB.
O NCCL/gIB contém recursos e otimizações específicos do Google, como:
- O plug-in de rede gIB oferece um balanceamento de carga aprimorado nas redes do Google, resultando em alta capacidade de processamento e baixa latência de forma mais consistente durante operações coletivas.
- Um plug-in de ajuste personalizado, que seleciona as melhores opções de ajuste em VMs Google Cloud .
- O plug-in do criador de perfis do CoMMA fornece métricas de desempenho detalhadas e dados de diagnóstico para sua carga de trabalho.
Arquitetura NCCL/gIB
O NCCL/gIB interage com sua estrutura de machine learning e as GPUs NVIDIA nos seus clusters para otimizar a performance e coletar telemetria, conforme mostrado neste diagrama:

Benefícios de usar NCCL/gIB
Embora seja possível usar a biblioteca upstream NVIDIA Collective Communications em VMs Google Cloud sem problemas de estabilidade, a NCCL/gIB é mais bem otimizada para Google Cloud , e a disparidade de desempenho pode ser muito significativa para determinados padrões de comunicação, mesmo com os mesmos parâmetros da NCCL.
Por exemplo, o gráfico a seguir mostra uma comparação de NCCL/gIB com NCCL upstream na performance do AllReduce. O NCCL/gIB supera o NCCL upstream em até 12 vezes em determinados tamanhos de mensagens.

Performance do NCCL AllReduce de 32 nós usando o A3 Ultra (H200) sem tráfego em segundo plano.
Da mesma forma, em uma comparação de NCCL/gIB com NCCL upstream na performance de AllGather com tráfego em segundo plano, o NCCL/gIB supera o NCCL upstream em aproximadamente 50% em tamanhos de mensagens maiores, conforme mostrado neste gráfico.

Desempenho do NCCL AllGather de 32 nós usando A3 Ultra (H200) em uma estrutura compartilhada com um plano de fundo ruidoso.
Além disso, o plug-in do criador de perfis do CoMMA oferece ao Google uma telemetria personalizada aprimorada, permitindo que ajudemos melhor você caso surja um problema no nível da carga de trabalho.
Como usar NCCL/gIB
Para executar testes do NCCL/gIB no seu cluster, escolha na lista abaixo a página que melhor atende aos seus requisitos:
- Executar testes do NCCL em VMs do Compute Engine
- Executar o NCCL em clusters do GKE que usam a configuração padrão
- Executar o NCCL em clusters personalizados do GKE que usam A4X
- Executar o NCCL em clusters personalizados do GKE que usam A4 ou A3 Ultra
- Executar testes da NCCL em clusters do Slurm
- Executar testes da NCCL no Cluster Director
Para saber como resolver problemas com o cluster depois de executar os testes, consulte Coletar e entender registros do NCCL/gIB para solução de problemas.