Les frameworks de machine learning modernes utilisent fréquemment la bibliothèque NCCL (NVIDIA Collective Communications Library) comme primitives de communication entre les GPU.
La version améliorée de NCCL de Google s'appelle NCCL/gIB et est disponible sur les VM A3 Ultra, A4 et A4X de Google Cloud. NCCL/gIB est souvent plus performant que la version en amont de NCCL sur l'infrastructure Google. Étant donné que les performances de NCCL peuvent avoir un impact sur les performances globales des charges de travail, nous vous recommandons d'utiliser NCCL/gIB.
NCCL/gIB contient des fonctionnalités et des optimisations spécifiques à Google, telles que les suivantes :
- Le plug-in réseau gIB offre un meilleur équilibrage de charge sur les réseaux de Google, ce qui permet d'obtenir un débit élevé et une faible latence de manière plus cohérente lors des opérations collectives.
- Un plug-in de réglage personnalisé, qui sélectionne les meilleures options de réglage sur les Google Cloud VM.
- Le plug-in de profilage CoMMA fournit des métriques de performances détaillées et des données de diagnostic pour votre charge de travail.
- Le plug-in env fournit des configurations de variables spécifiques à la plate-forme sur les Google Cloud VM.
Architecture NCCL/gIB
NCCL/gIB interagit avec votre framework de machine learning et les GPU NVIDIA de vos clusters pour optimiser les performances et collecter des données de télémétrie, comme illustré dans ce schéma :

Avantages de l'utilisation de NCCL/gIB
Bien qu'il soit possible d'utiliser la bibliothèque NVIDIA Collective Communications Library en amont sur les Google Cloud VM sans problème de stabilité, NCCL/gIB est mieux optimisé pour Google Cloud . La disparité de performances peut être très importante pour certains modèles de communication, même avec les mêmes paramètres NCCL.
Par exemple, le graphique suivant compare NCCL/gIB à la version en amont de NCCL en termes de performances AllReduce. NCCL/gIB surpasse la version en amont de NCCL jusqu'à 12 fois pour certaines tailles de messages.

Performances AllReduce de NCCL à 32 nœuds à l'aide d'A3 Ultra (H200) sans trafic en arrière-plan.
De même, dans une comparaison de NCCL/gIB avec la version en amont de NCCL en termes de performances AllGather avec trafic en arrière-plan, NCCL/gIB surpasse la version en amont de NCCL d'environ 50% pour les tailles de messages plus importantes, comme illustré dans ce graphique.

Performances AllGather de NCCL à 32 nœuds à l'aide d'A3 Ultra (H200) sur une structure partagée avec un bruit de fond.
De plus, le plug-in de profilage CoMMA fournit à Google une télémétrie personnalisée améliorée, ce qui nous permet de mieux vous aider en cas de problème au niveau de la charge de travail.
Utiliser NCCL/gIB
Pour exécuter des tests NCCL/gIB sur votre cluster, choisissez la page de la liste suivante qui répond le mieux à vos besoins :
- Exécuter des tests NCCL sur des VM Compute Engine
- Exécuter NCCL sur des clusters GKE qui utilisent la configuration par défaut
- Exécuter NCCL sur des clusters GKE personnalisés qui utilisent A4X
- Exécuter NCCL sur des clusters GKE personnalisés qui utilisent A4 ou A3 Ultra
- Exécuter des tests NCCL sur des clusters Slurm
- Exécuter des tests NCCL dans Cluster Director
Pour découvrir comment résoudre les problèmes liés à votre cluster après avoir exécuté vos tests, consultez Collecter et comprendre les journaux NCCL/gIB pour le dépannage.