Questa guida descrive come attivare, disattivare e gestire la libreria Collective Communication Analyzer (CoMMA). CoMMA raccoglie la telemetria NCCL per i serviziGoogle Cloud . Per saperne di più su CoMMA, consulta Collective Communication Analyzer (CoMMA).
Abilitare CoMMA
CoMMA è preinstallato e attivato se utilizzi immagini che contengono il plug-in NCCL gIB. Per un elenco di queste immagini, vedi Immagini con CoMMA abilitato.
Opzioni di installazione
Se non utilizzi nessuna di queste immagini e vuoi installare CoMMA, utilizza uno dei seguenti metodi.
| Metodo di installazione | Tipi di macchine supportati |
|---|---|
| Immagine del pacchetto dell'infrastruttura Google (gIB) NCCL (consigliata per i tipi di macchina più recenti) | A4X Max, A4X, A4 High e A3 Ultra |
| Immagine del programma di installazione di CoMMA | A4X, A4 High e A3 Ultra |
| Compila dall'origine (obbligatorio per i tipi di macchina precedenti) | A3 Mega, A3 High, A3 Edge, A2 Ultra, A2 Standard e N1 con GPU collegate |
Installare CoMMA
Per installare CoMMA, seleziona una delle seguenti opzioni:
Immagine gIB NCCL
Per installare CoMMA utilizzando l'immagine NCCL gIB, esegui il comando seguente.
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
Immagine del programma di installazione di CoMMA
Puoi ottenere i file binari di CoMMA in un'immagine Docker autonoma. Puoi utilizzare l'immagine Docker CoMMA, us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/comma-installer, come initContainers per installare i file binari di CoMMA nel container del tuo workload.
Il container archivia i file binari nella directory /artifacts.
Per utilizzare l'immagine del programma di installazione di CoMMA, completa i seguenti passaggi:
Installa CoMMA nel tuo carico di lavoro aggiungendo il seguente snippet al tuo
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/
Lo snippet di configurazione YAML specifica un container per l'installazione di CoMMA.
Lo snippet specifica l'immagine container dell'installer, il relativo criterio pull e un punto di montaggio del volume per il plug-in.
Lo stesso punto di montaggio del volume deve essere montato nel contenitore del workload con
<mount-path>/lib64 aggiunto a LD_LIBRARY_PATH.
La sezione command esegue uno script shell per rimuovere eventuali librerie
del profiler esistenti. e copia la nuova
libreria del profiler nella directory dei plug-in designata.
Lo script garantisce che
la versione corretta del plug-in Profiler sia installata e pronta all'uso.
Crea da sorgente
Per creare la libreria CoMMA dall'origine, installa il seguente software:
- Linguaggio di programmazione Rust, richiesto dal compilatore e da Cargo. Può essere installato con rustup o con i pacchetti di sistema
Libclang-dev, che richiedebindgen.CMakeversione 3.10 o successive
Per eseguire la compilazione dal codice sorgente, completa i seguenti passaggi:
Clona il repository e i relativi moduli secondari.
git clone --recurse-submodules https://github.com/google/CoMMA
Compila i file binari utilizzando Cargo.
cargo build --release
Cargo salva il binario in
target/release/libnccl_profiler.so.Abilita NCCL a caricare le librerie CoMMA utilizzando uno dei seguenti metodi:
- Copia il file
libnccl_profiler.socompilato in una directory diLD_LIBRARY_PATH. Rinominalo inlibnccl-profiler.so(utilizza un trattino anziché un trattino basso). - In alternativa, imposta la variabile di ambiente
NCCL_PROFILER_PLUGINper specificare il percorso del file.so.
- Copia il file
Verificare l'installazione o l'attivazione
Per verificare che NCCL carichi le librerie CoMMA, esamina i log NCCL:
- Attiva il logging di debug NCCL. Abilita la registrazione impostando la variabile di ambiente
NCCL_DEBUG=INFO. Puoi anche specificare un livello di debug più dettagliato. Per altre opzioni di debug, consulta la sezioneNCCL_DEBUGnella documentazione NVIDIA. - Specifica il sottosistema
INITper il debug. SpecificaINITimpostando la variabile di ambienteNCCL_DEBUG_SUBSYS=INIT. Puoi anche specificare altri sottosistemi. Per altre opzioni del sottosistema, vedi la sezioneNCCL_DEBUG_SUBSYS. - Trova una riga nel log NCCL simile alla seguente:
NCCL INFO PROFILER/Plugin: Plugin name set by env to PATH_TO_PROFILER_PLUGIN
Disattivare CoMMA
Se CoMMA è già installato, impedisci la raccolta
della telemetria NCCL impostando la variabile di ambiente NCCL_TELEMETRY_MODE=0 CoMMA
prima di eseguire i workload. Per impostare le variabili di ambiente
di CoMMA, consulta Impostare le variabili di ambiente.
Per riattivare CoMMA dopo averlo disattivato:
Imposta la variabile di ambiente
NCCL_TELEMETRY_MODEsu un valore diverso da zero. Ad esempio, per utilizzare la modalità predefinita, specificaNCCL_TELEMETRY_MODE=3.Per esaminare l'elenco completo delle opzioni, consulta
NCCL_TELEMETRY_MODEnella tabella Opzioni di configurazione.
Configura e visualizza la telemetria NCCL di CoMMA
Se CoMMA è abilitato nel tuo ambiente, puoi configurare il tipo di dati di telemetria che raccoglie impostando il livello di granularità dei dati. Questa sezione spiega come impostare la granularità dei dati e le opzioni disponibili.
Puoi anche esaminare i dati raccolti da CoMMA per verificare che siano in linea con le norme di sicurezza della tua organizzazione o per analizzarli con i tuoi strumenti di analisi della telemetria NCCL. Per farlo, esporta i dati non elaborati in un file locale.
Impostare la granularità dei dati
CoMMA raccoglie la telemetria NCCL a diversi livelli di granularità. Configura il livello di granularità utilizzando le variabili di ambiente. Per impostare le variabili di ambiente di CoMMA, consulta Impostare le variabili di ambiente.
- Comportamento predefinito: per impostazione predefinita, CoMMA monitora le operazioni NCCL,
incluse quelle collettive e peer-to-peer, i metadati di queste
operazioni e i tempi di
completamento. Utilizza le seguenti variabili di ambiente:
NCCL_PROFILER_TRACK_NCCLOP=trueNCCL_PROFILER_AGGREGATE_STEPS=trueNCCL_PROFILER_TRACK_INTERPROCESS_PROXYOP=true
- Per attivare livelli più granulari di raccolta dei dati,
imposta le seguenti variabili di ambiente:
- Tieni traccia del tempo di completamento delle operazioni proxy impostando
NCCL_PROFILER_TRACK_PROXYOP=true. - Tieni traccia del tempo trascorso per ogni operazione di I/O di rete impostando
NCCL_PROFILER_TRACK_STEPS=true. Questa impostazione offre il livello di granularità più elevato.
- Tieni traccia del tempo di completamento delle operazioni proxy impostando
Per esaminare l'elenco completo delle variabili di ambiente, consulta Opzioni di configurazione.
Esportare i dati in un file locale
Esporta i dati non elaborati in un file locale per visualizzarli. Per esportare i dati in un file locale e visualizzare l'output, segui questi passaggi:
- Imposta
NCCL_TELEMETRY_MODEsu1o4. Per scoprire di più sulla variabile di ambienteNCCL_TELEMETRY_MODE, consulta Opzioni di configurazione. Imposta uno dei seguenti percorsi di esportazione:
- Imposta
NCCL_PROFILER_LATENCY_FILE=PATHper esportare le tracce dettagliate degli eventi in un file locale. SostituisciPATHcon un percorso come/tmp/latency-%p.txt. Imposta
NCCL_PROFILER_SUMMARY_FILE=PATHper esportare statistiche riepilogative aggregate. SostituisciPATHcon un percorso come/tmp/summary-%p.txt.Il sistema sostituisce
%pcon l'ID processo.
- Imposta
Rivedi l'output. L'output non elaborato è un file JSON.
Opzioni di configurazione
Le sezioni seguenti riepilogano tutte le variabili di ambiente che puoi configurare per CoMMA. Spiegano anche come impostare qualsiasi variabile di ambiente.
Imposta le variabili di ambiente CoMMA
Per impostare una variabile di ambiente CoMMA su un valore non predefinito, imposta le variabili di ambiente. Puoi impostare le variabili di ambiente nella riga di comando per l'istanza di calcolo o aggiungerle a uno script di avvio. Se imposti le variabili di ambiente
nella riga di comando, il valore viene mantenuto solo per sessione. Per rendere permanenti le variabili di ambiente, inseriscile nel file ~/.bashrc, ~/.profile o in qualsiasi file di avvio utilizzato dal sistema operativo. Per saperne di più,
consulta la documentazione del sistema operativo.
Devi impostare le variabili di ambiente CoMMA prima dell'avvio del workload, poiché il workload legge le variabili durante l'inizializzazione di NCCL. Puoi impostare le variabili di ambiente nel seguente modo:
export ENVIRONMENT_VARIABLE=VALUE
Sostituisci quanto segue:
ENVIRONMENT_VARIABLE: la variabile di ambiente che vuoi impostare, ad esempioNCCL_TELEMETRY_MODE.VALUE: il valore della variabile di ambiente, ad esempio0.
Variabili di ambiente CoMMA
Questa sezione elenca le variabili di ambiente che puoi impostare per CoMMA e i relativi valori predefiniti.
| Nome | Descrizione | Predefinito | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
NCCL_PROFILER_AGGREGATE_STEPS |
Attiva (true) o disattiva (false)
l'aggregazione delle operazioni sui blocchi di rete. |
true |
||||||||||
NCCL_PROFILER_GPUVIZ_LIB |
Specifica il percorso di libGPUViz.so, una libreria che carica
la telemetria NCCL nei servizi Google Cloud . Questa libreria esegue il wrapping dell'API di comunicazione con l'agente.
L'API di comunicazione dell'agente è l'interfaccia che gli agenti, come i processi
in esecuzione nel sistema operativo guest, utilizzano per avviare connessioni sicure e
affidabili con i servizi Google Cloud .
Se utilizzi un'immagine NCCL gIB come programma di installazione o una delle immagini che raggruppano il plug-in NCCL gIB, non devi impostare questa variabile di ambiente. |
|||||||||||
NCCL_PROFILER_LATENCY_FILE |
Specifica il modello di percorso per il file di traccia della latenza. Ad esempio,
/tmp/latency-%p.txt.
Il sistema sostituisce %p nel nome con l'ID processo (pid).
Per disattivare l'esportazione basata su file, deseleziona questa variabile. |
|||||||||||
NCCL_PROFILER_PLUGIN |
Specifica il percorso del file binario del plug-in Profiler. Se non specifichi questa impostazione, NCCL cerca libnccl-profiler.so in
LD_LIBRARY_PATH. |
|||||||||||
NCCL_PROFILER_SUMMARY_FILE |
Specifica il percorso del file di riepilogo aggregato. Ad esempio,
/tmp/summary-%p.txt.
Il sistema sostituisce %p nel nome con l'ID processo (pid).
Per disattivare l'esportazione basata su file, deseleziona questa variabile. |
|||||||||||
NCCL_PROFILER_SUMMARY_INTERVAL |
Specifica l'intervallo per la generazione di report di riepilogo. Ad esempio,
10s, 1m.
Supporta d, h, m, s,
ms, us, ns |
1m |
||||||||||
NCCL_PROFILER_TRACK_INTERPROCESS_PROXYOP |
Attiva (true) o disattiva (false)
il monitoraggio delle operazioni proxy NCCL tra processi. |
true |
||||||||||
NCCL_PROFILER_TRACK_NCCLOP |
Attiva (true) o disattiva (false)
il monitoraggio e la generazione di report per le operazioni NCCL,
incluse le comunicazioni collettive e point-to-point. |
true |
||||||||||
NCCL_PROFILER_TRACK_PROXYOP |
Attiva (true) o disattiva (false) il monitoraggio e la generazione di report delle operazioni proxy. |
false |
||||||||||
NCCL_PROFILER_TRACK_STEPS |
Attiva (true) o disattiva (false)
il monitoraggio e la generazione di report sulle operazioni sui blocchi di rete. |
false |
||||||||||
NCCL_TELEMETRY_MODE |
Controlla la posizione di esportazione dei dati di telemetria NCCL.
Le opzioni includono quanto segue:
|
3 |
Passaggi successivi
- Scopri come risolvere i problemi relativi a CoMMA.
- Scopri come rilevare e risolvere i problemi relativi ai ritardatari.