Ce document décrit Collective Communication Analyzer (CoMMA), une bibliothèque permettant de collecter la télémétrie NCCL pour les services Google Cloud . La télémétrie NCCL collecte les métriques de performances et les é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 dans des systèmes informatiques parallèles et 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 du 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 Collective Communication Analyzer (CoMMA), une bibliothèque qui utilise l'API du plug-in de profileur NCCL de NVIDIA pour collecter la télémétrie NCCL pour les services Google Cloud . 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 A5X, A4X Max, A4X, A4, A3 Ultra, A3 Mega et A3 High (8 GPU), CoMMA est installé et automatiquement activé lorsque vous utilisez des images qui empaquettent 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 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 empêcher CoMMA de collecter la télémétrie NCCL, consultez Désactiver CoMMA. Toutefois, CoMMA doit être activé pour que des fonctionnalités telles que la détection des traînards 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 la télémétrie NCCL, consultez Installer CoMMA.
Avantages
La télémétrie NCCL collectée par CoMMA permet d'identifier les goulots d'étranglement des performances, en particulier les retardataires, 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 traînards.
L'utilisation de CoMMA pour collecter la télémétrie offre les avantages suivants :
Requis pour la détection des traînards et des charges de travail qui ne répondent pas : CoMMA collecte la télémétrie NCCL précise pour identifier les goulots d'étranglement des performances ou les traînards dans la communication GPU à GPU. CoMMA fournit une télémétrie NCCL détaillée qui permet 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 l'ajustement des performances, car différents algorithmes peuvent avoir des caractéristiques de performances très différentes en fonction de la charge de travail et de la configuration du système.
CoMMA aide également à résoudre les problèmes de performances et d'erreurs non optimales. Il permet de remonter jusqu'aux collectifs NCCL et aux nœuds d'initiation spécifiques à l'origine des erreurs provenant des couches de transport de niveau inférieur, telles que TCP, RDMA ou les matrices de commutation. Il peut reconnaître l'arrêt d'un signal de télémétrie de pulsation et identifier les causes potentielles des charges de travail qui ne répondent pas.
Traçage à faible surcharge : CoMMA utilise un minimum de ressources de calcul lors de la collecte active de la 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 du plug-in de profileur NCCL. Cette API collecte un champ d'application plus large de la télémétrie NCCL par rapport aux 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, des opérations de proxy et des transferts de données.
Comprendre le fonctionnement de CoMMA
Pendant 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 la 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.
Étapes suivantes
- 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 de traînards.
- Découvrez comment détecter les charges de travail qui ne répondent pas.