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 VMs A3 Ultra, A4 e A4X. Google CloudA NCCL/gIB costuma ter um desempenho melhor do que a NCCL upstream na infraestrutura do Google. Como o desempenho da NCCL pode afetar o desempenho geral da carga de trabalho, recomendamos que você use a NCCL/gIB.
A NCCL/gIB contém recursos e otimizações específicos do Google, como os seguintes:
- O plug-in de rede gIB oferece balanceamento de carga aprimorado nas redes do Google, o que leva a 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 Google Cloud VMs.
- O plug-in do profiler 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 da NCCL/gIB
A NCCL/gIB interage com o framework de machine learning e as GPUs NVIDIA nos clusters para otimizar o desempenho e coletar dados de telemetria, conforme mostrado neste diagrama:

Benefícios de usar a NCCL/gIB
Embora seja possível usar a NVIDIA Collective Communications Library upstream em Google Cloud VMs 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 da NCCL/gIB com a NCCL upstream no desempenho do AllReduce. A NCCL/gIB supera a NCCL upstream em até 12 vezes em determinados tamanhos de mensagens.

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

Desempenho do NCCL AllGather de 32 nós usando o A3 Ultra (H200) em uma estrutura compartilhada com um plano de fundo ruidoso.
Além disso, o plug-in do profiler CoMMA fornece ao Google telemetria personalizada aprimorada, permitindo que possamos ajudar melhor você caso ocorra um problema no nível da carga de trabalho.
Como usar a NCCL/gIB
Para executar testes da NCCL/gIB no cluster, escolha a página da lista a seguir que melhor atende aos seus requisitos:
- Executar testes da NCCL em VMs do Compute Engine
- Executar a NCCL em clusters do GKE que usam a configuração padrão
- Executar a NCCL em clusters personalizados do GKE que usam o A4X
- Executar a NCCL em clusters personalizados do GKE que usam o A4 ou o 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 da NCCL/gIB para solução de problemas.