In diesem Dokument wird der Collective Communication Analyzer (CoMMA) beschrieben, eine Bibliothek zum Erfassen von NCCL-Telemetriedaten für Google Cloud -Dienste. NCCL-Telemetrie erfasst Leistungsmesswerte und operative Ereignisse, die NCCL während der Ausführung generiert. Die NVIDIA Collective Communication Library (NCCL) beschleunigt die Hochleistungskommunikation zwischen GPUs, die parallel und in verteilten Computing-Systemen ausgeführt werden. Diese Hochleistungskommunikation ist besonders nützlich für Deep Learning und Hochleistungs-Computing (HPC).
Für NCCL-Versionen ab 2.23 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) bereit. Dies ist eine Bibliothek, die die NCCL-Profiler-Plug-in-API von NVIDIA verwendet, um NCCL-Telemetriedaten für Google Cloud -Dienste zu erfassen. CoMMA wird für einige Images automatisch installiert und aktiviert. Sie können CoMMA aber auch deaktivieren, wieder aktivieren oder manuell installieren und aktivieren, um die Datenerhebung zu steuern.
Images, für die CoMMA aktiviert ist
Bei den Maschinentypen A5X, A4X Max, A4X, A4, A3 Ultra, A3 Mega und A3 High (8 GPUs) wird CoMMA installiert und automatisch aktiviert, wenn Sie Images verwenden, die das gIB-NCCL-Plug-in enthalten. Die folgenden Images enthalten das gIB-NCCL-Plug-in:
- Container-Optimized OS mit containerd-Knoten-Images (cos_containerd): 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. - DLSL-Container-Images (Deep Learning Software Layer): Mit diesen Images können Sie KI- und ML-Frameworks und -Bibliotheken in GKE-Clustern bereitstellen und konfigurieren.
Wenn Sie eines dieser Images verwenden und die Erfassung von NCCL-Telemetriedaten durch CoMMA deaktivieren möchten, lesen Sie den Abschnitt CoMMA deaktivieren. CoMMA muss jedoch aktiviert sein, damit Funktionen wie die Erkennung von Nachzüglern oder die Erkennung nicht reagierender Arbeitslasten funktionieren. Wenn Sie diese Images nicht verwenden und CoMMA zum Erfassen von NCCL-Telemetriedaten aktivieren möchten, finden Sie weitere Informationen unter CoMMA installieren.
Vorteile
Die von CoMMA erfassten NCCL-Telemetriedaten helfen, Leistungsengpässe, insbesondere Nachzügler, in der GPU-Kommunikation zu identifizieren. CoMMA erfasst detaillierte Daten, z. B. Latenzhistogramme für kollektive Kommunikationsvorgänge. Ein Diagnosedienst kann diese Daten dann verarbeiten und verwenden, um Nachzügler zu ermitteln.
Die Verwendung von CoMMA zum Erfassen von Telemetriedaten bietet folgende Vorteile:
Erforderlich für die Erkennung von Nachzüglern und nicht reagierenden Arbeitslasten: CoMMA erfasst die detaillierte NCCL-Telemetrie, um Leistungsengpässe oder Nachzügler in der GPU-zu-GPU-Kommunikation zu identifizieren. CoMMA bietet detaillierte NCCL-Telemetriedaten, mit denen sich Probleme in umfangreichen KI- und ML-Trainingsarbeitslasten identifizieren und beheben lassen.
CoMMA erfasst beispielsweise den Algorithmus, der in NCCL-Vorgängen verwendet wird. Diese Informationen sind für die Leistungsanalyse und -optimierung wertvoll, da verschiedene Algorithmen je nach Arbeitslast und Systemkonfiguration sehr unterschiedliche Leistungsmerkmale aufweisen können.
CoMMA hilft auch bei der Fehlerbehebung von suboptimaler Leistung und Fehlern. Es verfolgt Fehler, die auf niedrigeren Transportschichten wie TCP, RDMA oder Switch-Fabrics auftreten, bis zu bestimmten NCCL-Kollektiven und initiierenden Knoten zurück. Sie kann erkennen, wenn ein Heartbeat-Telemetriesignal nicht mehr reagiert, und mögliche Ursachen für nicht reagierende Arbeitslasten ermitteln.
Tracing mit geringem Overhead: CoMMA verwendet während der aktiven NCCL-Telemetrieerfassung nur minimale Rechenressourcen. Daher eignet es sich ideal für leistungssensitive und lang andauernde Arbeitslasten für maschinelles Lernen, z. B. das Training von Large Language Models (LLMs).
Umfang der NCCL-Telemetrie erweitern: CoMMA verwendet die NCCL-Profiler-Plug-in-API. Diese API erfasst im Vergleich zu transportbasierten Plug-ins einen größeren Umfang an NCCL-Telemetriedaten. Transportbasierte Plug-ins erfassen hauptsächlich 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 der Zeitplanung für kollektive Kommunikation, Proxy-Vorgänge und Datenübertragungen.
Funktionsweise von CoMMA
Während der Anwendungslaufzeit lädt NCCL automatisch die CoMMA-Bibliotheken, die an dem durch die Umgebungsvariable LD_LIBRARY_PATH angegebenen Speicherort installiert sind. CoMMA erfasst dann NCCL-Telemetriedaten, die von anderen Google-Diensten verwendet werden können. Optional können Sie diese Daten auch in Ihr lokales Dateisystem exportieren.