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 da NCCL do Google é chamada de NCCL/gIB e está disponível nas instâncias A5X, A4X Max, A4X, A4 e A3 Ultra doGoogle Cloud. A NCCL/gIB geralmente tem melhor desempenho do que a NCCL upstream na infraestrutura do Google. Como o desempenho da NCCL pode afetar o desempenho geral da carga de trabalho, recomendamos o uso de 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, o que resulta 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 do Google Cloud .
- O plug-in do criador de perfil do CoMMA fornece métricas de performance 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 VMs do Google Cloud .
Arquitetura NCCL/gIB
A 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 de Comunicações Coletivas da NVIDIA upstream em VMs do Google Cloud sem problemas de estabilidade, o NCCL/gIB é mais otimizado para o Google Cloud , e a disparidade de desempenho pode ser muito significativa para determinados padrões de comunicação, mesmo com os mesmos parâmetros do NCCL.
Por exemplo, o gráfico a seguir mostra uma comparação de NCCL/gIB com NCCL upstream no desempenho do AllReduce. O NCCL/gIB supera o NCCL upstream em até 12 vezes em determinados tamanhos de mensagem.

Desempenho 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 do AllGather com tráfego em segundo plano, a NCCL/gIB supera a NCCL upstream em aproximadamente 50% em tamanhos de mensagem maiores, como mostrado neste gráfico.

Desempenho do NCCL AllGather de 32 nós usando o A3 Ultra (H200) em uma malha compartilhada com um plano de fundo ruidoso.
Além disso, o plug-in do criador de perfil do CoMMA fornece ao Google uma telemetria personalizada aprimorada, o que nos permite ajudar você melhor caso surja um problema no nível da carga de trabalho.
Instalar 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 de NCCL/gIB no cluster, escolha a página da lista a seguir que melhor atende aos seus requisitos:
- Usar plug-ins gIB NCCL em contêineres NVIDIA NGC
- Executar testes NCCL em instâncias do Compute Engine
- Executar a NCCL em clusters do GKE que usam o Cluster Toolkit
- Executar a NCCL em clusters do GKE que usam o A4X Max
- Executar a NCCL em clusters do GKE que usam A4X
- Executar a NCCL em clusters 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 executar NCCL/gIB em clusters do GKE que usam A5X, entre em contato com seu representante do Google Cloud .
Para saber como resolver problemas com o cluster depois de executar os testes, consulte Coletar e entender os registros da NCCL/gIB para solução de problemas.