Compute Engine 인스턴스에서 NCCL 실행

이 페이지에서는 Debian 소프트웨어 패키지 (.deb) 또는 Red Hat 패키지 관리자 (.rpm)를 사용하여 NCCL/gIB를 설치하는 방법을 설명합니다. 이 설치를 통해 A4X Max, A4X, A4, A3 Ultra 인스턴스에서 NCCL 테스트를 실행할 수 있습니다. 다음 예는 2개 노드 테스트를 위한 것입니다.

A3 Mega 및 A3 High에서 NCCL 테스트를 실행하려면 GPUDirect가 사용 설정된 A3 Mega 또는 A3 High 인스턴스 만들기를 참고하세요.

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

표준 OS 이미지를 사용하는 경우 최신 NVIDIA DOCA-OFED 드라이버도 설치해야 합니다. Container OS 또는 액셀러레이터 최적화 Ubuntu 또는 Rocky Linux OS 이미지와 같은 Google의 액셀러레이터 최적화 이미지를 사용하는 경우 이 드라이버를 설치할 필요가 없습니다.

nccl-gib 패키지의 서로 다른 버전을 실행하는 컴퓨팅 인스턴스를 방지하려면 NCCL 워크로드를 실행하기 전에 nccl-gib을 업데이트하거나 무인 업그레이드를 사용 중지하는 것이 좋습니다.

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 INFO 수준 로그 항목이 있는지 확인하세요.

# 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. MPI가 사용 설정된 상태로 nccl-tests를 빌드합니다. 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

다음 단계