Menjalankan NCCL di VM Compute Engine

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:

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.sh bersumber 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/lib64 ada di LD_LIBRARY_PATH Anda.

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:

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:

  1. Instal cuda-12.8 (atau yang lebih baru) dan openmpi
  2. Menyiapkan login ssh non-interaktif di antara VM
  3. 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