飞天AI加速器AIACC(Apsara AI Accelerator)是阿里云自研的AI加速器,包括训练加速器AIACC-Training和推理加速器AIACC-Inference,支持统一加速AI主流计算框架TensorFlow、PyTorch、MxNet和Caffe。GPU云加速器可以自动配置包含AIACC-Training的Python Conda环境。

背景信息

Conda是一款开源跨平台的软件包和环境管理系统。在GPU云加速器自动配置的Python Conda环境中,您可以轻松安装和切换深度学习框架,并通过AIACC-Training显著提升训练性能。

AIACC-Training包括以下加速特性:
  • 梯度融合通信支持自适应多流、自适应梯度融合,显著提升带宽密集的网络模型的训练性能,约提速50%至300%。
  • 采用去中心化梯度协商机制,将大规模节点下梯度协商的通信量降低1到2个数量级。
  • 采用分级的Allreduce方法,支持FP16梯度压缩及混合精度压缩。
  • 支持在训练过程中开启NaN检查,支持定位NaN来自于哪个梯度(需要为SM60及更新平台)。
  • 提供针对MXNet的API扩展,支持insighface类型的数据和模型并行。
  • 提供针对RDMA网络的深度优化。

自动安装AIACC-Training

AIACC依赖GPU驱动、CUDA和cuDNN,请在创建GPU实例时,配置自动安装GPU驱动,然后选中GPU云加速器。GPU实例创建完成后,会根据您选择的CUDA版本配置包含AIACC-Training v1.3.0的Python Conda环境。创建GPU实例的具体操作,请参见创建配备NVIDIA GPU的实例自动安装GPU云加速器

Python Conda环境包括AIACC-Training及OpenMPI等依赖包,但不包括深度学习框架。安装深度学习框架的具体操作,请参见安装深度学习框架

CUDA版本决定支持安装的深度学习框架版本,对应关系如下表所示。
CUDA版本 默认进入的Conda环境 支持安装的深度学习框架版本
CUDA 10.1 tf2.1_cu10.1_py36 Tensorflow 2.1
CUDA 10.0 tf1.15_tr1.4.0_mx1.5.0_cu10.0_py36
  • Tensorflow 1.15 + Pytorch 1.4.0 + MXNet 1.5.0
  • Tensorflow 1.14 + Pytorch 1.3.0 + MXNet 1.4.0
CUDA 9.0 tf1.12_tr1.3.0_mx1.5.0_cu9.0_py36 Tensorflow 1.12 + Pytorch 1.3.0 + MXNet 1.5.0

安装深度学习框架

  1. 远程连接实例
  2. 查看自动激活的Conda环境。
    查看用户名前显示的版本号即可,示例如下图所示。conda环境版本
    tf2.1_cu10.1_py36代表:
    • Tensorflow 2.1
    • CUDA 10.1
    • Python 3.6
  3. 可选:如果您不需要使用自动激活的Conda环境,激活其它Conda环境。
    1. 查看所有Conda环境。
      conda env list
      示例如下图所示。查看conda环境
    2. 激活需要使用的conda环境。
      conda activate [version number]
      示例如下图所示。激活conda环境
  4. 安装深度学习框架。
    install_frameworks.sh
    示例如下图所示。安装深度学习框架
  5. 测试demo。
    以测试TensorFlow的demo为例。
    • 如果TensorFlow版本为2.1:
      1. 解压demo测试包。
        tar -xvf ali-perseus-demos.tgz
      2. 进入TensorFlow的demo目录。
        cd ali-perseus-demos/tensorflow2-examples
      3. 执行目录下的测试脚本。

        示例命令如下:

        python tensorflow2_keras_mnist_perseus.py
        该demo使用MNIST数据集进行训练,在提升训练性能的同时,保证和您的基准代码达到相同的精度。训练结果示例如下图所示。实际数据训练结果
    • 如果TensorFlow版本为1.14:
      1. 解压demo测试包。
        tar -xvf ali-perseus-demos.tgz
      2. 进入TensorFlow的demo目录。
        cd ali-perseus-demos/tensorflow-benchmarks
      3. 查看README.txt中的测试命令。
      4. 进入对应版本的测试脚本目录。
        示例命令如下:
        cd benchmarks-tf1.14
      5. 根据实例规格的GPU数量修改并执行测试命令。
        示例命令如下:
        mpirun --allow-run-as-root --bind-to none -np 1 -npernode 1  \
               --mca btl_tcp_if_include eth0  \
               --mca orte_keep_fqdn_hostnames t   \
               -x NCCL_SOCKET_IFNAME=eth0   \
               -x LD_LIBRARY_PATH   \
               ./config-fp16-tf.sh
        该demo使用合成数据进行训练,测试训练速度。训练结果示例如下图所示。合成数据训练结果