Halaman ini memberikan petunjuk tentang cara menginstal NCCL/gIB dengan Paket Software Debian (.deb) atau Red Hat Package Manager (.rpm). Penginstalan ini memungkinkan Anda menjalankan pengujian NCCL pada instance virtual machine (VM) A3 Ultra, A4, dan A4X (contoh berikut adalah untuk pengujian 2 node).
Untuk menjalankan pengujian NCCL di A3 Mega dan A3 High, lihat Membuat instance A3 Mega atau A3 High dengan GPUDirect diaktifkan.
Jika Anda menggunakan penjadwal seperti Cluster Director, Cluster Toolkit, atau GKE, Anda tidak perlu mengikuti langkah-langkah di halaman ini. Sebagai gantinya, lihat hal berikut:
- Menjalankan NCCL di cluster GKE yang menggunakan konfigurasi default
- Menjalankan NCCL di cluster GKE kustom yang menggunakan A4X
- Menjalankan NCCL di cluster GKE kustom yang menggunakan A4 atau A3 Ultra
- Menjalankan pengujian NCCL di cluster Slurm
- Menjalankan pengujian NCCL di cluster Slurm di Cluster Director
Instal nccl-gib
Bergantung pada tempat Anda menjalankan beban kerja, Anda menginstal NCCL/gIB di VM tamu atau image container.
Paket nccl-gib dipaketkan dengan header dan library NVidia NCCL yang tidak diubah (libnccl2.so). Semua konten NCCL/gIB diinstal ke direktori /usr/local/gib. Beberapa dependensi juga diambil melalui repositori distribusi.
Debian 12+/Ubuntu 20.04+ (paket .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+ (paket .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
Jika menggunakan image OS standar, Anda juga harus menginstal driver NVIDIA DOCA-OFED terbaru. Anda tidak perlu menginstal driver ini jika menggunakan image yang dioptimalkan untuk A*, seperti Container OS atau Guest Accelerator Ubuntu/RockyLinux OS Images.
Untuk menghindari VM yang menjalankan paket nccl-gib versi berbeda, sebaiknya update nccl-gib sebelum menjalankan beban kerja NCCL atau menonaktifkan unattended-upgrades.
Menggunakan NCCL/gIB
Untuk mengaktifkan NCCL/gIB di workload Anda, pastikan hal berikut:
/usr/local/gib/scripts/set_nccl_env.shbersumber di lingkungan runtime Anda. File sumber mencakup semua variabel lingkungan yang diperlukan untuk NCCL/gIB dan Google berharap untuk memperbaruinya dalam rilis NCCL/gIB mendatang.- Direktori
/usr/local/gib/lib64ada diLD_LIBRARY_PATHAnda.
Untuk memverifikasi bahwa NCCL/gIB diaktifkan, periksa apakah entri log tingkat INFO NCCL berikut ada:
# 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
Menjalankan pengujian NCCL
Untuk mempelajari cara menjalankan pengujian NCCL di lingkungan terjadwal, lihat berikut ini:
- Menjalankan NCCL di cluster GKE yang menggunakan konfigurasi default
- Menjalankan NCCL di cluster GKE kustom yang menggunakan A4X
- Menjalankan NCCL di cluster GKE kustom yang menggunakan A4 atau A3 Ultra
- Menjalankan pengujian NCCL di cluster Slurm
- Menjalankan pengujian NCCL di cluster Slurm di Cluster Director
Kami juga memublikasikan image container diagnostik dengan semua yang disertakan di http://us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:latest.
Untuk menjalankan pengujian NCCL di lingkungan yang tidak terjadwal:
- Instal cuda-12.8 (atau yang lebih baru) dan openmpi
- Menyiapkan login ssh non-interaktif di antara VM
- Bangun nccl-tests dengan MPI yang diaktifkan. Saat membuat nccl-tests, tetapkan
NCCL_HOME=/usr/local/gib
Untuk menjalankan skrip yang disertakan dengan paket 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
Contoh output pada dua 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
Langkah berikutnya
- Mengumpulkan dan Memahami Log NCCL untuk Pemecahan Masalah guna memahami output pengujian dan memecahkan masalah.
- Pantau instance Compute Engine dan cluster Slurm.
- Pelajari cara memecahkan masalah performa lambat.