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 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:

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

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.

Um gráfico mostrando 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 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.

Um gráfico mostrando 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 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:

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.