

喜讯:国内、香港、海外云服务器租用特惠活动,2核/4G/10M仅需31元每月,点击抢购>>>
点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>
阿里云老客户点击这里申请VIP账号,享终身8折优惠(续费也打折)>>>
通过使用弹性eRDMA技术,您可以获得超低延迟,更快地响应请求。本文介绍如何在eRDMA增强型实例上部署AI训练集群,并测试其性能。
目前AI分布式训练场景主要的架构如下图所示。主流AI框架底层通过多种不同的通信后端进行多机或多卡通信,例如: MPI/Gloo后端多用于CPU的控制流通信。 NCCL是由NVIDIA开源的GPU多机多卡实现,旨在提供高效的大数据流通信。因此,它在性能优化方面具有得天独厚的优势,被广泛应用于主流AI框架中,并成为推荐的通信后端。 在NCCL底层通信链接上,有多种不同的传输方式,例如单机内部多卡P2P通信以及多机上的传统socket通信(如VPC网络)和高性能的InfiniBand(IB)通信,其中eRDMA是一种基于RDMA的传输方式,具有极低的延迟,并且在性能上接近RDMA网络的优势。使用eRDMA不需要修改业务组网,且在NCCL后端的场景下可以无缝使用。 具体操作,请参见在GPU实例上配置eRDMA。 搭建本集群环境需要创建两台ECS实例,实例配置示例如下: 规格:ecs.ebmgn7ex.32xlarge 实例私网IP地址: 实例A:172.20.20.145 实例B:172.20.20.143 您可以通过以下两种方式来搭建AI训练的环境。 方式1 通过ECS实例启动AI训练 方式2 通过容器启动AI训练 搭建GPU环境 GPU云服务器提供GPU加速计算能力,实现GPU计算资源的即开即用和弹性伸缩。更多信息,请参见什么是GPU云服务器。 在步骤一:创建eRDMA实例时,配置镜像时需按以下步骤配置: 选择所需的操作系统及版本。支持的镜像及版本请参见使用限制。 选中安装GPU驱动,然后再选择对应的CUDA版本、Driver版本和CUDNN版本。 搭建NCCL环境 NVIDIA集体通信库(NCCL)是英伟达基于NVIDIA-GPU的一套开源的集体通信库,实现了针对NVIDIA GPU性能优化的多GPU和多节点集体通信原语。NCCL提供了诸如all-gather、all-reduce、broadcast、reduce、reduce-scatter等实现,这些实现经过优化后可以通过PCIe和NVLink等高速互联,从而实现高带宽和低延迟。 远程连接ECS实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 运行以下命令,安装git。 依次运行以下命令,编译nccl。 依次运行以下命令,编译nccl-test。 搭建MPI环境 MPI(Message Passing Interface)是支持多编程语言编程的并行计算通信库,具有高性能、大规模性、可移植性、可扩展性等特点。 远程连接ECS实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 运行以下命令,安装MPI环境。 搭建AIACC环境 神龙AI加速引擎AIACC是基于阿里云IaaS资源推出的AI加速引擎,用于优化基于AI主流计算框架搭建的模型,能显著提升训练和推理性能。其中AIACC的aiacc-nccl-plugin组件可以提供eRDMA无感使用的易用性能力以及通信性能优化能力。更多信息,请参见什么是神龙AI加速引擎AIACC。 说明 aiacc-nccl-plugin组件已经默认集成在eRDMA驱动中,如果已安装eRDMA驱动,就可以直接使用,无需再重复安装aiacc-nccl-plugin。 AIACC环境支持的版本及操作系统如下: 方式一:通过rpm包安装 方式二:通过deb包安装 nccl2.8.x~2.16.x的所有版本 CentOS 7.x/8.x、Alibaba Cloud Linux、Ubuntu 18/20等多种操作系统 远程连接ECS实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 运行以下命令,安装AIACC环境。 部署AI环境 远程连接ECS实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 运行以下命令,创建Python环境。 运行以下命令,以PyTorch为例安装AI框架。 若系统返回类似如下信息时,则表示AI框架安装成功。 通过nccl、e2e测试性能前,需要配置各实例之间可以免密登录。 远程连接其中一台ECS实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 运行以下命令,生成免密密钥。 一直按Esc键,直到结束。 运行以下命令,获取并复制生成的公钥。 运行以下命令,将公钥拷贝至各实例。 重要 该步骤需要在每台ECS实例上分别执行。 运行以下命令,测试是否可以免密登录。 若系统返回类似如下信息,例如实例A可以登录到实例B,则表示免密登录成功。 您可以通过nccl、e2e这两种方式来测试AI训练的性能。 nccl性能测试 e2e性能测试 说明 为完成测试,您需要在集群中的两台ECS实例上分别执行以下操作。 远程连接ECS实例。 具体操作,请参见通过密码或密钥认证登录Linux实例。 运行以下命令,进入 新建集群IP地址信息文件。 运行以下命令,新建文件,例如 按i键进入编辑模式,在文件中添加集群信息。 说明 按推荐:TOP云智能建站优惠活动,仅880元即可搭建一个后台管理五端合一的智能网站(PC网站、手机网站、百度智能小程序、微信小程序、支付宝小程序),独享百度搜索SEO优势资源,让你的网站不仅有颜值有排面,更有排名,可以实实在在为您带来效益,请点击进入TOP云智能建站>>>,或咨询在线客服了解详情。AI训练场景架构
步骤一:创建eRDMA实例
步骤二:搭建环境

yum install -y git
cd /root
git clone https://github.com/NVIDIA/nccl.git
cd nccl/
make -j src.build NVCC_GENCODE="-gencode=arch=compute_80,code=sm_80"
cd /root
git clone https://github.com/NVIDIA/nccl-tests.git
cd nccl-tests/
make -j MPI=1 NCCL_HOME=/root/nccl/build/
yum install -y libgfortran4 libgfortran
wget https://aiacc.oss-accelerate.aliyuncs.com/build/openmpi-4.0.1-1.el7.x86_64.rpm
rpm -i openmpi-4.0.1-1.el7.x86_64.rpm
wget https://ali-perseus-release.oss-cn-huhehaote.aliyuncs.com/ACSpeed/nccl-plugin/rpm/aiacc-nccl-plugin-1.1.0.rpm
rpm -i aiacc-nccl-plugin-1.1.0.rpm
wget https://ali-perseus-release.oss-cn-huhehaote.aliyuncs.com/ACSpeed/nccl-plugin/deb/aiacc-nccl-plugin-1.1.0.deb
dpkg -i aiacc-nccl-plugin-1.1.0.deb
wget https://ali-perseus-build-dep.oss-cn-huhehaote.aliyuncs.com/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source /root/miniconda3/etc/profile.d/conda.sh
conda create -n py3.8.13_torch1.10.1_cu111 python=3.8
conda activate py3.8.13_torch1.10.1_cu111
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/torch_stable.html

步骤三:配置实例免密登录
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
echo <公钥> >> ~/.ssh/authorized_keys
ssh <另一台ECS实例的私网IP地址>

步骤四:性能测试
nccl-tests目录。cd nccl-tests/
hostfile.txt。vim hostfile.txt
172.20.20.145
172.20.20.143
172.20.20.145和172.20.20.143是ECS实例的私网IP地址,您需要根据实际环境替换。ECS实例的私网IP地址在步骤一:创建eRDMA实例时已获取。


湘公网安备43019002001857号
备案号:
客服1