Otimizar a rede de computadores do cluster usando NCCL/gIB

Os frameworks modernos de machine learning costumam usar a NVIDIA Collective Communications Library (NCCL) para primitivos de comunicação GPU-para-GPU.

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 desempenho 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 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.

Arquitetura NCCL/gIB

O NCCL/gIB interage com sua estrutura de machine learning e as GPUs NVIDIA nos seus clusters para otimizar a performance 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 ao NCCL, enquanto o 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 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.

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

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.

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

Desempenho 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 melhor você caso surja um problema no nível da carga de trabalho.

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

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.