有奖捉虫:行业应用 & 管理与支持文档专题 HOT

操作场景

本文介绍如何基于云服务器 CVM 搭建 Tensorflow+Taco Train 分布式训练集群。

操作步骤

购买实例

购买实例,其中实例、存储及镜像请参考以下信息选择,其余配置请参考 通过购买页创建实例 按需选择。
实例:选择 计算型 GN10XpGT4
系统盘:配置容量不小于50GB的云硬盘。您也可在创建实例后使用文件存储,详情参见 在 Linux 客户端上使用 CFS 文件系统
镜像:建议选择公共镜像,您也可选择自定义镜像
操作系统请使用 CentOS 8.0/CentOS 7.8/Ubuntu 20.04/Ubuntu 18.04/TecentOS 3.1/TencentOS 2.4。
若您选择公共镜像,则请勾选“后台自动安装GPU驱动”,实例将在系统启动后预装对应版本驱动。如下图所示:
?
?
说明
选择公共镜像并自动安装 GPU 驱动的实例,创建成功后,请登录实例等待约20分钟后重启实例,使配置生效。

配置实例环境

验证 GPU 驱动

2. 执行以下命令,验证 GPU 驱动是否安装成功。
nvidia-smi
查看输出结果是否为 GPU 状态:
是,代表 GPU 驱动安装成功。
否,请参考 NVIDIA Driver Installation Quickstart Guide 进行安装。

配置 HARP 分布式训练环境

1. 参考 配置 HARP 分布式训练环境,配置所需环境。
2. 配置完成后,执行以下命令进行验证,若配置文件存在,则表示已配置成功。
ls /usr/local/tfabric/tools/config/ztcp*.conf

安装 docker 和 nvidia docker

1. 执行以下命令,安装 docker。
curl -s -L http://mirrors.tencent.com/install/GPU/taco/get-docker.sh | sudo bash
若您无法通过该命令安装,请尝试多次执行命令,或参考 Docker 官方文档 Install Docker Engine 进行安装。 本文以 CentOS 为例,安装成功后,返回结果如下图所示:
?
?
?
2. 执行以下命令,安装 nvidia-docker2。
curl -s -L http://mirrors.tencent.com/install/GPU/taco/get-nvidia-docker2.sh | sudo bash
若您无法通过该命令安装,请尝试多次执行命令,或参考 NVIDIA 官方文档 Installation Guide & mdash 进行安装。 本文以 CentOS 为例,安装成功后,返回结果如下图所示:
?
?
?

下载 docker 镜像

执行以下命令,下载 docker 镜像。
docker pull ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1
该镜像包含的软件版本信息如下:
OS:18.04.5
python:3.6.9
cuda toolkits:V11.2.152
cudnn library:8.1.1
nccl library:2.8.4
tencent-lightcc :3.1.1
HARP library:v1.3
ttensorflow:1.15.5
其中:
LightCC 是腾讯云提供的基于 Horovod 深度定制优化的通信组件,完全兼容 Horovod API,不需要任何业务适配。
HARP 是腾讯云提供的用户态协议栈,致力于提高 VPC 网络下的分布式训练的通信效率。以动态库的形式提供,官方 NCCL 初始化过程中会自动加载,不需要任何业务适配。
ttensorflow 是腾讯云基于开源 tensorflow 1.15.5添加了 CUDA 11的支持,同时集成了 TFRA,用来支持动态 embedding 的特性。如需了解更多信息,请参见 TTensorflow 使用说明

启动 docker 镜像

执行以下命令,启动 docker 镜像。
docker run -it --rm --gpus all --privileged --net=host -v /sys:/sys -v /dev/hugepages:/dev/hugepages -v /usr/local/tfabric/tools:/usr/local/tfabric/tools ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1
注意
/dev/hugepages/usr/local/tfabric/tools 包含了 HARP 运行所需要的大页内存和配置文件。

分布式训练 benchmark 测试

说明
docker 镜像中的文件 /mnt/tensorflow_synthetic_benchmark.py 来自 horovod example
展开全部

总结

本文测试数据如下:
机器:GT4(A100 * 8)+ 50G VPC
容器:ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1
网络模型:ResNet50Batch:256
数据:synthetic data
机型
#GPUs
Horovod+TCP
Horovod+HARP
LightCC+HARP
性能(img/sec)
线性加速比
性能(img/sec)
线性加速比
性能(img/sec)
线性加速比
GT4/A100
1
777
-
777
-
777
-
8
6105
98.21%
6105
98.21%
6105
98.21%
16
5504
44.27%
7857
63.20%
11173
89.87%
说明如下:
对于 GT4,相比开源方案,使用 TACO 分布式训练加速组件之后,16卡A100的线性加速比从44.27%提升到89.87%,效果非常显著。
LightCC 和 HARP 只在多机分布式训练当中才有加速效果,单机8卡场景由于 NVLink 的高速带宽存在,一般不需要额外的加速就能达到比较高的线性加速比。
上述 benchmark 脚本也支持除 ResNet50之外的其他模型,ModelName 请参考 Keras Applications
上述 docker 镜像仅用于 demo,若您具备开发或者部署环境,请提供 OS/python/CUDA/tensorflow 版本信息,并联系腾讯云售后提供特定版本的 TACO 加速组件。


http://www.vxiaotou.com