Auf dieser Seite finden Sie eine Anleitung zur Installation von NCCL/gIB mit Debian-Softwarepaketen (.deb) oder dem Red Hat Package Manager (.rpm). Mit dieser Installation können Sie NCCL-Tests auf A3 Ultra-, A4- und A4X-VM-Instanzen ausführen (die folgenden Beispiele beziehen sich auf Tests mit zwei Knoten).
Informationen zum Ausführen von NCCL-Tests auf A3 Mega- und A3 High-Instanzen finden Sie unter A3 Mega- oder A3 High-Instanz mit aktiviertem GPUDirect erstellen.
Wenn Sie Scheduler wie Cluster Director, Cluster Toolkit oder GKE verwenden, müssen Sie die Schritte auf dieser Seite nicht ausführen. Sehen Sie sich stattdessen Folgendes an:
- NCCL in GKE-Clustern mit Standardkonfiguration ausführen
- NCCL in benutzerdefinierten GKE-Clustern mit A4X ausführen
- NCCL in benutzerdefinierten GKE-Clustern ausführen, die A4 oder A3 Ultra verwenden
- NCCL-Tests in Slurm-Clustern ausführen
- NCCL-Tests für Slurm-Cluster in Cluster Director ausführen
nccl-gib installieren
Je nachdem, wo Sie Ihre Arbeitslasten ausführen, installieren Sie NCCL/gIB entweder in der Gast-VM oder im Container-Image.
Das Paket nccl-gib wird mit einer unveränderten NVidia NCCL-Bibliothek (libnccl2.so) und Headern gebündelt. Alle NCCL-/gIB-Inhalte werden im Verzeichnis /usr/local/gib installiert. Einige Abhängigkeiten werden auch über das Repository der Distribution abgerufen.
Debian 12+/Ubuntu 20.04+ (.deb-Paket)
# If you're not using an image from Google, trust the Google Cloud signing key curl http://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/cloud.google.gpg # Add gpudirect-gib-apt repo echo 'deb https://packages.cloud.google.com/apt gpudirect-gib-apt main' | sudo tee /etc/apt/sources.list.d/nccl-gib.list sudo apt update sudo apt install nccl-gib
RockyLinux/CentOS/RHEL 9+ (.rpm-Paket)
# Add gpudirect-gib-rpm repo sudo tee -a /etc/yum.repos.d/nccl-gib.repo << EOL [gpudirect-gib-rpm] name=NCCL/gIB baseurl=https://packages.cloud.google.com/yum/repos/gpudirect-gib-rpm enabled=1 repo_gpgcheck=0 gpgcheck=0 sudo dnf makecache sudo dnf install nccl-gib
Wenn Sie Standard-Betriebssystem-Images verwenden, müssen Sie auch den neuesten NVIDIA DOCA-OFED-Treiber installieren. Wenn Sie die für A* optimierten Images von Google verwenden, z. B. Container-Optimized OS oder Gastbeschleuniger-Betriebssystem-Images für Ubuntu/RockyLinux, müssen Sie diesen Treiber nicht installieren.
Damit auf VMs nicht verschiedene Versionen des nccl-gib-Pakets ausgeführt werden, empfehlen wir, nccl-gib zu aktualisieren, bevor Sie Ihre NCCL-Arbeitslasten ausführen, oder unbeaufsichtigte Upgrades zu deaktivieren.
NCCL/gIB verwenden
Damit Sie NCCL/gIB in Ihren Arbeitslasten aktivieren können, müssen folgende Voraussetzungen erfüllt sein:
/usr/local/gib/scripts/set_nccl_env.shwird in Ihrer Laufzeitumgebung bereitgestellt. Die Quelldatei enthält alle erforderlichen Umgebungsvariablen für NCCL/gIB. Google geht davon aus, dass diese in zukünftigen NCCL/gIB-Releases aktualisiert werden.- Das Verzeichnis
/usr/local/gib/lib64befindet sich in IhremLD_LIBRARY_PATH.
Prüfen Sie, ob die folgenden Logeinträge auf NCCL-INFO-Ebene vorhanden sind, um zu bestätigen, dass NCCL/gIB aktiviert ist:
# A sample log entry from NCCL core
vm-0:606:642 [6] NCCL INFO Using network gIB
# A sample log entry from the gIB network plugin
vm-0:606:642 [6] NCCL INFO NET/gIB : Initializing gIB v1.0.5
NCCL-Tests ausführen
Informationen zum Ausführen von NCCL-Tests in einer geplanten Umgebung finden Sie unter:
- NCCL in GKE-Clustern mit Standardkonfiguration ausführen
- NCCL in benutzerdefinierten GKE-Clustern mit A4X ausführen
- NCCL in benutzerdefinierten GKE-Clustern ausführen, die A4 oder A3 Ultra verwenden
- NCCL-Tests in Slurm-Clustern ausführen
- NCCL-Tests für Slurm-Cluster in Cluster Director ausführen
Wir veröffentlichen auch ein Diagnose-Container-Image mit allen Inhalten unter http://us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:latest.
So führen Sie NCCL-Tests in einer nicht geplanten Umgebung aus:
- Installieren Sie cuda-12.8 (oder höher) und openmpi.
- Richten Sie nicht interaktive SSH-Anmeldungen zwischen den VMs ein.
- Erstellen Sie nccl-tests mit aktiviertem MPI. Legen Sie beim Erstellen von nccl-tests
NCCL_HOME=/usr/local/gibfest.
So führen Sie das mit dem NCCL-/gIB-Paket gelieferte Skript aus:
# The script assumes binaries at /opt/nccl-tests/build/
$ /usr/local/gib/scripts/run_nccl_tests.sh -d /opt/nccl-tests/build/ -p 22 -t all_gather -m 0x0 -b 4K -e 16G a4-vm-1 a4-vm-2
Beispielausgabe auf zwei A4-VMs:
NCCL version 2.25.1+cuda12.8
#
# out-of-place in-place
# size count type redop root time algbw busbw #wrong time algbw busbw #wrong
# (B) (elements) (us) (GB/s) (GB/s) (us) (GB/s) (GB/s)
4096 64 float none -1 59.97 0.07 0.06 0 57.49 0.07 0.07 0
8192 128 float none -1 58.17 0.14 0.13 0 58.36 0.14 0.13 0
16384 256 float none -1 59.07 0.28 0.26 0 59.03 0.28 0.26 0
32768 512 float none -1 60.93 0.54 0.50 0 60.79 0.54 0.51 0
65536 1024 float none -1 61.93 1.06 0.99 0 62.17 1.05 0.99 0
131072 2048 float none -1 64.62 2.03 1.90 0 64.48 2.03 1.91 0
262144 4096 float none -1 66.50 3.94 3.70 0 67.05 3.91 3.67 0
524288 8192 float none -1 69.37 7.56 7.09 0 67.83 7.73 7.25 0
1048576 16384 float none -1 117.2 8.95 8.39 0 113.7 9.22 8.64 0
2097152 32768 float none -1 118.8 17.65 16.55 0 118.1 17.75 16.64 0
4194304 65536 float none -1 122.2 34.32 32.17 0 122.6 34.22 32.08 0
8388608 131072 float none -1 132.2 63.44 59.48 0 130.7 64.20 60.18 0
16777216 262144 float none -1 139.2 120.49 112.96 0 139.7 120.07 112.56 0
33554432 524288 float none -1 152.0 220.81 207.01 0 152.1 220.59 206.81 0
67108864 1048576 float none -1 227.6 294.87 276.44 0 225.9 297.08 278.51 0
134217728 2097152 float none -1 431.7 310.87 291.44 0 438.0 306.41 287.26 0
268435456 4194304 float none -1 728.6 368.44 345.41 0 735.9 364.79 341.99 0
536870912 8388608 float none -1 1404.2 382.33 358.44 0 1418.4 378.51 354.85 0
1073741824 16777216 float none -1 2795.8 384.06 360.05 0 2768.9 387.79 363.55 0
2147483648 33554432 float none -1 5440.1 394.75 370.08 0 5418.7 396.31 371.54 0
4294967296 67108864 float none -1 10754 399.40 374.43 0 10746 399.67 374.69 0
8589934592 134217728 float none -1 21434 400.77 375.72 0 21421 401.01 375.95 0
17179869184 268435456 float none -1 42679 402.53 377.38 0 42792 401.48 376.38 0
Nächste Schritte
- NCCL-Logs zur Fehlerbehebung erfassen und verstehen, um die Testergebnisse zu verstehen und Probleme zu beheben.
- Compute Engine-Instanzen und Slurm-Cluster überwachen
- Informationen zur Fehlerbehebung bei langsamer Leistung