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 testes do NCCL em instâncias A4X Max, A4X, A4 e A3 Ultra. Os exemplos a seguir são para testes de dois nós.
Para executar testes da NCCL em A3 Mega e A3 High, consulte Criar uma instância A3 Mega ou A3 High com o GPUDirect ativado.
Se você usa programadores como Cluster Director, Cluster Toolkit ou GKE, não precisa seguir as etapas desta página. Em vez disso, consulte o seguinte:
- Executar o NCCL em clusters do GKE que usam a configuração padrão
- Executar o NCCL em clusters personalizados do GKE que usam o A4X Max
- Executar o NCCL em clusters personalizados do GKE que usam A4X
- Executar o NCCL em clusters personalizados do GKE que usam A4 ou A3 Ultra
- Executar testes da NCCL em clusters do Slurm
- Executar testes da NCCL em clusters do Slurm no Cluster Director
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 é agrupado com uma biblioteca e cabeçalhos NVidia NCCL não modificados (libnccl2.so). Todo o conteúdo do NCCL/gIB é instalado no diretório
/usr/local/gib. Algumas dependências também são buscadas no repositório da distribuição.
Debian 12+/Ubuntu 20.04+ (pacote .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+ (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
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 Container OS ou imagens de SO Ubuntu ou Rocky Linux otimizadas para aceleradores.
Para evitar que as instâncias de computação executem versões diferentes do pacote nccl-gib,
recomendamos que você atualize nccl-gib antes de executar as cargas de trabalho do NCCL ou
desative as atualizações automáticas.
Ativar NCCL/gIB
Para ativar o NCCL/gIB nas suas cargas de trabalho, verifique o seguinte:
- O
/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/lib64está emLD_LIBRARY_PATH.
Para verificar se o NCCL/gIB está ativado, confira se as seguintes entradas de registro no 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.0.5
Executar testes da NCCL
Para saber como executar testes do NCCL em um ambiente programado, consulte o seguinte:
- Executar o NCCL em clusters do GKE que usam a configuração padrão
- Executar o NCCL em clusters personalizados do GKE que usam o A4X Max
- Executar o NCCL em clusters personalizados do GKE que usam A4X
- Executar o NCCL em clusters personalizados do GKE que usam A4 ou A3 Ultra
- Executar testes da NCCL em clusters do Slurm
- Executar testes da NCCL em clusters do Slurm no Cluster Director
Também publicamos uma imagem de contêiner de diagnóstico com tudo incluído em http://us-docker.pkg.dev/gce-ai-infra/gpudirect-gib/nccl-plugin-gib-diagnostic:latest.
Para executar testes da NCCL em um ambiente não programado:
- Instale o CUDA 12.8 ou mais recente.
- Instale o Open MPI.
- Configure logins SSH não interativos entre as instâncias de computação.
- Crie nccl-tests com o MPI ativado.
Ao criar nccl-tests, defina
NCCL_HOME=/usr/local/gib.
Para executar o script enviado com o pacote 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
O exemplo a seguir mostra a saída em duas instâncias 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
A seguir
- Coletar e entender os registros do NCCL para solução de problemas.
- Monitore instâncias de computação e clusters do Slurm.
- Resolver problemas de lentidão de desempenho.