Moderne Machine-Learning-Frameworks verwenden oft die NVIDIA Collective Communications Library (NCCL) für Primitive für die GPU-zu-GPU-Kommunikation.
Die erweiterte Version von NCCL von Google heißt NCCL/gIB und ist auf den VMs A3 Ultra, A4 und A4X von Google Cloudverfügbar. NCCL/gIB ist in der Google-Infrastruktur oft leistungsfähiger als Upstream-NCCL. Da sich die NCCL-Leistung auf die Gesamtleistung der Arbeitslast auswirken kann, empfehlen wir die Verwendung von NCCL/gIB.
NCCL/gIB enthält Google-spezifische Funktionen und Optimierungen wie die folgenden:
- Das gIB-Netzwerk-Plug-in bietet ein verbessertes Load-Balancing in den Netzwerken von Google, was zu einem hohen Durchsatz und einer niedrigen Latenz bei kollektiven Vorgängen führt.
- Ein benutzerdefiniertes Tuner-Plug-in, das die besten Tuning-Optionen für Google Cloud VMs auswählt.
- Das CoMMA-Profiler-Plug-in bietet detaillierte Leistungsmesswerte und Diagnosedaten für Ihre Arbeitslast.
- Das env-Plug-in bietet plattformspezifische Variablenkonfigurationen für Google Cloud VMs.
NCCL/gIB-Architektur
NCCL/gIB interagiert mit Ihrem Framework für maschinelles Lernen und den NVIDIA-GPUs in Ihren Clustern, um die Leistung zu optimieren und Telemetriedaten zu erfassen. Das folgende Diagramm veranschaulicht dies:

Vorteile der Verwendung von NCCL/gIB
Es ist zwar möglich, die Upstream-NVIDIA Collective Communications Library auf Google Cloud -VMs ohne Stabilitätsprobleme zu verwenden, aber NCCL/gIB ist besser für Google Cloud optimiert. Die Leistungsunterschiede können bei bestimmten Kommunikationsmustern auch bei gleichen NCCL-Parametern sehr groß sein.
Das folgende Diagramm zeigt beispielsweise einen Vergleich von NCCL/gIB mit Upstream-NCCL in Bezug auf die AllReduce-Leistung. NCCL/gIB übertrifft Upstream-NCCL bei bestimmten Nachrichtengrößen um das Zwölffache.

NCCL-AllReduce-Leistung mit 32 Knoten mit A3 Ultra (H200) ohne Hintergrund-Traffic.
In einem Vergleich von NCCL/gIB mit Upstream-NCCL bei der AllGather-Leistung mit Hintergrundtraffic übertrifft NCCL/gIB Upstream-NCCL bei größeren Nachrichtengrößen um etwa 50 %, wie in diesem Diagramm dargestellt.

NCCL-AllGather-Leistung mit 32 Knoten mit A3 Ultra (H200) in einem gemeinsam genutzten Fabric mit einem lauten Hintergrund.
Außerdem bietet das CoMMA-Profiler-Plug-in Google eine verbesserte benutzerdefinierte Telemetrie, sodass wir Sie bei Problemen auf Arbeitslastniveau besser unterstützen können.
NCCL/gIB verwenden
Wenn Sie NCCL-/gIB-Tests für Ihren Cluster ausführen möchten, wählen Sie die Seite aus der folgenden Liste aus, die Ihren Anforderungen am besten entspricht:
- NCCL-Tests auf Compute Engine-VMs ausführen
- NCCL in GKE-Clustern mit Standardkonfiguration ausführen
- NCCL in benutzerdefinierten GKE-Clustern mit A4X ausführen
- NCCL auf benutzerdefinierten GKE-Clustern ausführen, die A4 oder A3 Ultra verwenden
- NCCL-Tests in Slurm-Clustern ausführen
- NCCL-Tests in Cluster Director ausführen
Informationen dazu, wie Sie Probleme mit Ihrem Cluster beheben, nachdem Sie Ihre Tests ausgeführt haben, finden Sie unter NCCL-/gIB-Logs zur Fehlerbehebung erfassen und analysieren.