在大模型的AI并行计算中,通过降低通信量、计算和通信交叠、提升通信效率来优化计算性能。本文介绍如何使用高性能网络进行配置,以实现上述目标。
使用限制
仅适用于基于灵骏智算资源提交的训练任务。
配置高性能网络变量
PAI基于灵骏智算资源,已开启RDMA特性并设置了最优NCCL变量。建议使用平台预置的默认变量以获得较优性能。您也可以根据训练框架、通信框架以及模型特点进行必要的调整。
默认变量(平台预置)
根据不同的灵骏规格,平台已在系统中预置了默认变量,具体请参照下表内容:
|
灵骏规格 |
NCCL变量 |
|
|
关于NCCL变量的具体说明,请参见环境变量说明。
环境变量说明
NCCL关键环境变量的说明如下表所示,更多关于NCCL其他环境变量的说明,请参见NCCL链接。
|
关键环境变量 |
环境变量说明 |
|
NCCL_IB_TC |
匹配阿里云网络映射规则,未配置或配置错误可能导致性能受损。 |
|
NCCL_IB_GID_INDEX |
提供推荐值,未配置或配置错误会导致NCCL报错。 |
|
NCCL_SOCKET_IFNAME |
选择正确的端口以建立连接,不同规格对端口的要求不同。未配置或配置错误可能会导致NCCL建连失败。 |
|
NCCL_DEBUG |
通常将日志级别设置为INFO,以获得更多NCCL相关的日志输出,帮助定位和解决潜在问题。 |
|
NCCL_IB_HCA |
指定RDMA通信的网卡。不同算力节点下IBdev的数量和命名规则有所区别,未配置或配置错误可能导致性能受损。 |
|
NCCL_IB_TIMEOUT |
增加RDMA连接超时时间,提升训练任务的容错性能,未配置或配置错误可能导致训练任务中断。 |
|
NCCL_IB_QPS_PER_CONNECTION |
适当增加每个连接的QP(Queue Pair)数量,有效提高网络吞吐率。 |
配置镜像
基于灵骏智算类型的资源提交训练任务时,您可以选择使用阿里云DLC提供的官方内置镜像,或自行构建并使用自定义镜像。
官方镜像
当前提供以下三种官方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。三种镜像均包含框架 PyTorch 2.1、Megatron-LM 23.06、DeepSpeed 0.9.5、Transformers 4.29.2、Nemo 1.19.0,机型为 GPU,CUDA 版本为 12.1,操作系统为 Ubuntu 22.04,地区为华北6(乌兰察布),开发语言为 Python 3.10。
自定义镜像
环境要求
-
CUDA >= 11.2
-
NCCL >= 2.12.10
-
Python3
安装RDMA库
使用自定义镜像时,需在Dockerfile中手动安装RDMA库。安装RDMA库的示例代码如下。
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
相关文档
使用灵骏智算资源提交训练任务的具体操作步骤,请参见创建训练任务。