Otimizar a rede de computadores do cluster usando NCCL/gIB

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:

A carga de trabalho de ML é gerenciada por um framework de ML que se conecta às GPUs NVIDIA e à NCCL, enquanto a NCCL se conecta a várias ferramentas e plug-ins do Google.

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.

Um gráfico que mostra que o NCCL/gIB supera o NCCL upstream em tarefas AllReduce.

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.

Um gráfico que mostra que o NCCL/gIB supera o NCCL upstream em tarefas AllGather.

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:

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.