I moderni framework di machine learning spesso utilizzano la NVIDIA Collective Communications Library (NCCL) per le primitive di comunicazione GPU-GPU.
La versione migliorata di NCCL di Google si chiama NCCL/gIB ed è disponibile sulle istanze A5X, A4X Max, A4X, A4 e A3 Ultra diGoogle Cloud. NCCL/gIB è spesso più efficiente di NCCL upstream sull'infrastruttura Google. Poiché le prestazioni di NCCL possono influire sulle prestazioni complessive del workload, ti consigliamo di utilizzare NCCL/gIB.
NCCL/gIB contiene funzionalità e ottimizzazioni specifiche di Google, tra cui:
- Il plug-in di rete gIB offre un bilanciamento del carico migliorato sulle reti di Google, con un throughput elevato e una bassa latenza più coerenti durante le operazioni collettive.
- Un plug-in di ottimizzazione personalizzato, che seleziona le migliori opzioni di ottimizzazione sulle VM Google Cloud .
- Il plugin del profiler CoMMA fornisce metriche sul rendimento e dati diagnostici dettagliati per il tuo workload.
- Il plug-in env fornisce configurazioni di variabili specifiche della piattaforma su Google Cloud VM.
Architettura NCCL/gIB
NCCL/gIB interagisce con il framework di machine learning e le GPU NVIDIA sui cluster per ottimizzare le prestazioni e raccogliere i dati di telemetria, come mostrato in questo diagramma:

Vantaggi dell'utilizzo di NCCL/gIB
Sebbene sia possibile utilizzare la libreria NVIDIA Collective Communications Library upstream sulle VM Google Cloud senza problemi di stabilità, NCCL/gIB è ottimizzata meglio per Google Cloud e la disparità di prestazioni può essere molto significativa per determinati pattern di comunicazione, anche con gli stessi parametri NCCL.
Ad esempio, il grafico seguente mostra un confronto tra NCCL/gIB e NCCL upstream sulle prestazioni di AllReduce. NCCL/gIB supera l'NCCL upstream fino a 12 volte per determinate dimensioni dei messaggi.

Prestazioni di NCCL AllReduce a 32 nodi utilizzando A3 Ultra (H200) senza traffico in background.
Analogamente, in un confronto tra NCCL/gIB e NCCL upstream sulle prestazioni di AllGather con traffico in background, NCCL/gIB supera NCCL upstream di circa il 50% con dimensioni dei messaggi più grandi, come mostrato in questo grafico.

Prestazioni di NCCL AllGather a 32 nodi utilizzando A3 Ultra (H200) su un fabric condiviso con un background rumoroso.
Inoltre, il plug-in del profiler CoMMA fornisce a Google una telemetria personalizzata migliorata, consentendoci di assisterti meglio in caso di problemi a livello di workload.
Installa NCCL/gIB
Prima di eseguire i test NCCL, devi installare NCCL/gIB nel tuo ambiente di runtime.
Utilizza NCCL/gIB
Per eseguire i test NCCL/gIB sul tuo cluster, scegli la pagina dall'elenco seguente che meglio soddisfa i tuoi requisiti:
- Utilizza i plug-in gIB NCCL nei container NVIDIA NGC
- Esegui i test NCCL sulle istanze Compute Engine
- Esegui NCCL su cluster GKE che utilizzano Cluster Toolkit
- Esegui NCCL sui cluster GKE che utilizzano A4X Max
- Esegui NCCL sui cluster GKE che utilizzano A4X
- Esegui NCCL su cluster GKE che utilizzano A4 o A3 Ultra
- Esegui i test NCCL sui cluster Slurm
- Esegui i test NCCL in Cluster Director
Per istruzioni su come eseguire NCCL/gIB su cluster GKE che utilizzano A5X, contatta il tuo rappresentante Google Cloud .
Per scoprire come risolvere eventuali problemi con il cluster dopo aver eseguito i test, consulta Raccogli e comprendi i log NCCL/gIB per la risoluzione dei problemi.