Multi-GPU con NCCL
Comunicazione collettiva per lo scaling
Multi-GPU con NCCL è una lezione CUDA Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CUDA Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CUDA Academy include 4 lezioni in totale.
Gestire tutto manualmente diventa difficile
Configurare manualmente le copie peer tra molte GPU diventa rapidamente complicato. Per scalare davvero serve una libreria progettata per la comunicazione collettiva.
Ecco NCCL
La risposta di NVIDIA è NCCL, la libreria per le comunicazioni collettive. Sposta automaticamente i dati tra le GPU usando i collegamenti più veloci disponibili.
Che cos'è un'operazione collettiva
Un'operazione collettiva è un'unica operazione a cui partecipano tutte le GPU, ad esempio per sommare un valore presente su ciascuna scheda. Tutti i dispositivi cooperano in una sola chiamata.
L'operazione collettiva principale: AllReduce
Il vero cavallo di battaglia è AllReduce. Combina un buffer proveniente da ogni GPU, ad esempio sommandolo, e restituisce lo stesso risultato a tutte.
ncclAllReduce(send, recv, n, ncclFloat, ncclSum, comm, stream);Altre operazioni collettive
NCCL offre anche Broadcast per condividere i dati di una GPU con tutte le altre, oltre ad AllGather e ReduceScatter per altri comuni schemi di scambio.
Il communicator
Le GPU che comunicano tra loro formano un gruppo gestito da un communicator. Ogni chiamata collettiva passa questo handle, così NCCL conosce i partecipanti.
I rank identificano le GPU
All'interno di un communicator, ogni GPU riceve un numero chiamato rank, a partire da 0. I rank permettono di indicare chi invia, chi riceve e chi è il root.
Creare i communicator
Per le GPU appartenenti a un unico processo, ncclCommInitAll configura contemporaneamente tutti i communicator a partire dall'elenco degli id dei dispositivi fornito.
ncclCommInitAll(comms, nGpus, devs);Consapevole degli stream
Ogni chiamata NCCL riceve uno stream. Le operazioni vengono accodate al suo interno ed eseguite insieme ai kernel, così la comunicazione si sovrappone al calcolo.
Raggruppare le chiamate
Per eseguire operazioni collettive su molte GPU senza deadlock, le racchiuda tra ncclGroupStart e ncclGroupEnd, così NCCL le avvia insieme.
ncclGroupStart();
// per-GPU calls
ncclGroupEnd();Perché è ideale per il training
Il deep learning sincronizza i gradienti tra le GPU a ogni passo. AllReduce esegue esattamente questa operazione, motivo per cui NCCL è alla base di quasi tutto il training multi-GPU.
Controllo rapido
Ricordi quale operazione collettiva NCCL somma un buffer tra le GPU e restituisce il risultato a tutte.
Riepilogo
NCCL esegue operazioni collettive come AllReduce su collegamenti veloci, organizzate tramite un communicator di GPU ordinate per rank. È la base dell'addestramento su più GPU. Corso completato. ✨
Impara C++ con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Multi-GPU con NCCL» è gratuita?
Sì — il testo completo di «Multi-GPU con NCCL» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CUDA Academy, passa a CoddyKit PRO. Il corso CUDA Academy include 4 lezioni in totale.
Cosa imparerò in «Multi-GPU con NCCL»?
Comunicazione collettiva per lo scaling Eserciti CUDA Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare CUDA Academy?
Non è richiesta alcuna esperienza precedente. CUDA Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Multi-GPU con NCCL»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione CUDA Academy?
Sì. Ogni lezione CUDA Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Enumerare e selezionare i dispositivi
- Partizionare il lavoro tra le GPU
- Accesso peer-to-peer alla memoria
- Multi-GPU con NCCL