Ce document décrit Collective Communication Analyzer (CoMMA), une bibliothèque permettant de collecter des données de télémétrie NCCL pour les Google Cloud services. La télémétrie NCCL collecte des métriques de performances et des événements opérationnels générés par NCCL lors de son exécution. La bibliothèque NVIDIA Collective Communication Library (NCCL) accélère la communication hautes performances entre les GPU exécutés en parallèle et les systèmes de calcul distribués. Cette communication hautes performances est particulièrement utile pour le deep learning et le calcul hautes performances (HPC).
Pour les versions 2.23 et ultérieures de NCCL, NVIDIA a introduit l'API de plug-in de profileur NCCL, qui permet aux développeurs d'enregistrer des rappels de fonction pour collecter des données de télémétrie lors des opérations collectives NCCL. Google fournit le Collective Communication Analyzer (CoMMA), une bibliothèque qui utilise l'API de plug-in de profileur NCCL de NVIDIA pour collecter des données de télémétrie NCCL pour les Google Cloud services. CoMMA s'installe et s'active automatiquement pour certaines images, mais vous pouvez également le désactiver, le réactiver ou l'installer et l'activer manuellement pour contrôler la collecte de données.
Images pour lesquelles CoMMA est activé
Pour les types de machines A4X Max, A4X, A4, A3 Ultra, A3 Mega et A3 High (8 GPU), CoMMA est installé et activé automatiquement lorsque vous utilisez des images qui incluent le plug-in gIB NCCL. Les images suivantes contiennent le plug-in gIB NCCL :
- Images de nœud Container-Optimized OS avec containerd (cos_containerd)
: Google Kubernetes Engine (GKE) utilise ces images pour créer des clusters GKE Autopilot. Les fichiers binaires CoMMA sont disponibles dans le répertoire
/home/kubernetes/bin/gib. - Images de conteneur Deep Learning Software Layer: vous utilisez ces images pour déployer et configurer des frameworks et des bibliothèques d'IA et de ML sur des clusters GKE.
Si vous utilisez l'une de ces images et que vous souhaitez désactiver la collecte de données de télémétrie NCCL par CoMMA, consultez Désactiver CoMMA. Toutefois, CoMMA doit être activé pour que des fonctionnalités telles que la détection des nœuds de calcul en retard ou la détection des charges de travail qui ne répondent pas fonctionnent. Si vous n'utilisez pas ces images et que vous souhaitez activer CoMMA pour collecter des données de télémétrie NCCL, consultez Installer CoMMA.
Avantages
Les données de télémétrie NCCL collectées par CoMMA permettent d'identifier les goulots d'étranglement des performances, en particulier les nœuds de calcul en retard, dans la communication GPU. CoMMA collecte des données précises, telles que des histogrammes de latence pour les opérations de communication collective. Un service de diagnostic peut ensuite traiter et utiliser ces données pour identifier les nœuds de calcul en retard.
L'utilisation de CoMMA pour collecter des données de télémétrie présente les avantages suivants :
Obligatoire pour la détection des nœuds de calcul en retard et la détection des charges de travail qui ne répondent pas: CoMMA collecte les données de télémétrie NCCL précises pour identifier les goulots d’étranglement des performances ou les nœuds de calcul en retard dans la communication GPU à GPU. CoMMA fournit des données de télémétrie NCCL détaillées qui permettent d'identifier et de résoudre les problèmes liés aux charges de travail d'entraînement d'IA et de ML à grande échelle.
Par exemple, CoMMA capture l'algorithme utilisé dans les opérations NCCL. Ces informations sont utiles pour l'analyse et le réglage des performances, car les caractéristiques de performances des différents algorithmes peuvent varier considérablement en fonction de la charge de travail et de la configuration du système.
CoMMA permet également de résoudre les problèmes de performances et les erreurs sous-optimales. Il retrace les erreurs provenant des couches de transport de niveau inférieur, telles que TCP, RDMA ou les fabrics de commutateurs, jusqu'aux collectifs NCCL spécifiques et aux nœuds d'initiation. Il peut reconnaître quand un signal de télémétrie de pulsation cesse de répondre et suivre les causes potentielles des charges de travail qui ne répondent pas.
Suivi à faible surcharge : CoMMA utilise un minimum de ressources de calcul lors de la collecte active de données de télémétrie NCCL, ce qui le rend idéal pour les charges de travail de machine learning sensibles aux performances et de longue durée, comme l'entraînement de grands modèles de langage (LLM).
Élargir le champ d'application de la télémétrie NCCL : CoMMA utilise l'API de plug-in de profileur NCCL. Cette API collecte un champ d'application plus large de données de télémétrie NCCL que les plug-ins basés sur le transport. Les plug-ins basés sur le transport collectent principalement des données de télémétrie sur le transport réseau sous-jacent, y compris les transferts de données sur le matériel réseau et les protocoles réseau. Le plug-in de profileur collecte des données de télémétrie pour les opérations de communication de NCCL, y compris le timing des communications collectives, les opérations de proxy et les transferts de données.
Comprendre le fonctionnement de CoMMA
Lors de l'exécution de l'application, NCCL charge automatiquement les bibliothèques CoMMA installées à l'emplacement spécifié par la variable d'environnement LD_LIBRARY_PATH. CoMMA collecte ensuite des données de télémétrie NCCL, que d'autres services Google peuvent ensuite utiliser. Vous pouvez également exporter ces données vers votre système de fichiers local.
Étape suivante
- Découvrez comment activer, désactiver et configurer CoMMA.
- Découvrez comment résoudre les problèmes liés à CoMMA.
- Découvrez comment détecter et résoudre les problèmes liés aux nœuds de calcul en retard.
- Découvrez comment détecter les charges de travail qui ne répondent pas.