Ce guide explique comment activer, désactiver et gérer la bibliothèque Collective Communication Analyzer (CoMMA). CoMMA collecte la télémétrie NCCL pour les servicesGoogle Cloud . Pour en savoir plus sur CoMMA, consultez Collective Communication Analyzer (CoMMA).
Activer CoMMA
CoMMA est préinstallé et activé si vous utilisez des images contenant le plug-in NCCL gIB. Pour obtenir la liste de ces images, consultez Images avec CoMMA activé.
Options d'installation
Si vous n'utilisez aucune de ces images et que vous souhaitez installer CoMMA, utilisez l'une des méthodes suivantes.
| Méthode d'installation | Types de machines compatibles |
|---|---|
| Image du bundle d'infrastructure Google (gIB) NCCL (recommandée pour les types de machines plus récents) | A4X Max, A4X, A4 High et A3 Ultra |
| Image de l'installateur CoMMA | A4X, A4 High et A3 Ultra |
| Compiler à partir de la source (obligatoire pour les anciens types de machines) | A3 Mega, A3 High, A3 Edge, A2 Ultra, A2 Standard et N1 avec GPU associés |
Installer CoMMA
Pour installer CoMMA, sélectionnez l'une des options suivantes :
Image gIB NCCL
Pour installer CoMMA à l'aide de l'image NCCL gIB, exécutez la commande suivante.
docker run --rm --name nccl-gib-installer --volume /usr/local/gib:/var/lib/gib \ us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib install \ --install-nccl
Image de l'installateur CoMMA
Vous pouvez obtenir les binaires CoMMA dans une image Docker autonome. Vous pouvez utiliser l'image Docker CoMMA, us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/comma-installer, comme initContainers pour installer les binaires CoMMA dans votre conteneur de charge de travail.
Le conteneur stocke les binaires dans le répertoire /artifacts.
Pour utiliser l'image de l'installateur CoMMA, procédez comme suit :
Installez CoMMA dans votre charge de travail en ajoutant l'extrait suivant à votre
initContainers:- name: profiler-plugin-installer image: us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/comma-installer:latest imagePullPolicy: Always volumeMounts: - name: nccl-plugin-volume mountPath: /usr/local/nccl-plugin command: - /bin/sh - -c - | set -ex rm -rf /usr/local/nccl-plugin/lib64/libnccl-profiler.so cp /artifacts/libnccl_profiler.so /usr/local/nccl-plugin/lib64/libnccl-profiler.so # GPUViz is a dependency of telemetry insights such as straggler detection rm -rf /usr/local/nccl-plugin/lib64/libGPUViz.so cp /artifacts/libGPUViz.so /usr/local/nccl-plugin/lib64/
L'extrait de configuration YAML spécifie un conteneur pour l'installation de CoMMA.
L'extrait spécifie l'image du conteneur d'installation, sa stratégie d'extraction et un montage de volume pour le plug-in.
Le même montage de volume doit être monté sur le conteneur de charge de travail avec <mount-path>/lib64 ajouté à LD_LIBRARY_PATH.
La section command exécute un script shell pour supprimer toute bibliothèque de profileur existante. Il copie ensuite la nouvelle bibliothèque de profileur dans le répertoire de plug-ins désigné.
Le script garantit que la bonne version du plug-in de profileur est installée et prête à l'emploi.
En compilant à partir de la source
Pour compiler la bibliothèque CoMMA à partir de la source, installez les logiciels suivants :
- le langage de programmation Rust, dont le compilateur et Cargo ont besoin. Il peut être installé avec rustup ou des packages système.
Libclang-dev, qui nécessitebindgen.CMakeversion 3.10 ou ultérieure
Pour compiler à partir de la source, procédez comme suit :
Clonez le dépôt et ses sous-modules.
git clone --recurse-submodules https://github.com/google/CoMMA
Compilez les binaires à l'aide de Cargo.
cargo build --release
Cargo enregistre le binaire dans
target/release/libnccl_profiler.so.Activez NCCL pour charger les bibliothèques CoMMA à l'aide de l'une des méthodes suivantes :
- Copiez le fichier
libnccl_profiler.socompilé dans un répertoire de votreLD_LIBRARY_PATH. Renommez-lelibnccl-profiler.so(utilisez un tiret au lieu d'un trait de soulignement). - Vous pouvez également définir la variable d'environnement
NCCL_PROFILER_PLUGINpour spécifier le chemin d'accès au fichier.so.
- Copiez le fichier
Vérifier l'installation ou l'activation
Pour vérifier que NCCL charge les bibliothèques CoMMA, consultez les journaux NCCL :
- Activez la journalisation des données de débogage NCCL. Activez la journalisation en définissant la variable d'environnement
NCCL_DEBUG=INFO. Vous pouvez également spécifier un niveau de débogage plus détaillé. Pour en savoir plus sur les options de débogage, consultez la sectionNCCL_DEBUGde la documentation NVIDIA. - Spécifiez le sous-système
INITpour le débogage. SpécifiezINITen définissant la variable d'environnementNCCL_DEBUG_SUBSYS=INIT. Vous pouvez également spécifier d'autres sous-systèmes. Pour plus d'options de sous-système, consultez la sectionNCCL_DEBUG_SUBSYS. - Recherchez dans le journal NCCL une ligne semblable à la suivante :
NCCL INFO PROFILER/Plugin: Plugin name set by env to PATH_TO_PROFILER_PLUGIN
Désactiver CoMMA
Si CoMMA est déjà installé, empêchez-le de collecter la télémétrie NCCL en définissant la variable d'environnement NCCL_TELEMETRY_MODE=0 CoMMA avant d'exécuter vos charges de travail. Pour définir les variables d'environnement CoMMA, consultez Définir des variables d'environnement.
Pour réactiver CoMMA après l'avoir désactivé :
Définissez la variable d'environnement
NCCL_TELEMETRY_MODEsur une valeur différente de zéro. Par exemple, pour utiliser le mode par défaut, spécifiezNCCL_TELEMETRY_MODE=3.Pour consulter la liste complète des options, consultez
NCCL_TELEMETRY_MODEdans le tableau Options de configuration.
Configurer et afficher la télémétrie NCCL CoMMA
Si CoMMA est activé dans votre environnement, vous pouvez configurer le type de données de télémétrie qu'il collecte en définissant le niveau de précision des données. Cette section explique comment définir le niveau de précision des données et les options disponibles.
Vous pouvez également examiner les données collectées par CoMMA pour vérifier qu'elles sont conformes aux règles de sécurité de votre organisation ou pour les analyser avec vos propres outils d'analyse de la télémétrie NCCL. Pour ce faire, exportez les données brutes dans un fichier local.
Définir la précision des données
CoMMA collecte la télémétrie NCCL à différents niveaux de précision. Configurez le niveau de précision à l'aide de variables d'environnement. Pour définir les variables d'environnement CoMMA, consultez Définir des variables d'environnement.
- Comportement par défaut : par défaut, CoMMA suit les opérations NCCL, y compris les opérations collectives et peer-to-peer, les métadonnées de ces opérations et les temps d'exécution. Il utilise les variables d'environnement suivantes :
NCCL_PROFILER_TRACK_NCCLOP=trueNCCL_PROFILER_AGGREGATE_STEPS=trueNCCL_PROFILER_TRACK_INTERPROCESS_PROXYOP=true
- Pour activer des niveaux de collecte de données plus précis, définissez les variables d'environnement suivantes :
- Suivez le temps d'exécution des opérations de proxy en définissant
NCCL_PROFILER_TRACK_PROXYOP=true. - Suivez le temps passé sur chaque opération d'E/S réseau en définissant
NCCL_PROFILER_TRACK_STEPS=true. Ce paramètre offre le niveau de précision le plus élevé.
- Suivez le temps d'exécution des opérations de proxy en définissant
Pour consulter la liste complète des variables d'environnement, consultez Options de configuration.
Exporter des données vers un fichier local
Exportez les données brutes vers un fichier local pour les afficher. Pour exporter les données dans un fichier local et afficher le résultat, procédez comme suit :
- Définissez
NCCL_TELEMETRY_MODEsur1ou4. Pour en savoir plus sur la variable d'environnementNCCL_TELEMETRY_MODE, consultez Options de configuration. Définissez l'un des chemins d'exportation suivants :
- Définissez
NCCL_PROFILER_LATENCY_FILE=PATHpour exporter des traces d'événements détaillées dans un fichier local. RemplacezPATHpar un chemin d'accès tel que/tmp/latency-%p.txt. Définissez
NCCL_PROFILER_SUMMARY_FILE=PATHpour exporter les statistiques récapitulatives agrégées. RemplacezPATHpar un chemin d'accès tel que/tmp/summary-%p.txt.Le système remplace
%ppar l'ID du processus.
- Définissez
Examinez le résultat. Le résultat brut est un fichier JSON.
Options de configuration
Les sections suivantes récapitulent toutes les variables d'environnement que vous pouvez configurer pour CoMMA. Ils expliquent également comment définir une variable d'environnement.
Définir les variables d'environnement CoMMA
Pour définir une variable d'environnement CoMMA sur une valeur autre que celle par défaut, définissez des variables d'environnement. Vous pouvez définir des variables d'environnement en ligne de commande pour l'instance de calcul ou les ajouter à un script de démarrage. Si vous définissez les variables d'environnement sur la ligne de commande, la valeur ne persiste que par session. Pour rendre les variables d'environnement permanentes, placez-les dans le fichier ~/.bashrc, ~/.profile ou dans le fichier de démarrage utilisé par votre système d'exploitation. Pour en savoir plus, consultez la documentation de votre système d'exploitation.
Vous devez définir les variables d'environnement CoMMA avant le démarrage de votre charge de travail, car celle-ci lit les variables lors de l'initialisation de NCCL. Vous pouvez définir des variables d'environnement comme suit :
export ENVIRONMENT_VARIABLE=VALUE
Remplacez les éléments suivants :
ENVIRONMENT_VARIABLE: variable d'environnement que vous souhaitez définir (par exemple,NCCL_TELEMETRY_MODE).VALUE: valeur de la variable d'environnement, par exemple0.
Variables d'environnement CoMMA
Cette section liste les variables d'environnement que vous pouvez définir pour CoMMA et leurs valeurs par défaut.
| Nom | Description | Par défaut | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
NCCL_PROFILER_AGGREGATE_STEPS |
Active (true) ou désactive (false) l'agrégation des opérations de blocs réseau. |
true |
||||||||||
NCCL_PROFILER_GPUVIZ_LIB |
Spécifie le chemin d'accès à libGPUViz.so, une bibliothèque qui importe la télémétrie NCCL vers les services Google Cloud . Cette bibliothèque encapsule l'API de communication de l'agent.
L'API de communication de l'agent est l'interface que les agents, tels que les processus s'exécutant dans votre système d'exploitation invité, utilisent pour établir des connexions sécurisées et fiables avec les services Google Cloud .
Si vous utilisez une image NCCL gIB comme programme d'installation ou l'une des images qui regroupent le plug-in NCCL gIB, vous n'avez pas besoin de définir cette variable d'environnement. |
|||||||||||
NCCL_PROFILER_LATENCY_FILE |
Spécifie le modèle de chemin d'accès au fichier de trace de latence. Par exemple, /tmp/latency-%p.txt.
Le système remplace %p dans le nom par l'ID de processus (pid).
Pour désactiver l'exportation basée sur des fichiers, supprimez la définition de cette variable. |
|||||||||||
NCCL_PROFILER_PLUGIN |
Spécifie le chemin d'accès au binaire du plug-in de profileur. Si vous ne spécifiez pas ce paramètre, NCCL recherche libnccl-profiler.so dans le
LD_LIBRARY_PATH. |
|||||||||||
NCCL_PROFILER_SUMMARY_FILE |
Indique le chemin d'accès au fichier récapitulatif agrégé. Par exemple, /tmp/summary-%p.txt.
Le système remplace %p dans le nom par l'ID de processus (pid).
Pour désactiver l'exportation basée sur des fichiers, supprimez la définition de cette variable. |
|||||||||||
NCCL_PROFILER_SUMMARY_INTERVAL |
Spécifie l'intervalle pour les rapports récapitulatifs. Par exemple, 10s, 1m.
Compatible avec d, h, m, s,
ms, us, ns |
1m |
||||||||||
NCCL_PROFILER_TRACK_INTERPROCESS_PROXYOP |
Active (true) ou désactive (false) la surveillance des opérations de proxy NCCL inter-processus. |
true |
||||||||||
NCCL_PROFILER_TRACK_NCCLOP |
Active (true) ou désactive (false) le suivi et les rapports pour les opérations NCCL, y compris les communications collectives et point à point. |
true |
||||||||||
NCCL_PROFILER_TRACK_PROXYOP |
Active (true) ou désactive (false) le suivi et le reporting des opérations de proxy. |
false |
||||||||||
NCCL_PROFILER_TRACK_STEPS |
Active (true) ou désactive (false) le suivi et le reporting des opérations de blocs réseau. |
false |
||||||||||
NCCL_TELEMETRY_MODE |
Contrôle l'emplacement d'exportation des données de télémétrie NCCL.
Voici les options disponibles :
|
3 |
Étapes suivantes
- 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.