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

操作场景

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

操作步骤

购买实例

购买实例,其中实例、存储及镜像请参考以下信息选择,其余配置请参考 通过购买页创建实例 按需选择。
系统盘:配置容量不小于50GB的云硬盘。您也可在创建实例后使用文件存储,详情参见 在 Linux 客户端上使用 CFS 文件系统
镜像:建议选择公共镜像,公共镜像当中已安装 RDMA 网卡驱动,且支持自动安装 GPU 驱动。若您选择自定义镜像,则需要自行安装 RDMA 网卡驱动和 GPU 驱动,请通过 联系我们 获取腾讯云售后支持。
操作系统请使用 CentOS 7.6。
若您选择公共镜像,则请勾选“后台自动安装GPU驱动”,实例将在系统启动后预装对应版本驱动。如下图所示:



安装 nv_peer_mem(可选)

多机通信的过程中,GPU 显存中的数据需要首先拷贝到内存中,然后通过网卡发出。通过 GPU Direct RDMA 协议,可利用 GPU 和网卡直接通过 PCIe 进行 Peer2Peer 的数据交换这条更快速的路径,无需借助内存来进行数据的传递。
如需使用 GDR 进行数据传输,请在实例中执行以下命令,安装如下驱动。
git clone https://github.com/Mellanox/nv_peer_memory.git
cd ./nv_peer_memory/ && git checkout 1.0-9
make && insmod ./nv_peer_mem.ko
// 如果服务器发生了重启,nv_peer_mem驱动需要重新insmod

安装 docker 和 nvidia docker

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



3. 执行以下命令,安装 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-bm-0.4.2
该镜像包含的软件版本信息如下:
OS:18.04.5
ofed: MLNX_OFED_LINUX-5.1-2.5.8.0
python:3.6.9
cuda toolkits:V11.2.152
cudnn library:8.1.1
nccl library:2.8.4
tencent-lightcc :3.1.1
ttensorflow:1.15.5
其中:
LightCC 是腾讯云提供的基于 Horovod 深度定制优化的通信组件,完全兼容 Horovod API,不需要任何业务适配。
ttensorflow 是腾讯云基于开源 tensorflow 1.15.5添加了 CUDA 11的支持,同时集成了 TFRA,用来支持动态 embedding 的特性。如需了解更多信息,请参见 产品概述

启动 docker 镜像

执行以下命令,启动 docker 镜像。
docker run -itd --rm --gpus all --shm-size=32g --ulimit memlock=-1 --ulimit stack=67108864 --net=host --privileged ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-bm-0.4.2
注意
--privileged 选项使容器能够访问主机上的 RDMA 设备。

分布式训练 benchmark 测试

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

总结

本文使用环境及测试数据如下:
机器:HCCPNV4h(A100 * 8)+ 100G RDMA + 25G VPC
容器:ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-bm-0.4.2
网络模型:ResNet50Batch:256
数据:synthetic data
机型
#GPUs
Horovod+RDMA
LightCC+RDMA
性能(img/sec)
线性加速比
性能(img/sec)
线性加速比
HCCPNV4h A100
1
778
-
778
-
8
6104
98.07%
6104
98.07%
16
10790
86.68%
11779
94.63%
说明如下:
对于 HCCPNV4h/A100,相比开源方案,2机16卡通过 LightCC 可以将线性加速比从86.68%提升到94.63%。
上述 benchmark 也支持除 ResNet50之外的其他模型,ModelName 请参考 Keras Applications
上述 docker 镜像仅用于 demo,若您需使用自己的 docker 开发环境,请参考 容器安装用户态 RDMA 驱动 安装网卡驱动。
如需特定 OS/python/CUDA/tensorflow 版本的 LightCC 加速组件,请通过 联系我们 联系腾讯云售后获取。