Moderne Frameworks für maschinelles Lernen nutzen 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 A5X-, A4X Max-, A4X-, A4- und A3 Ultra-Instanzen vonGoogle Cloudverfügbar. NCCL/gIB ist in der Google-Infrastruktur oft leistungsfähiger als Upstream-NCCL. Da die NCCL-Leistung die Gesamtleistung der Arbeitslast beeinträchtigen kann, empfehlen wir die Verwendung von NCCL/gIB.
NCCL/gIB enthält Google-spezifische Funktionen und Optimierungen, darunter:
- Das gIB-Netzwerk-Plug-in bietet ein verbessertes Load Balancing in den Netzwerken von Google, was bei kollektiven Vorgängen zu einem konstant hohen Durchsatz und einer niedrigen Latenz führt.
- Ein benutzerdefiniertes Tuner-Plug-in, das die besten Tuning-Optionen auf 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, wie in diesem Diagramm dargestellt:

Vorteile von NCCL/gIB
Obwohl es möglich ist, die Upstream-NVIDIA Collective Communications Library auf Google Cloud -VMs ohne Stabilitätsprobleme zu verwenden, ist NCCL/gIB besser für Google Cloud optimiert und die Leistungsunterschiede können bei bestimmten Kommunikationsmustern sehr groß sein, selbst mit denselben NCCL-Parametern.
Die folgende Grafik zeigt beispielsweise einen Vergleich der AllReduce-Leistung von NCCL/gIB mit der von Upstream-NCCL. NCCL/gIB übertrifft Upstream-NCCL bei bestimmten Nachrichtengrößen um das bis zu 12-Fache.

NCCL-AllReduce-Leistung mit 32 Knoten unter Verwendung von 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 zu sehen ist.

NCCL-AllGather-Leistung mit 32 Knoten und A3 Ultra (H200) in einer gemeinsam genutzten Fabric mit Hintergrundrauschen.
Darüber hinaus stellt das CoMMA-Profiler-Plug-in Google verbesserte benutzerdefinierte Telemetriedaten zur Verfügung, sodass wir Sie bei Problemen auf Arbeitslastebene besser unterstützen können.
NCCL/gIB installieren
Bevor Sie NCCL-Tests ausführen, müssen Sie NCCL/gIB in Ihrer Laufzeitumgebung installieren.
NCCL/gIB verwenden
Wenn Sie NCCL-/gIB-Tests auf Ihrem Cluster ausführen möchten, wählen Sie die Seite aus der folgenden Liste aus, die Ihren Anforderungen am besten entspricht:
- gIB-NCCL-Plug-ins in NVIDIA-NGC-Containern verwenden
- NCCL-Tests auf Compute Engine-Instanzen ausführen
- NCCL auf GKE-Clustern ausführen, die das Cluster Toolkit verwenden
- NCCL auf GKE-Clustern ausführen, die A4X Max verwenden
- NCCL auf GKE-Clustern ausführen, die A4X verwenden
- NCCL auf GKE-Clustern ausführen, die A4 oder A3 Ultra verwenden
- NCCL-Tests auf Slurm-Clustern ausführen
- NCCL-Tests in Cluster Director ausführen
Eine Anleitung zum Ausführen von NCCL/gIB auf GKE-Clustern, die A5X verwenden, erhalten Sie von Ihrem Google Cloud -Ansprechpartner.
Informationen zum Beheben von Problemen mit Ihrem Cluster nach dem Ausführen der Tests finden Sie unter NCCL-/gIB-Logs zur Fehlerbehebung erfassen und verstehen.