In diesem Dokument wird CoMMA (Collective Communication Analyzer) beschrieben, eine Bibliothek zum Erfassen von NCCL-Telemetrie für Google Cloud -Dienste. Bei der NCCL-Telemetrie werden Leistungsmesswerte und operative Ereignisse erfasst, die von NCCL während der Ausführung generiert werden. Die NVIDIA Collective Communication Library (NCCL) beschleunigt die Hochleistungskommunikation zwischen parallel ausgeführten GPUs und verteilten Rechensystemen. Diese leistungsstarke Kommunikation ist besonders nützlich für Deep Learning und Hochleistungs-Computing (HPC).
Für NCCL-Versionen 2.23 und höher hat NVIDIA die NCCL-Profiler-Plug-in-API eingeführt, mit der Entwickler Funktions-Callbacks registrieren können, um Telemetriedaten während kollektiver NCCL-Vorgänge zu erfassen. Google stellt den Collective Communication Analyzer (CoMMA) zur Verfügung. Diese Bibliothek verwendet die NCCL-Profiler-Plug-in-API von NVIDIA, um NCCL-Telemetriedaten für Google Cloud -Dienste zu erfassen. CoMMA wird für einige Bilder automatisch installiert und aktiviert. Sie können CoMMA aber auch deaktivieren, reaktivieren oder manuell installieren und aktivieren, um die Datenerhebung zu steuern.
Bilder, für die CoMMA aktiviert ist
Bei den Maschinentypen A4X Max, A4X, A4, A3 Ultra, A3 Mega und A3 High (8 GPUs) wird CoMMA installiert und automatisch aktiviert, wenn Sie Images verwenden, in denen das NCCL gIB-Plug-in (Google Infrastructure Bundle) enthalten ist. Die folgenden Images enthalten das NCCL gIB-Plug-in:
- Container-Optimized OS mit containerd (cos_containerd)-Knoten-Images: Google Kubernetes Engine (GKE) verwendet diese Images zum Erstellen von GKE Autopilot-Clustern. Die CoMMA-Binärdateien sind im Verzeichnis
/home/kubernetes/bin/gibverfügbar. - Container-Images für die Softwareebene für Deep Learning: Mit diesen Images können Sie KI- und ML-Frameworks und ‑Bibliotheken in GKE-Clustern bereitstellen und konfigurieren.
Wenn Sie eines der Bilder verwenden und die Erfassung von NCCL-Telemetriedaten durch CoMMA deaktivieren möchten, lesen Sie den Abschnitt CoMMA deaktivieren. CoMMA muss jedoch für Funktionen wie die Erkennung von Ausreißern aktiviert sein. Wenn Sie diese Bilder nicht verwenden und CoMMA zum Erfassen von NCCL-Telemetriedaten aktivieren möchten, lesen Sie den Abschnitt CoMMA installieren.
Vorteile
Die von CoMMA erfassten NCCL-Telemetriedaten helfen dabei, Leistungsengpässe, insbesondere Straggler, in der GPU-Kommunikation zu identifizieren. CoMMA erfasst detaillierte Daten wie Latenzhistogramme für kollektive Kommunikationsvorgänge. Ein Diagnosedienst kann diese Daten dann verarbeiten und verwenden, um die langsamsten Geräte zu ermitteln.
Die Verwendung von CoMMA zum Erheben von Telemetriedaten bietet folgende Vorteile:
Für die Erkennung von Stragglern erforderlich: CoMMA erfasst die detaillierte NCCL-Telemetrie, um Leistungsengpässe oder Straggler in der GPU-zu-GPU-Kommunikation zu erkennen. CoMMA bietet detaillierte NCCL-Telemetriedaten, mit denen Probleme bei großen KI- und ML-Trainingsarbeitslasten identifiziert und behoben werden können.
CoMMA erfasst beispielsweise den Algorithmus, der in NCCL-Vorgängen verwendet wird. Diese Informationen sind für die Leistungsanalyse und -optimierung nützlich, da verschiedene Algorithmen je nach Arbeitslast und Systemkonfiguration sehr unterschiedliche Leistungsmerkmale aufweisen können.
CoMMA hilft auch bei der Fehlerbehebung bei suboptimaler Leistung und Fehlern. Es verfolgt Fehler, die in Transportebenen auf niedrigerer Ebene wie TCP, RDMA oder Switch-Fabrics auftreten, zurück zu bestimmten NCCL-Collectives und Initiierungsknoten.
Tracing mit geringem Overhead: CoMMA verwendet nur minimale Rechenressourcen während der aktiven NCCL-Telemetrieerfassung. Das Tool ist daher ideal für leistungsintensive und lang andauernde Arbeitslasten für maschinelles Lernen wie das Training von Large Language Models (LLMs).
NCCL-Telemetriebereich erweitern: CoMMA verwendet die NCCL-Profiler-Plug-in-API. Über diese API werden im Vergleich zu transportbasierten Plug-ins mehr NCCL-Telemetriedaten erfasst. Transportbasierte Plug‑ins erfassen in erster Linie Telemetriedaten zum zugrunde liegenden Netzwerktransport, einschließlich Datenübertragungen über Netzwerkhardware und Netzwerkprotokolle. Das Profiler-Plug-in erfasst Telemetriedaten für die Kommunikationsvorgänge von NCCL, einschließlich des Timings von kollektiven Kommunikationen, Proxy-Vorgängen und Datenübertragungen.
Funktionsweise von CoMMA
Während der Laufzeit der Anwendung lädt NCCL automatisch die CoMMA-Bibliotheken, die am durch die Umgebungsvariable LD_LIBRARY_PATH angegebenen Speicherort installiert sind. CoMMA erfasst dann NCCL-Telemetriedaten, die von anderen Google-Diensten verwendet werden können. Sie können diese Daten optional auch in Ihr lokales Dateisystem exportieren.
Nächste Schritte
- Informationen zum Aktivieren, Deaktivieren und Konfigurieren von CoMMA
- Informationen zur Fehlerbehebung bei CoMMA
- Informationen zum Erkennen und Beheben von Straggler-Problemen