Neste documento, descrevemos o Collective Communication Analyzer (CoMMA), uma biblioteca para coletar telemetria NCCL para serviços do Google Cloud . A telemetria da NCCL coleta métricas de performance e eventos operacionais que a NCCL gera durante a execução. A NVIDIA Collective Communication Library (NCCL) acelera a comunicação de alto desempenho entre GPUs em execução em sistemas de computação paralelos e distribuídos. Essa comunicação de alto desempenho é especialmente útil para aprendizado profundo e computação de alto desempenho (HPC).
Para as versões 2.23 e mais recentes da NCCL, a NVIDIA introduziu a API de plug-in do criador de perfil da NCCL, que permite que os desenvolvedores registrem callbacks de função para coletar telemetria durante operações coletivas da NCCL. O Google oferece o Collective Communication Analyzer (CoMMA), que é uma biblioteca que usa a API de plug-in do criador de perfil NCCL da NVIDIA para coletar telemetria NCCL para serviços do Google Cloud . O CoMMA é instalado e ativado automaticamente em algumas imagens, mas você também pode desativar, reativar ou instalar e ativar manualmente o CoMMA para controlar a coleta de dados.
Imagens com o CoMMA ativado
Para os tipos de máquina A5X, A4X Max, A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPUs), o CoMMA é instalado e ativado automaticamente quando você usa imagens que empacotam o plug-in gIB NCCL. As imagens a seguir contêm o plug-in gIB NCCL:
- Imagens de nó do Container-Optimized OS com containerd (cos_containerd): o Google Kubernetes Engine (GKE) usa essas imagens para criar clusters do GKE Autopilot. Os binários do CoMMA estão
disponíveis no
diretório
/home/kubernetes/bin/gib. - Imagens de contêiner da camada de software de aprendizado profundo: use essas imagens para implantar e configurar frameworks e bibliotecas de IA e ML em clusters do GKE.
Se você usa alguma dessas imagens e quer desativar a coleta de telemetria NCCL pelo CoMMA, consulte Desativar o CoMMA. No entanto, o CoMMA precisa estar ativado para que recursos como a detecção de retardatários ou a detecção de cargas de trabalho sem resposta funcionem. Se você não usa essas imagens e quer ativar o CoMMA para coletar telemetria NCCL, consulte Instalar o CoMMA.
Vantagens
A telemetria do NCCL que o CoMMA coleta ajuda a identificar gargalos de desempenho, especificamente retardatários, na comunicação da GPU. O CoMMA coleta dados detalhados, como histogramas de latência para operações de comunicação coletiva. Um serviço de diagnóstico pode processar e usar esses dados para identificar os retardatários.
O uso do CoMMA para coletar telemetria oferece os seguintes benefícios:
Necessário para detecção de stragglers e de cargas de trabalho que não respondem: o CoMMA coleta a telemetria detalhada da NCCL para identificar gargalos de desempenho ou stragglers na comunicação entre GPUs. O CoMMA fornece telemetria detalhada da NCCL que ajuda a identificar e resolver problemas em cargas de trabalho de treinamento de IA e ML em grande escala.
Por exemplo, o CoMMA captura o algoritmo usado nas operações da NCCL. Essas informações são valiosas para análise e ajuste de desempenho, porque algoritmos diferentes podem ter características de desempenho significativamente variadas com base na carga de trabalho e na configuração do sistema.
O CoMMA também ajuda a resolver problemas de desempenho abaixo do ideal e erros. Ele rastreia erros originados em camadas de transporte de nível inferior, como TCP, RDMA ou malhas de switch, até coletivos NCCL específicos e nós de inicialização. Ele pode reconhecer quando um sinal de telemetria de heartbeat para de responder e rastrear possíveis causas para cargas de trabalho que não respondem.
Rastreamento de baixa sobrecarga: o CoMMA usa recursos computacionais mínimos durante a coleta ativa de telemetria do NCCL, o que o torna ideal para cargas de trabalho de machine learning sensíveis ao desempenho e de longa duração, como o treinamento de modelos de linguagem grande (LLM).
Ampliar o escopo da telemetria da NCCL: o CoMMA usa a API do plug-in do criador de perfil da NCCL. Essa API coleta um escopo mais amplo de telemetria NCCL em comparação com plug-ins baseados em transporte. Os plug-ins baseados em transporte coletam principalmente telemetria sobre o transporte de rede subjacente, incluindo transferências de dados por hardware e protocolos de rede. O plug-in do criador de perfil coleta telemetria para as operações de comunicação da NCCL, incluindo o tempo de comunicações coletivas, operações de proxy e transferências de dados.
Entender como o CoMMA funciona
Durante o ambiente de execução do aplicativo, o NCCL carrega automaticamente as bibliotecas do CoMMA
instaladas no local especificado pela variável de ambiente
LD_LIBRARY_PATH. Em seguida, o CoMMA coleta a telemetria da NCCL, que pode ser usada por outros serviços do Google. Também é possível exportar esses dados para o sistema de arquivos local.
A seguir
- Saiba como ativar, desativar e configurar o CoMMA.
- Saiba como resolver problemas com o CoMMA.
- Saiba como detectar e resolver atrasos.
- Saiba como detectar cargas de trabalho que não respondem.