Instalar plug-ins NCCL do gIB

Nesta página, descrevemos como instalar o NCCL/gIB com pacotes de software Debian (.deb) ou o Red Hat Package Manager (.rpm). Essa instalação permite executar cargas de trabalho do NCCL em instâncias A4X Max, A4X, A4 e A3 Ultra.

(Para A4X Max) Atualizar bibliotecas do espaço do usuário

No A4X Max, é necessário instalar as bibliotecas mais recentes do espaço do usuário antes de executar as cargas de trabalho do NCCL.

Debian 12+/Ubuntu 20.04+ (pacote .deb)

sudo apt update
sudo apt install curl

# Fetch DOCA OFED userspace libraries
export DOCA_URL="https://linux.mellanox.com/public/repo/doca/latest/ubuntu22.04/arm64-sbsa/"
export BASE_URL="https://linux.mellanox.com/public/repo/doca"
curl "${BASE_URL}/GPG-KEY-Mellanox.pub" | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub
echo "deb [signed-by=/etc/apt/trusted.gpg.d/GPG-KEY-Mellanox.pub] ${DOCA_URL} ./" | sudo tee /etc/apt/sources.list.d/doca.list

sudo apt update
sudo apt install doca-ofed-userspace

# Upgrade to latest NCCL for best compatibility
sudo apt install --only-upgrade --allow-change-held-packages libnccl2 libnccl-dev

Instalar o NCCL/gIB

Dependendo de onde você executa as cargas de trabalho, instale o NCCL/gIB na instância de computação ou na imagem do contêiner.

O pacote nccl-gib é fornecido com uma biblioteca NVidia NCCL não modificada (libnccl2.so) e cabeçalhos. Todo o conteúdo do NCCL/gIB é instalado no diretório /usr/local/gib, e as bibliotecas de plug-ins também são instaladas na pasta do sistema (em /usr/lib). Algumas dependências também são buscadas nos repositórios da distribuição.

Debian 12+/Ubuntu 20.04+ (pacote .deb)

# If on an image not from Google, trust the Google Cloud signing key
curl https://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+ (pacote .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

Instalar plug-ins do NCCL

Para instalar apenas os plug-ins gIB NCCL (sem a biblioteca NCCL incluída), instale o pacote nccl-gib-plugins. Se você estiver usando a versão do NCCL que acompanha o gIB, não será necessário instalar o pacote separadamente. No entanto, se você estiver fornecendo sua própria versão personalizada do NCCL, use essa opção para instalar os plug-ins.

Debian 12+/Ubuntu 20.04+ (pacote .deb)

# If on an image not from Google, trust the Google Cloud signing key
curl https://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-plugins

RockyLinux/CentOS/RHEL 9+ (pacote .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-plugins

Se você estiver usando imagens de SO padrão, também será necessário instalar o driver NVIDIA DOCA-OFED mais recente. Não é necessário instalar esse driver se você estiver usando imagens otimizadas para aceleradores do Google, como SO Container ou imagens do SO Ubuntu ou Rocky Linux otimizadas para aceleradores.

Para evitar que instâncias de computação executem versões diferentes do pacote NCCL/gIB, recomendamos atualizar o NCCL/gIB antes de executar as cargas de trabalho do NCCL ou desativar as atualizações automáticas de pacotes, por exemplo, unattended-upgrades no Ubuntu ou Debian.

Ativar o NCCL/gIB

A partir do NCCL/gIB v1.1.2, se você instalou nccl-gib ou nccl-gib-plugins, o NCCL/gIB será ativado automaticamente nas cargas de trabalho.

Em versões anteriores, para ativar o NCCL/gIB nas cargas de trabalho, verifique o seguinte:

  • /usr/local/gib/scripts/set_nccl_env.sh é originado no ambiente de execução. O arquivo de origem inclui todas as variáveis de ambiente necessárias para o NCCL/gIB, e o Google espera atualizá-las em versões futuras do NCCL/gIB.
  • O diretório /usr/local/gib/lib64 está no seu LD_LIBRARY_PATH.

Para verificar se o NCCL/gIB está ativado, confira se as seguintes entradas de registro de nível INFO do NCCL estão presentes:

# 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.1.2

A seguir