上云无忧 > 文档中心 > 腾讯云计算加速套件 TACO Kit - 使用 TACO Train 在 TKE Kubeflow 上搭建分布式训练集群
计算加速套件TACO Kit
腾讯云计算加速套件 TACO Kit - 使用 TACO Train 在 TKE Kubeflow 上搭建分布式训练集群

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

操作场景

本文介绍如何基于容器服务 TKE Kubeflow 提供的 AI 组件 MPI Operator 搭建 TACO Train 分布式训练集群。

操作步骤

准备环境

1. 创建 TKE 集群,其中节点、操作系统请参考以下信息选择,其余配置可参考 创建集群 按需选择。
Node节点:8卡V100(GN10Xp.20XLARGE320 + 25G 网络)或8卡A100(GT4.41XLARGE948 + 50G 网络)。
操作系统:目前已验证的操作系统为 Ubunut Server 18.04、CentOS 7.8、 Tencent Linux 2.4,请按需选择。 本文示例配置如下图所示:

2. 登录 容器服务器控制台,选择左侧导航栏中的云原生AI
3. 在 “AI环境” 页面单击新建,根据页面提示创建 AI 环境,并为集群安装 Kubeflow 组件 mpi-operator。如下图所示:

安装成功后,可登录 worker 节点查看存在如下图所示 pod:

4. 参考 配置 HARP 分布式训练环境 配置环境,实现在多机多卡训练场景中使用 HARP 协议栈进行数据交换。

创建 Pod

1. 使用 yaml 创建 Pod,taco.yaml 示例文件如下:
		
apiVersion: kubeflow.org/v1
kind: MPIJob
metadata:
name: taco-bench
spec:
slotsPerWorker: 1
runPolicy:
cleanPodPolicy: Running
mpiReplicaSpecs:
Launcher:
replicas: 1
template:
spec:
containers:
- image: ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1
name: mpi-launcher
command: ["/bin/sh", "-ec", "sleep infinity"]
resources:
limits:
cpu: 1
memory: 2Gi
Worker:
replicas: 4
template:
spec:
containers:
- image: ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1
name: mpi-worker
securityContext:
privileged: true
volumeMounts:
- mountPath: /sys/
name: sys
- mountPath: /dev/hugepages
name: dev-hge
- mountPath: /usr/local/tfabric/tools
name: tfabric
resources:
limits:
hugepages-1Gi: "50Gi"
memory: "100Gi"
nvidia.com/gpu: 8 # requesting 1 GPU
volumes:
- name: sys
hostPath:
path: /sys/
- name: dev-hge
hostPath:
path: /dev/hugepages/
- name: tfabric
hostPath:
path: /usr/local/tfabric/tools/
说明如下:
主机侧一些设备节点和配置文件需要 bind mount 到 Pod 中供 HARP 使用。
Pod 需要配置 privileged 权限,否则 HARP 无法读取配置文件。
需要给 Pod 配置大页内存 hugepages-1Gi。针对八卡机器可配置 hugepages=50,其他机型建议按照 hugepages=(卡数 × 5+10)进行配置。
ccr.ccs.tencentyun.com/qcloud/taco-train:ttf115-cu112-cvm-0.4.1 是 taco-train 的官方 demo 镜像,基于 Ubunut 18.04/python 3.6.9/CUDA 11.2.152/CUDNN 8.1.1/NCCL 2.8.4编译产生,如果有其他的版本需求,请 联系我们 并通过腾讯云售后获取特定版本的加速组件。
2. 执行以下命令,创建 Pod。
		
kubectl create -f taco.yaml
创建成功后,可执行以下命令进行查看:
		
kubectl get pod
返回结果如下图所示:

开始测试

1. 执行以下命令,登录 launcher pod。
		
kubectl exec -it taco-bench-launcher -- bash
2. 执行以下命令,执行训练 benchmark。
说明
为测试不同的网络模型和节点数量下的性能,mpi launcher pod 未配置为直接启动训练脚本方式。

		

/usr/local/openmpi/bin/mpirun -np 32 -H taco-bench-worker-0:8,taco-bench-worker-1:8,

taco-bench-worker-2:8,taco-bench-worker-3:8 --allow-run-as-root -bind-to none -map-by

slot -x NCCL_ALGO=RING -x NCCL_DEBUG=INFO -x HOROVOD_MPI_THREADS_DISABLE=1 -x HOROVOD_

FUSION_THRESHOLD=0 -x HOROVOD_CYCLE_TIME=0 -x LIGHT_2D_ALLREDUCE=1 -x LIGHT_TOPK_ALLR

EDUCE=1 -x LIGHT_TOPK_THRESHOLD=2097152 -x LIGHT_INTRA_SIZE=8 -x LD_LIBRARY_PATH -x PATH

-mca btl_tcp_if_include eth0 python3 /mnt/tensorflow_synthetic_benchmark.py --model=VGG16

--batch-size=128

如需切换到 Horovod 进行对比测试,则请执行如下命令删除 TACO 相关组件,安装开源 Horovod:

		
// 卸载HARP加速库

for i in `kubectl get pods | grep worker | awk '{print $1}'`; do kubectl exec $i -- bash -c

'mv /usr/lib/x86_64-linux-gnu/libnccl-net.so /mnt/'; done

		
// 卸载LightCC

for i in `kubectl get pods | grep worker | awk '{print $1}'`; do kubectl exec $i

-- bash -c 'pip uninstall -y light-horovod;echo'; done

		
// 安装horovod(耗时8分钟左右)

for i in `kubectl get pods | grep worker | awk '{print $1}'`; do kubectl exec $i

-- bash -c 'export PATH=/usr/local/openmpi/bin:$PATH;HOROVOD_WITH_MPI=1 HOROVOD_GPU

_OPERATIONS=NCCL HOROVOD_WITH_TENSORFLOW=1 HOROVOD_NCCL_LINK=SHARED pip3 install --no-cache-dir horovod==0.21.3'; done

		
// 检查确认所有的worker都已经成功horovod
for i in `kubectl get pods | grep worker | awk '{print $1}'`; do kubectl exec $i -- bash -c 'pip show horovod;echo'; done

测试结果

下图展示了在 CVM GPU 训练集群下,各开源模型使用 TACO train 进行分布式训练的加速效果:

参数值如下:
network
参数量(millions)
inceptionv3
25
resnet101
44
vgg16
138
transformer-xl
257
可发现,随着网络模型参数量的增加,TACO 相比 Horovod 的提升效果愈加明显,Transformer-XL 上甚至有高达两倍多的性能提升。
下图表明无论是 ResNet50 还是Transformer-XL,在双机16卡 A100的训练环境下,CVM 实例(GT4.41XLARGE948 + 50G VPC)通过 HARP 加速后,能够提供接近裸金属云服务器100G RDMA 产品(HCCPNV4h )的性能。


总结

在相同的25G VPC 环境下,相比于业内开源方案 Horovod,TACO 可以提供20% - 200%左右的性能提升。原理上模型参数越多,性能提升越明显。
在50G的 VPC 环境下,TACO 可以提供类似100G RDMA 的训练性能。
相似文档
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部