Menjalankan NCCL di instance Compute Engine

Halaman ini menjelaskan cara menginstal NCCL/gIB dengan Paket Software Debian (.deb) atau Red Hat Package Manager (.rpm). Penginstalan ini memungkinkan Anda menjalankan pengujian NCCL di instance A4X Max, A4X, A4, dan A3 Ultra. Contoh berikut adalah untuk pengujian dua 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 workload, Anda menginstal NCCL/gIB di instance komputasi atau image container.

Paket nccl-gib dipaketkan dengan library NVidia NCCL yang tidak diubah (libnccl2.so) dan header. 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 akselerator Google, seperti Container OS atau image OS Ubuntu atau Rocky Linux yang dioptimalkan untuk akselerator.

Untuk menghindari instance komputasi yang menjalankan paket nccl-gib versi berbeda, sebaiknya update nccl-gib sebelum menjalankan beban kerja NCCL atau nonaktifkan upgrade tanpa pengawasan.

Mengaktifkan 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 ada entri log tingkat INFO NCCL berikut:

# 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.
  2. Instal Open MPI.
  3. Siapkan login ssh non-interaktif di antara instance komputasi.
  4. Bangun nccl-tests dengan MPI yang diaktifkan. Saat membangun 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 berikut menunjukkan output pada dua instance 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