Na computação paralela de IA para modelos grandes, otimize o desempenho ao reduzir a sobrecarga de comunicação, sobrepor computação e comunicação e aumentar a eficiência da comunicação. Configure redes de alto desempenho em recursos Lingjun para atingir esses objetivos.
Limitações
Estas configurações aplicam-se apenas a jobs de treinamento que usam recursos Lingjun.
Configure variáveis de rede de alto desempenho
O PAI em recursos Lingjun já tem o RDMA ativado e variáveis de ambiente NCCL otimizadas pré-configuradas. Use esses padrões ou ajuste-os conforme seu framework de treinamento, framework de comunicação e modelo.
Variáveis padrão
A tabela a seguir lista as variáveis padrão pré-configuradas para diferentes especificações do Lingjun.
|
Especificação do Lingjun |
Variável NCCL |
|
|
Consulte Descrições das variáveis de ambiente para obter detalhes sobre cada variável de ambiente NCCL.
Variáveis de ambiente
A tabela a seguir descreve as principais variáveis de ambiente NCCL. Para outras variáveis, consulte a documentação do NCCL.
|
Variável |
Descrição |
|
NCCL_IB_TC |
Corresponde às regras de mapeamento de rede da Alibaba Cloud. Valores incorretos ou ausentes degradam o desempenho. |
|
NCCL_IB_GID_INDEX |
Valores ausentes ou incorretos causam erro no NCCL. |
|
NCCL_SOCKET_IFNAME |
Interface de rede usada para estabelecer conexões; varia conforme a especificação do Lingjun. Valores ausentes ou incorretos podem causar falhas de conexão no NCCL. |
|
NCCL_DEBUG |
Define o nível de log. Defina como INFO para obter logs detalhados do NCCL e facilitar a solução de problemas. |
|
NCCL_IB_HCA |
Controlador de interface de rede (NIC) para comunicação RDMA. O valor necessário varia conforme o nó de computação. Valores incorretos ou ausentes degradam o desempenho. |
|
NCCL_IB_TIMEOUT |
Aumenta o tempo limite de conexão RDMA para melhorar a tolerância a falhas. Valores incorretos ou ausentes podem interromper jobs de treinamento. |
|
NCCL_IB_QPS_PER_CONNECTION |
O aumento do número de Queue Pairs (QPs) por conexão pode melhorar o throughput. |
Configure uma imagem
Para jobs de treinamento em recursos Lingjun, use uma imagem oficial do DLC ou uma imagem personalizada.
Imagens oficiais
Três imagens oficiais de treinamento com GPU estão disponíveis: deepspeed-training:23.06-gpu-py310-cu121-ubuntu22.04, megatron-training:23.06-gpu-py310-cu121-ubuntu22.04 e nemo-training:23.06-gpu-py310-cu121-ubuntu22.04. Todas estão hospedadas na região China (Ulanqab) e usam Ubuntu 22.04, Python 3.10 e CUDA 12.1. Incluem PyTorch 2.1, Megatron-LM 23.06, DeepSpeed 0.9.5, Transformers 4.29.2 e Nemo 1.19.0.
Imagem personalizada
Requisitos de ambiente
CUDA >= 11,2
NCCL >= 2.12.10
Python 3
Instale a biblioteca RDMA
Em imagens personalizadas, instale manualmente a biblioteca RDMA. Adicione os seguintes comandos ao Dockerfile:
RUN apt-get update && \
apt-get install -y --allow-downgrades --allow-change-held-packages --no-install-recommends libnl-3-dev libnl-route-3-dev libnl-3-200 libnl-route-3-200 iproute2 udev dmidecode ethtool && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN cd /tmp/ && \
wget http://pythonrun.oss-cn-zhangjiakou.aliyuncs.com/rdma/nic-libs-mellanox-rdma-5.2-2/nic-lib-rdma-core-installer-ubuntu.tar.gz && \
tar xzvf nic-lib-rdma-core-installer-ubuntu.tar.gz && \
cd nic-lib-rdma-core-installer-ubuntu && \
echo Y | /bin/bash install.sh && \
cd .. && \
rm -rf nic-lib-rdma-core-installer-ubuntu && \
rm -f nic-lib-rdma-core-installer-ubuntu.tar.gz
Tópicos relacionados
Para saber como enviar jobs de treinamento em recursos Lingjun, consulte Crie um job de treinamento.