La computación paralela de IA para modelos grandes requiere optimizaciones que reduzcan la sobrecarga de comunicación, superpongan el cálculo con la comunicación y mejoren la eficiencia de la red. RDMA (Remote Direct Memory Access) reduce significativamente la latencia de la red y es ideal para trabajos de entrenamiento distribuido que se ejecutan en recursos de computación inteligente Lingjun.
Límites de uso
Esta función solo aplica a los trabajos de entrenamiento enviados en Lingjun intelligent computing resources.
Configurar variables de red de alto rendimiento
Platform for AI (PAI) habilita la función RDMA en los recursos de computación inteligente Lingjun y preconfigura las variables óptimas de NVIDIA Collective Communications Library (NCCL). Se recomienda utilizar las variables predeterminadas para obtener un mejor rendimiento. También puede ajustarlas según su framework de entrenamiento y las características del modelo.
Variables predeterminadas (preajuste de plataforma)
La plataforma preconfigura las variables predeterminadas según el tipo de instancia Lingjun. A continuación se detallan estas configuraciones:
|
Tipo de instancia Lingjun |
Variables NCCL |
|
|
Para más información sobre las variables NCCL, consulte Environment variable description.
Descripción de variables de entorno
A continuación se describen las principales variables de entorno de NCCL. Para obtener más información, consulte la documentación de NCCL.
|
Variable de entorno clave |
Descripción |
|
NCCL_IB_TC |
Coincide con las reglas de asignación de red de Alibaba Cloud. Si esta variable no se establece o se configura incorrectamente, el rendimiento puede disminuir. |
|
NCCL_IB_GID_INDEX |
Proporciona un valor recomendado. Si esta variable no se establece o se configura incorrectamente, NCCL podría reportar errores. |
|
NCCL_SOCKET_IFNAME |
Selecciona el puerto correcto para establecer conexiones. Los distintos tipos de instancia tienen diferentes requisitos de puerto. Si esta variable no se establece o se configura incorrectamente, NCCL podría no lograr establecer las conexiones. |
|
NCCL_DEBUG |
Por lo general se establece en INFO para generar más registros relacionados con NCCL, lo cual ayuda a identificar y resolver posibles problemas. |
|
NCCL_IB_HCA |
Especifica el controlador de interfaz de red (NIC) para la comunicación RDMA. La cantidad y la convención de nombres de los dispositivos InfiniBand varían entre nodos de cómputo. Si esta variable no se establece o se configura incorrectamente, el rendimiento puede disminuir. |
|
NCCL_IB_TIMEOUT |
Incrementa el tiempo de espera de conexión RDMA para mejorar la tolerancia a fallos en los trabajos de entrenamiento. Si esta variable no se establece o se configura incorrectamente, los trabajos de entrenamiento podrían interrumpirse. |
|
NCCL_IB_QPS_PER_CONNECTION |
Aumenta el número de pares de colas (QPs) por conexión para mejorar el throughput de la red. |
Configurar imágenes
Cuando envíe un trabajo de entrenamiento basado en Lingjun intelligent computing resources, utilice las imágenes integradas oficiales proporcionadas por DLC.
Están disponibles las siguientes tres imágenes oficiales de entrenamiento con GPU:
deepspeed-training:23.06-gpu-py310-cu121-ubuntu22.04
megatron-training:23.06-gpu-py310-cu121-ubuntu22.04
nemo-training:23.06-gpu-py310-cu121-ubuntu22.04
Las tres imágenes incluyen PyTorch 2.1, Megatron-LM 23.06, DeepSpeed 0.9.5, Transformers 4.29.2, NVIDIA NeMo 1.19.0, CUDA 12.1, Ubuntu 22.04 y Python 3.10. Estas imágenes están desplegadas en la región China (Ulanqab).
Documentos relacionados
Para consultar los pasos detallados para enviar un trabajo de entrenamiento en recursos de computación inteligente Lingjun, consulte Create a training job.