Les frameworks de machine learning modernes utilisent souvent la bibliothèque NVIDIA Collective Communications Library (NCCL) pour les primitives de communication entre 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 NCCL en amont sur l'infrastructure Google. Étant donné que les performances de NCCL peuvent avoir un impact sur les performances globales de la charge 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 améliore l'équilibrage de charge sur les réseaux 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 VM Google Cloud .
- Le plug-in de profilage CoMMA fournit des métriques de performances et des données de diagnostic détaillées pour votre charge de travail.
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 diagramme :

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 VM Google Cloud sans problème de stabilité, NCCL/gIB est mieux optimisé pour Google Cloud . La disparité de performances peut être très importante pour certains schémas de communication, même avec les mêmes paramètres NCCL.
Par exemple, le graphique suivant compare les performances de NCCL/gIB avec celles de NCCL en amont sur AllReduce. NCCL/gIB surpasse NCCL en amont jusqu'à 12 fois pour certaines tailles de messages.

Performances AllReduce NCCL à 32 nœuds avec A3 Ultra (H200) sans trafic en arrière-plan.
De même, dans une comparaison entre NCCL/gIB et NCCL en amont sur les performances AllGather avec trafic de fond, NCCL/gIB surpasse NCCL en amont d'environ 50 % pour les messages de grande taille, comme le montre ce graphique.

Performances AllGather NCCL à 32 nœuds avec A3 Ultra (H200) sur un tissu partagé 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 savoir 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.