הרצת NCCL במכונות Compute Engine

בדף הזה מוסבר איך להתקין NCCL/gIB באמצעות חבילות תוכנה של Debian ‏ (.deb) או Red Hat Package Manager ‏ (.rpm). ההתקנה הזו מאפשרת להריץ בדיקות NCCL במופעים מסוג A4X Max,‏ A4X,‏ A4 ו-A3 Ultra. הדוגמאות הבאות מתייחסות לבדיקות של שני צמתים.

כדי להריץ בדיקות NCCL ב-A3 Mega וב-A3 High, אפשר לעיין במאמר בנושא יצירת אינסטנס A3 Mega או A3 High עם GPUDirect מופעל.

אם אתם משתמשים בכלי תזמון כמו Cluster Director,‏ Cluster Toolkit או GKE, אתם לא צריכים לבצע את השלבים שמופיעים בדף הזה. במקום זאת, אפשר לעיין במקורות המידע הבאים:

התקנה של NCCL/gIB

בהתאם למקום שבו מריצים את עומסי העבודה, מתקינים את NCCL/gIB במופע החישוב או בקובץ אימג' של קונטיינר.

חבילת nccl-gib כוללת ספרייה וכותרות של NVidia NCCL שלא עברו שינוי (libnccl2.so). כל התוכן של NCCL/gIB מותקן בספרייה /usr/local/gib. חלק מהתלויות מאוחזרות גם דרך המאגר של ההפצה.

‫Debian 12+‎/Ubuntu 20.04+‎ (חבילת ‎.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+‎ (חבילת ‎.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

אם אתם משתמשים בתמונות של מערכת הפעלה רגילה, אתם צריכים גם להתקין את הדרייבר העדכני של NVIDIA DOCA-OFED. אין צורך להתקין את הדרייבר הזה אם משתמשים בקובצי אימג' של מאיצים מבית Google, כמו Container OS או קובצי אימג' של מערכות הפעלה מסוג Ubuntu או Rocky Linux שמותאמים למאיצים.

כדי למנוע מצב שבו מופעלות גרסאות שונות של חבילת nccl-gib במופעי מחשוב, מומלץ לעדכן את nccl-gib לפני שמריצים את עומסי העבודה של NCCL או להשבית את העדכונים האוטומטיים.

הפעלת NCCL/gIB

כדי להפעיל NCCL/gIB בעומסי העבודה, צריך לוודא את הדברים הבאים:

  • הפעולה /usr/local/gib/scripts/set_nccl_env.sh מגיעה מסביבת זמן הריצה. קובץ המקור כולל את כל משתני הסביבה הנדרשים עבור NCCL/gIB, ו-Google צפויה לעדכן אותם במהדורות עתידיות של NCCL/gIB.
  • הספרייה /usr/local/gib/lib64 נמצאת ב-LD_LIBRARY_PATH.

כדי לוודא ש-NCCL/gIB מופעל, בודקים שקיימים רשומות היומן הבאות ברמת המידע של NCCL:

# 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

כדי ללמוד איך מריצים בדיקות NCCL בסביבה מתוזמנת, אפשר לעיין במאמרים הבאים:

אנחנו גם מפרסמים קובץ אימג' של קונטיינר לאבחון עם כל מה שכלול בכתובת http://us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:latest.

כדי להריץ בדיקות NCCL בסביבה לא מתוזמנת:

  1. מתקינים את CUDA 12.8 ואילך.
  2. מתקינים את Open MPI.
  3. מגדירים כניסות SSH לא אינטראקטיביות בין מופעי החישוב.
  4. יוצרים nccl-tests עם MPI מופעל. כשמבצעים build של nccl-tests, מגדירים את NCCL_HOME=/usr/local/gib.

כדי להריץ את הסקריפט שנשלח עם חבילת 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

בדוגמה הבאה מוצג פלט בשתי מכונות 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

המאמרים הבאים