Glossar · Netzwerk und Multi-Node
Wissensstufe: SpezialwissenNCCL
NCCL (NVIDIA Collective Communications Library) ist eine Softwarebibliothek, die den Datenaustausch zwischen GPUs in einem oder mehreren Rechnern organisiert.
Auch: NVIDIA Collective Communications Library
Einfach erklärt
Wenn mehrere Teams an Teilen desselben Projekts arbeiten, braucht es eine Koordination, die festlegt, wer wem wann welche Zwischenstände schickt. NCCL ist diese Koordination für Grafikprozessoren: Die Rechenprogramme sagen nur, was abgeglichen werden soll, und die Bibliothek wählt den Weg.
Was technisch passiert
NCCL stellt Kollektivoperationen bereit, also Abläufe, an denen alle beteiligten GPUs gemeinsam teilnehmen. Die Dokumentation nennt acht davon, darunter All-Reduce, All-Gather, Reduce-Scatter und Broadcast. Zusätzlich gibt es Sende- und Empfangsoperationen zwischen einzelnen GPUs, aus denen sich weitere Muster zusammensetzen lassen.
NVIDIA beschreibt die Bibliothek als topologiebewusst: Sie berücksichtigt, wie die GPUs miteinander verbunden sind, innerhalb eines Rechners ebenso wie zwischen mehreren Rechnern. Als Verbindungswege unterstützt sie PCIe, NVLink, InfiniBand-Verbs und gewöhnliche IP-Sockets; für Netze mit RoCE gibt es einen eigenen Betriebsmodus. Für die Verteilung der Daten kennt NCCL verschiedene Algorithmen, etwa Ring und Tree, und wählt im Normalfall selbst aus.
Jede Kollektivoperation läuft laut Dokumentation als ein einziger GPU-Kernel, der Kommunikation und Rechenanteil zugleich übernimmt. Für Anwendungsentwickler bleibt das meist verborgen, denn Deep-Learning-Frameworks binden NCCL ein, vor allem für All-Reduce im Training. Die Schnittstelle orientiert sich an den Collectives von MPI, was den Einstieg für alle erleichtert, die MPI bereits kennen.
Ob eine auf eine bestimmte Hardware abgestimmte Alternative schneller ist als NCCL, lässt sich nicht aus Datenblättern ableiten, sondern nur auf derselben Hardware messen.
In der Praxis
Im Vier-Spark-Verbund von AI SolutionX tauschen vier GB10-Systeme bei Tensor Parallelism mit TP = 4 ihre Teilergebnisse über ein RoCE-Netz aus. Die Projektseite nennt für diese Quality Lane RoCE und RDMA mit optimierten Collectives. Ob diese gegenüber dem NCCL-Fallback einen Vorteil bringen, ist dort ausdrücklich als offener Punkt aufgeführt, der erst durch eigene Messungen beantwortet werden muss.
Wann ist das sinnvoll?
- Sobald ein Modell oder ein Training auf mehr als einer NVIDIA-GPU läuft, ist NCCL in vielen Frameworks bereits im Einsatz, oft ohne eigene Konfiguration.
- Wenn ein verteiltes System langsamer ist als erwartet, gehören die Einstellungen und die erkannten Verbindungswege von NCCL zu den ersten Prüfpunkten.
- Wenn eine Alternative zu NCCL im Raum steht, sollte der Vergleich auf derselben Hardware und unter realer Last erfolgen.
- Für Einzel-GPU-Betrieb spielt NCCL keine Rolle.
Nicht verwechseln mit
- MPI
- MPI (Message Passing Interface) ist ein allgemeiner Standard für den Nachrichtenaustausch zwischen Prozessen. NCCL lehnt seine Collectives-Schnittstelle eng an MPI an, ist aber eine eigene Bibliothek für die Kommunikation zwischen NVIDIA-GPUs.
- CUDA
- CUDA ist die Programmierplattform, mit der Berechnungen auf einer NVIDIA-GPU laufen. NCCL baut darauf auf und regelt ausschließlich, wie mehrere GPUs ihre Daten untereinander austauschen.
Quellen
- NVIDIA NCCL User Guide: Overview of NCCL · abgerufen am
- NVIDIA NCCL User Guide: Environment Variables · abgerufen am
- AI SolutionX: Vier DGX Sparks. Ein Modell. (Projektseite) · abgerufen am
Fachlich geprüft am · Alle Begriffe im Glossar