我们已经准备好了,你呢?

2023我们与您携手共赢,为您的企业形象保驾护航!


喜讯:国内、香港、海外云服务器租用特惠活动,2核/4G/10M仅需31元每月,点击抢购>>>

点击这里点击这里进入阿里云ECS官方页面,立即免费体验云服务器ECS>>>

点击这里阿里云老客户点击这里申请VIP账号,享终身8折优惠(续费也打折)>>>

通过使用弹性eRDMA技术,您可以获得超低延迟,更快地响应请求。本文介绍如何在eRDMA增强型实例上部署AI训练集群,并测试其性能。

AI训练场景架构

目前AI分布式训练场景主要的架构如下图所示。主流AI框架底层通过多种不同的通信后端进行多机或多卡通信,例如:

  • MPI/Gloo后端多用于CPU的控制流通信。

  • NCCL是由NVIDIA开源的GPU多机多卡实现,旨在提供高效的大数据流通信。因此,它在性能优化方面具有得天独厚的优势,被广泛应用于主流AI框架中,并成为推荐的通信后端。

  • 在NCCL底层通信链接上,有多种不同的传输方式,例如单机内部多卡P2P通信以及多机上的传统socket通信(如VPC网络)和高性能的InfiniBand(IB)通信,其中eRDMA是一种基于RDMA的传输方式,具有极低的延迟,并且在性能上接近RDMA网络的优势。使用eRDMA不需要修改业务组网,且在NCCL后端的场景下可以无缝使用。

image

步骤一:创建eRDMA实例

具体操作,请参见在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实例时,配置镜像时需按以下步骤配置:选择镜像

    1. 选择所需的操作系统及版本。支持的镜像及版本请参见使用限制。

    2. 选中安装GPU驱动,然后再选择对应的CUDA版本、Driver版本和CUDNN版本。

  • 搭建NCCL环境

    NVIDIA集体通信库(NCCL)是英伟达基于NVIDIA-GPU的一套开源的集体通信库,实现了针对NVIDIA GPU性能优化的多GPU和多节点集体通信原语。NCCL提供了诸如all-gather、all-reduce、broadcast、reduce、reduce-scatter等实现,这些实现经过优化后可以通过PCIe和NVLink等高速互联,从而实现高带宽和低延迟。

    1. 远程连接ECS实例。

      具体操作,请参见通过密码或密钥认证登录Linux实例。

    2. 运行以下命令,安装git。

       

       yum install -y git
    3. 依次运行以下命令,编译nccl。

       

      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"
    4. 依次运行以下命令,编译nccl-test。

       

      cd /root
      git clone https://github.com/NVIDIA/nccl-tests.git
      cd nccl-tests/
      make -j MPI=1 NCCL_HOME=/root/nccl/build/
  • 搭建MPI环境

    MPI(Message Passing Interface)是支持多编程语言编程的并行计算通信库,具有高性能、大规模性、可移植性、可扩展性等特点。

    1. 远程连接ECS实例。

      具体操作,请参见通过密码或密钥认证登录Linux实例。

    2. 运行以下命令,安装MPI环境。

       

      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
  • 搭建AIACC环境

    神龙AI加速引擎AIACC是基于阿里云IaaS资源推出的AI加速引擎,用于优化基于AI主流计算框架搭建的模型,能显著提升训练和推理性能。其中AIACC的aiacc-nccl-plugin组件可以提供eRDMA无感使用的易用性能力以及通信性能优化能力。更多信息,请参见什么是神龙AI加速引擎AIACC。

    说明

    aiacc-nccl-plugin组件已经默认集成在eRDMA驱动中,如果已安装eRDMA驱动,就可以直接使用,无需再重复安装aiacc-nccl-plugin。

    AIACC环境支持的版本及操作系统如下:

    • 方式一:通过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
    • 方式二:通过deb包安装

       

      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
    • nccl2.8.x~2.16.x的所有版本

    • CentOS 7.x/8.x、Alibaba Cloud Linux、Ubuntu 18/20等多种操作系统

    1. 远程连接ECS实例。

      具体操作,请参见通过密码或密钥认证登录Linux实例。

    2. 运行以下命令,安装AIACC环境。

  • 部署AI环境

    1. 远程连接ECS实例。

      具体操作,请参见通过密码或密钥认证登录Linux实例。

    2. 运行以下命令,创建Python环境。

       

      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
    3. 运行以下命令,以PyTorch为例安装AI框架。

       

      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

      若系统返回类似如下信息时,则表示AI框架安装成功。安装AI框架

步骤三:配置实例免密登录

通过nccl、e2e测试性能前,需要配置各实例之间可以免密登录。

  1. 远程连接其中一台ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例。

  2. 运行以下命令,生成免密密钥。

     

    ssh-keygen -t rsa

    一直按Esc键,直到结束。

  3. 运行以下命令,获取并复制生成的公钥。

     

    cat ~/.ssh/id_rsa.pub
  4. 运行以下命令,将公钥拷贝至各实例。

     

    echo <公钥> >> ~/.ssh/authorized_keys

    重要

    该步骤需要在每台ECS实例上分别执行。

  5. 运行以下命令,测试是否可以免密登录。

     

    ssh <另一台ECS实例的私网IP地址>

    若系统返回类似如下信息,例如实例A可以登录到实例B,则表示免密登录成功。免密登录

步骤四:性能测试

您可以通过nccl、e2e这两种方式来测试AI训练的性能。

nccl性能测试

e2e性能测试

说明

为完成测试,您需要在集群中的两台ECS实例上分别执行以下操作。

  1. 远程连接ECS实例。

    具体操作,请参见通过密码或密钥认证登录Linux实例。

  2. 运行以下命令,进入nccl-tests目录。

     

    cd nccl-tests/
  3. 新建集群IP地址信息文件。

    1. 运行以下命令,新建文件,例如hostfile.txt

       

      vim hostfile.txt
    2. i键进入编辑模式,在文件中添加集群信息。

       

      172.20.20.145
      172.20.20.143

      说明

      172.20.20.145172.20.20.143是ECS实例的私网IP地址,您需要根据实际环境替换。ECS实例的私网IP地址在步骤一:创建eRDMA实例时已获取。

    3. 推荐:TOP云智能建站优惠活动,仅880元即可搭建一个后台管理五端合一的智能网站(PC网站、手机网站、百度智能小程序、微信小程序、支付宝小程序),独享百度搜索SEO优势资源,让你的网站不仅有颜值有排面,更有排名,可以实实在在为您带来效益,请点击进入TOP云智能建站>>>,或咨询在线客服了解详情。



我们已经准备好了,你呢?

2023我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

131-3501-0006

上班时间

周一到周五

公司电话

130-0743-9476

二维码
线