Ce document décrit l'analyseur de communication collective (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 que NCCL génère lors de son exécution. La NVIDIA Collective Communication Library (NCCL) accélère la communication hautes performances entre les GPU fonctionnant en parallèle et les systèmes de calcul distribué. 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 est automatiquement installé et activé 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 automatiquement activé lorsque vous utilisez des images qui incluent le plug-in NCCL Google Infrastructure Bundle (gIB). Les images suivantes contiennent le plug-in NCCL gIB :
- 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 des données de 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 retardataires fonctionnent. Si vous n'utilisez pas ces images et que vous souhaitez permettre à CoMMA de 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 tâches lentes, 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 retardataires.
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 retardataires : CoMMA collecte la télémétrie NCCL précise pour identifier les goulots d'étranglement des performances ou les retardataires 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 à l'IA et au ML à grande échelle.
Par exemple, CoMMA capture l'algorithme utilisé dans les opérations NCCL. Ces informations sont utiles pour l'analyse et l'optimisation 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 sous-optimales et les erreurs. 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 et aux nœuds initiateurs spécifiques.
Traçage à 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 du plug-in de profileur NCCL. Cette API collecte un plus grand nombre 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 et les protocoles réseau. Le plug-in de profileur collecte la 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
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 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 liés aux données tardives.