Frameworks modernos de machine learning costumam usar a NVIDIA Collective Communications Library (NCCL) para implementar primitivas de comunicação entre GPUs.
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 performance 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 as 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.
- O plug-in env fornece configurações de variáveis específicas da plataforma em Google Cloud VMs.
Arquitetura NCCL/gIB
O NCCL/gIB interage com seu framework de machine learning e as GPUs NVIDIA nos clusters para otimizar o desempenho 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.

Performance 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 você melhor caso surja um problema no nível da carga de trabalho.
Instalar o NCCL/gIB
Antes de executar os testes da NCCL, é necessário instalar a NCCL/gIB no ambiente de execução.
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:
- Usar plug-ins gIB NCCL em contêineres NVIDIA NGC
- Executar testes do NCCL em VMs do Compute Engine
- Executar o NCCL em clusters do GKE que usam o Cluster Toolkit
- Executar o NCCL em clusters do GKE que usam A4X
- Executar o NCCL em clusters do GKE que usam A4 ou A3 Ultra
- Executar testes da NCCL em clusters do Slurm
- Executar testes do 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.