上云无忧 > 文档中心 > 腾讯云计算加速套件 TACO Kit - 在 CVM 上部署 TensorFlow 分布式训练集群
计算加速套件TACO Kit
腾讯云计算加速套件 TACO Kit - 在 CVM 上部署 TensorFlow 分布式训练集群

文档简介:
操作场景: 本文介绍如何基于云服务器 CVM 搭建 Tensorflow+Taco Train 分布式训练集群。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

操作场景

本文介绍如何基于云服务器 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 驱动

1. 参考 使用标准登录方式登录 Linux 实例,登录实例。
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
单卡
执行以下命令,进行测试。

							

/usr/local/openmpi/bin/mpirun -np 1 --allow-run-as-root -bind-to none -map-by

slot -x NCCL_DEBUG=INFO -x LD_LIBRARY_PATH -x PATH -mca btl_tcp_if_include eth0

python3 /mnt/tensorflow_synthetic_benchmark.py --model=ResNet50 --batch-size=256

下图为 GT4/A100的单卡 benchmark 结果:

总结

本文测试数据如下:
机器: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
相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部