Cluster-Netzwerke mithilfe von NCCL/gIB optimieren

Moderne ML-Frameworks nutzen oft die NVIDIA Collective Communications Library (NCCL) für Primitive für die GPU-zu-GPU-Kommunikation.

Die verbesserte Version von NCCL von Google heißt NCCL/gIB und ist auf den Google CloudA3 Ultra-, A4- und A4X-VMs von verfügbar. NCCL/gIB ist auf der Google-Infrastruktur oft leistungsstärker als die Upstream-Version von NCCL. Da die NCCL-Leistung die Gesamtleistung der Arbeitslast beeinflussen 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 Google-Netzwerken, was zu einem höheren Durchsatz und einer niedrigeren Latenz bei kollektiven Vorgängen 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 Konfigurationen für Variablen auf verschiedenen Google Cloud VMs.

NCCL/gIB-Architektur

NCCL/gIB interagiert mit Ihrem ML-Framework und den NVIDIA-GPUs in Ihren Clustern, um die Leistung zu optimieren und Telemetriedaten zu erfassen, wie in diesem Diagramm dargestellt:

Die ML-Arbeitslast wird von einem ML-Framework verwaltet, das sowohl mit den NVIDIA-GPUs als auch mit NCCL verbunden ist. NCCL ist wiederum mit verschiedenen Google-Tools und ‑Plug-ins verbunden.

Vorteile der Verwendung von NCCL/gIB

Es ist zwar möglich, die Upstream-Version der 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 sehr groß sein, auch bei Verwendung derselben NCCL-Parameter.

Das folgende Diagramm zeigt beispielsweise einen Vergleich von NCCL/gIB mit der Upstream-Version von NCCL in Bezug auf die AllReduce-Leistung. NCCL/gIB übertrifft die Upstream-Version von NCCL bei bestimmten Nachrichtengrößen um das bis zu 12-Fache.

Ein Diagramm, das zeigt, dass NCCL/gIB bei AllReduce-Aufgaben besser abschneidet als Upstream-NCCL.

NCCL AllReduce-Leistung mit 32 Knoten und A3 Ultra (H200) ohne Hintergrund-Traffic.

In einem Vergleich von NCCL/gIB mit der Upstream-Version von NCCL in Bezug auf die AllGather-Leistung mit Hintergrund-Traffic übertrifft NCCL/gIB die Upstream-Version von NCCL bei größeren Nachrichtengrößen um etwa 50 %, wie in diesem Diagramm dargestellt.

Ein Diagramm, das zeigt, dass NCCL/gIB bei AllGather-Aufgaben besser als Upstream-NCCL abschneidet.

NCCL AllGather-Leistung mit 32 Knoten und A3 Ultra (H200) in einem gemeinsam genutzten Fabric mit hohem Hintergrund-Traffic.

Darüber hinaus bietet das CoMMA-Profiler-Plug-in Google verbesserte benutzerdefinierte Telemetriedaten, mit denen wir Sie besser unterstützen können, falls ein Problem auf Arbeitslastebene auftritt.

NCCL/gIB verwenden

Wenn Sie NCCL/gIB-Tests in Ihrem Cluster ausführen möchten, wählen Sie die Seite aus der folgenden Liste aus, die Ihren Anforderungen am besten entspricht:

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.