Questo documento descrive Collective Communication Analyzer (CoMMA), una libreria per la raccolta di dati di telemetria NCCL per Google Cloud i servizi. La telemetria NCCL raccoglie metriche sul rendimento ed eventi operativi generati da NCCL durante l'esecuzione. La NVIDIA Collective Communication Library (NCCL) accelera la comunicazione ad alte prestazioni tra le GPU che eseguono sistemi di computing paralleli e distribuiti. Questa comunicazione ad alte prestazioni è particolarmente utile per il deep learning e il computing ad alte prestazioni (HPC).
Per le versioni NCCL 2.23 e successive, NVIDIA ha introdotto l'API del plug-in del profiler NCCL, che consente agli sviluppatori di registrare i callback delle funzioni per raccogliere dati di telemetria durante le operazioni collettive NCCL. Google fornisce il Collective Communication Analyzer (CoMMA), una libreria che utilizza l'API del plug-in del profiler NCCL di NVIDIA per raccogliere dati di telemetria NCCL per i Google Cloud servizi. CoMMA viene installato e attivato automaticamente per alcune immagini, ma puoi anche disattivarlo, riattivarlo o installarlo e attivarlo manualmente per controllare la raccolta dei dati.
Immagini con CoMMA abilitato
Per i tipi di macchine A4X Max, A4X, A4, A3 Ultra, A3 Mega e A3 High (8 GPU), CoMMA viene installato e attivato automaticamente quando utilizzi immagini che includono il plug-in NCCL Google Infrastructure Bundle (gIB). Le seguenti immagini contengono il plug-in NCCL gIB:
- Immagini dei nodi Container-Optimized OS con containerd (cos_containerd): Google Kubernetes Engine (GKE) utilizza queste immagini per creare cluster GKE Autopilot. I file binari CoMMA sono disponibili nella directory
/home/kubernetes/bin/gib. - Immagini container del livello software di deep learning: queste immagini vengono utilizzate per eseguire il deployment e configurare framework e librerie di AI e ML sui cluster GKE.
Se utilizzi una di queste immagini e vuoi impedire a CoMMA di raccogliere dati di telemetria NCCL, consulta Disattivare CoMMA. Tuttavia, CoMMA deve essere abilitato per il funzionamento di funzionalità come il rilevamento di straggler o il rilevamento di workload che non rispondono. Se non utilizzi queste immagini e vuoi abilitare CoMMA per raccogliere dati di telemetria NCCL, consulta Installare CoMMA.
Vantaggi
I dati di telemetria NCCL raccolti da CoMMA aiutano a identificare i colli di bottiglia delle prestazioni, in particolare gli straggler, nella comunicazione GPU. CoMMA raccoglie dati granulari, come gli istogrammi di latenza per le operazioni di comunicazione collettiva. Un servizio di diagnostica può quindi elaborare e utilizzare questi dati per individuare gli straggler.
L'utilizzo di CoMMA per raccogliere dati di telemetria offre i seguenti vantaggi:
Obbligatorio per il rilevamento di straggler e di workload che non rispondono: CoMMA raccoglie i dati di telemetria NCCL granulari per identificare i colli di bottiglia delle prestazioni o gli straggler nella comunicazione da GPU a GPU. CoMMA fornisce dati di telemetria NCCL dettagliati che aiutano a identificare e risolvere i problemi nei workload di addestramento di AI e ML su larga scala.
Ad esempio, CoMMA acquisisce l'algoritmo utilizzato nelle operazioni NCCL. Queste informazioni sono preziose per l'analisi e l'ottimizzazione delle prestazioni, perché algoritmi diversi possono avere caratteristiche di rendimento molto diverse in base al workload e alla configurazione del sistema.
CoMMA aiuta anche a risolvere i problemi di prestazioni e gli errori non ottimali. Traccia gli errori provenienti dai livelli di trasporto di livello inferiore, come TCP, RDMA o switch fabric, fino a collettivi NCCL specifici e nodi di avvio. Può riconoscere quando un segnale di telemetria heartbeat smette di rispondere e tracciare le potenziali cause dei workload che non rispondono.
Tracciamento a basso overhead: CoMMA utilizza risorse di calcolo minime durante la raccolta attiva di dati di telemetria NCCL, il che lo rende ideale per workload di machine learning sensibili alle prestazioni e di lunga durata, come l'addestramento di modelli linguistici di grandi dimensioni (LLM)
Ampliamento dell'ambito della telemetria NCCL: CoMMA utilizza l'API del plug-in del profiler NCCL. Questa API raccoglie un ambito più ampio di dati di telemetria NCCL rispetto ai plug-in basati sul trasporto. I plug-in basati sul trasporto raccolgono principalmente dati di telemetria sul trasporto di rete sottostante, inclusi i trasferimenti di dati su hardware di rete e protocolli di rete. Il plug-in del profiler raccoglie dati di telemetria per le operazioni di comunicazione di NCCL, inclusi i tempi delle comunicazioni collettive, le operazioni proxy e i trasferimenti di dati.
Comprendere il funzionamento di CoMMA
Durante il runtime dell'applicazione, NCCL carica automaticamente le librerie CoMMA installate nella posizione specificata dalla variabile di ambiente LD_LIBRARY_PATH. CoMMA raccoglie quindi i dati di telemetria NCCL, che possono essere utilizzati da altri servizi Google. Puoi anche esportare questi dati nel file system locale, se vuoi.
Passaggi successivi
- Scopri come attivare, disattivare e configurare CoMMA.
- Scopri come risolvere i problemi relativi a CoMMA.
- Scopri come rilevare e risolvere gli straggler.
- Scopri come rilevare i workload che non rispondono.