CUDA Academy · Lektion

Multi-GPU mit NCCL

Kollektive Kommunikation für Skalierung

Lektion 4 von 413 Schritte

Multi-GPU mit NCCL ist eine kostenlose CUDA Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CUDA Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CUDA Academy-Kurs umfasst insgesamt 4 Lektionen.

Handarbeit wird schwierig

Peer-Kopien über viele GPUs von Hand zu verbinden, wird schnell unübersichtlich. Für echte Skalierung benötigen Sie eine Bibliothek, die für kollektive Kommunikation entwickelt wurde.

NCCL kennenlernen

Die Antwort von NVIDIA ist NCCL, die Bibliothek für kollektive Kommunikation. Sie verschiebt Daten automatisch über die schnellsten verfügbaren Verbindungen zwischen den GPUs.

Was eine kollektive Operation ist

Eine kollektive Operation ist eine Operation, an der sich jede GPU gemeinsam beteiligt – beispielsweise beim Addieren eines Werts, der auf jeder Karte liegt. Alle Geräte arbeiten in einem einzigen Aufruf zusammen.

Die wichtigste kollektive Operation: AllReduce

Die zentrale Operation ist AllReduce. Sie kombiniert einen Puffer jeder GPU, beispielsweise durch Addition, und gibt allen GPUs dasselbe Ergebnis zurück.

ncclAllReduce(send, recv, n, ncclFloat, ncclSum, comm, stream);

Weitere kollektive Operationen

NCCL bietet außerdem Broadcast, um die Daten einer GPU mit allen anderen zu teilen, sowie AllGather und ReduceScatter für weitere gängige Austauschmuster.

Der Communicator

Die GPUs, die miteinander kommunizieren, bilden eine Gruppe, die von einem Communicator verwaltet wird. Jeder Aufruf einer kollektiven Operation übergibt dieses Handle, damit NCCL die Teilnehmer kennt.

Ranks identifizieren GPUs

Innerhalb eines Communicators erhält jede GPU eine Zahl, den sogenannten Rank, beginnend bei 0. Über Ranks können Sie angeben, wer sendet, wer empfängt und wer die Root-GPU ist.

Die Communicators erstellen

Für GPUs innerhalb eines Prozesses richtet ncclCommInitAll alle Communicators gleichzeitig anhand der von Ihnen bereitgestellten Liste von Geräte-IDs ein.

ncclCommInitAll(comms, nGpus, devs);

Stream-bewusst

Jeder NCCL-Aufruf benötigt einen Stream. Die Operationen werden dort eingereiht und laufen parallel zu Ihren Kernels, sodass Kommunikation und Berechnung überlappen können.

Aufrufe gruppieren

Um kollektive Operationen auf vielen GPUs ohne Deadlock auszuführen, platzieren Sie sie zwischen ncclGroupStart und ncclGroupEnd, damit NCCL sie gemeinsam startet.

ncclGroupStart();
// per-GPU calls
ncclGroupEnd();

Warum das Training davon profitiert

Beim Deep Learning werden die Gradienten in jedem Schritt zwischen den GPUs synchronisiert. AllReduce erledigt genau das. Deshalb basiert nahezu jedes Training auf mehreren GPUs auf NCCL.

Schnelltest

Rufen Sie sich die NCCL-Operation in Erinnerung, die einen Puffer über mehrere GPUs hinweg summiert und das Ergebnis an alle zurückgibt.

Zusammenfassung

NCCL führt Kollektivoperationen wie AllReduce über schnelle Verbindungen aus, organisiert durch einen Communicator aus GPUs mit Rangnummern. Er bildet das Rückgrat des Trainings auf mehreren GPUs. Kurs abgeschlossen. ✨

Kostenlos starten

Lerne C++ mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
30
Lektionen
120

Häufig gestellte Fragen

Ist die Lektion „Multi-GPU mit NCCL“ kostenlos?

Ja — der vollständige Text von „Multi-GPU mit NCCL“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CUDA Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CUDA Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Multi-GPU mit NCCL“?

Kollektive Kommunikation für Skalierung Du übst CUDA Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CUDA Academy zu starten?

Keine Vorkenntnisse erforderlich. CUDA Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Multi-GPU mit NCCL“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CUDA Academy-Lektion Code schreiben und ausführen?

Ja. Jede CUDA Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Geräte aufzählen und auswählen
  2. Arbeit auf mehrere GPUs verteilen
  3. Peer-to-Peer-Speicherzugriff
  4. Multi-GPU mit NCCL
← Zurück zu CUDA Academy