Cette page explique comment installer NCCL/gIB avec des packages logiciels Debian (.deb) ou le gestionnaire de packages Red Hat (.rpm). Cette installation vous permet d'exécuter des tests NCCL sur les instances de machines virtuelles (VM) A3 Ultra, A4 et A4X (les exemples suivants concernent des tests à deux nœuds).
Pour exécuter des tests NCCL sur A3 Mega et A3 High, consultez Créer une instance A3 Mega ou A3 High avec GPUDirect activé.
Si vous utilisez des planificateurs tels que Cluster Director, Cluster Toolkit ou GKE, vous n'avez pas besoin de suivre les étapes de cette page. Consultez plutôt les ressources suivantes :
- Exécuter NCCL sur des clusters GKE qui utilisent la configuration par défaut
- Exécuter NCCL sur des clusters GKE personnalisés qui utilisent A4X
- Exécuter NCCL sur des clusters GKE personnalisés qui utilisent A4 ou A3 Ultra
- Exécuter des tests NCCL sur des clusters Slurm
- Exécuter des tests NCCL sur les clusters Slurm dans Cluster Director
Installer nccl-gib
Selon l'endroit où vous exécutez vos charges de travail, vous installez NCCL/gIB dans la VM invitée ou dans l'image de conteneur.
Le package nccl-gib est fourni avec une bibliothèque et des en-têtes NVidia NCCL (libnccl2.so) non modifiés. Tous les contenus NCCL/gIB sont installés dans le répertoire /usr/local/gib. Certaines dépendances sont également récupérées via le dépôt de la distribution.
Debian 12+/Ubuntu 20.04+ (package .deb)
# 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+ (package .rpm)
# 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
Si vous utilisez des images d'OS standards, vous devez également installer le dernier pilote NVIDIA DOCA-OFED. Vous n'avez pas besoin d'installer ce pilote si vous utilisez des images optimisées A* de Google, telles que Container OS ou Guest Accelerator Ubuntu/RockyLinux OS Images.
Pour éviter que les VM exécutent différentes versions du package nccl-gib, nous vous recommandons de mettre à jour nccl-gib avant d'exécuter vos charges de travail NCCL ou de désactiver les mises à niveau automatiques.
Utiliser NCCL/gIB
Pour activer NCCL/gIB dans vos charges de travail, assurez-vous des points suivants :
/usr/local/gib/scripts/set_nccl_env.shest fourni dans votre environnement d'exécution. Le fichier source inclut toutes les variables d'environnement nécessaires pour NCCL/gIB. Google prévoit de les mettre à jour dans les futures versions de NCCL/gIB.- Le répertoire
/usr/local/gib/lib64se trouve dans votreLD_LIBRARY_PATH.
Pour vérifier que NCCL/gIB est activé, assurez-vous que les entrées de journal de niveau INFO NCCL suivantes sont présentes :
# 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
Exécuter des tests NCCL
Pour savoir comment exécuter des tests NCCL dans un environnement planifié, consultez les ressources suivantes :
- Exécuter NCCL sur des clusters GKE qui utilisent la configuration par défaut
- Exécuter NCCL sur des clusters GKE personnalisés qui utilisent A4X
- Exécuter NCCL sur des clusters GKE personnalisés qui utilisent A4 ou A3 Ultra
- Exécuter des tests NCCL sur des clusters Slurm
- Exécuter des tests NCCL sur les clusters Slurm dans Cluster Director
Nous publions également une image de conteneur de diagnostic avec tout ce qui est inclus sur http://us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:latest.
Pour exécuter des tests NCCL dans un environnement non planifié :
- Installez cuda-12.8 (ou version ultérieure) et openmpi.
- Configurez des connexions SSH non interactives entre les VM.
- Créez nccl-tests avec MPI activé. Lorsque vous créez nccl-tests, définissez
NCCL_HOME=/usr/local/gib
Pour exécuter le script fourni avec le package NCCL/gIB :
# 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
Exemple de résultat sur deux VM A4 :
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
Étapes suivantes
- Collecter et comprendre les journaux NCCL pour le dépannage pour comprendre les résultats des tests et résoudre les problèmes.
- Surveiller les instances Compute Engine et les clusters Slurm
- Découvrez comment résoudre les problèmes de lenteur des performances.