关注和分享VPS主机优惠活动
www.vpsmr.com
腾讯云双11优惠活动

腾讯云推出GPU分布式AI训练加速引擎taco -训练容器方案

本文的内容显示了1。背景2。介绍2.1 . taco -训练2.2.harp. 2.3。TKE库伯流2.4。性能数据3。部署实践3.1。环境准备。创建pod 3.3。开始测试4。总结4.1。推荐阅读背景带AI随着模型规模越来越大,训练数据越来越多,用户对模型的迭代效率要求越来越高。显然,单个GPU的计算能力无法满足大部分业务场景,所以采用单机多卡或者多机多卡训练是一种趋势。单机多卡训练场景的参数同步在NVIDIA NVLINK技术的帮助下得到了很好的解决,而多机多卡训练场景由于对网络通信的依赖性很强,并没有那么简单。

目前,网卡厂商提供的RoCE等RDMA技术大大提高了多机通信的效率。然而,如何在25G或50G VPC网络环境下提高分布式培训系统的通信效率,仍然是公有云厂商亟待解决的问题。taco -培训的创新性不同于行业内的其他方案。除了多级通信、多流通信、梯度融合、压缩通信等常用的AI加速技术之外。,还引入了自定义协议栈HARP,有效解决了VPC环境下多机多卡训练中的网络通信问题。定制的用户态协议栈HARP在VPC分布式训练环境下可以达到接近100G RDMA网络的线性加速比,在某些模型上比开源的Horovod框架有两倍以上的性能提升。taco -培训可以部署在云服务器和云容器环境中。taco -训练在GPU云服务器上的加速部署方案已经在官网文档中推出。具体可参考AI加速引擎taco -在GPU云服务器上的部署训练。本文将介绍基于腾讯云容器服务(TKE)的部署方案,让我们了解云容器上taco -训练的分布式训练加速方案,借助腾讯云自研网络协议栈HARP加速AI训练!

TACO-TrainingTACO-Training腾讯云异构计算团队基于IaaS资源推出的AI训练加速引擎,为用户提供开箱即用的AI训练套件。taco -训练背靠云帆Oteam,基于腾讯内部丰富的AI业务场景,提供自下而上的网络通信、分布式策略和多级优化的训练框架,是一种生态化的训练加速方案。为了更好地服务用户,腾讯云决定提供深度优化的AI训练加速方案,供用户部署体验,可以帮助用户节省计算成本,提高AI产品研发效率。TACO-Training在分布式场景中引入的主要加速技术包括:

基于Horovod深度定制优化的LightCC通信组件,在兼容原有API的基础上,提供多级通信、TOPK压缩通信、多策略梯度融合等优化技术。HARP腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案HARP自主开发的用户态网络协议栈。随着网络硬件技术的发展,网卡的速度从10G提升到100G甚至更高,在数据中心得到了广泛的部署。但是常用的内核网络协议栈都有一些必要的开销,无法很好的利用高速网络设备。为了解决内核网络协议栈存在的问题,腾讯云开发了用户态网络协议栈HARP,可以以Plug-in的形式集成到NCCL中,无需任何业务变更,加速云上的分布式训练性能。在VPC环境中,与传统的内核协议栈相比,HARP提供了以下功能:

支持全链路内存零拷贝,HARP协议栈为应用提供了特定的缓冲区,使得应用数据经过HARP协议栈处理后可以直接由网卡收发,免去了内核协议栈中耗时且占用CPU高的多次内存拷贝操作。支持协议栈多实例隔离,即应用可以在多个CPU核上创建特定的协议栈实例来处理网络消息,每个实例之间相互隔离,保证性能线性增长。数据平面设计为无锁,HARP协议栈确保网络会话的数据仅在创建会话的CPU内核上处理,使用特定的协议栈实例。减少了内核中同步锁的开销,降低了CPU的缓存命中率,大大提高了网络数据的处理性能。下图中,内核协议栈在左边,用户态协议栈HARP在右边。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案TKE Kubeflow是基于k8s平台的机器学习开发、训练、优化、部署和管理的工具集,集成了Jupyter、tfserving、Katib、Argo等众多机器学习领域的开源项目。它可以管理机器学习的不同阶段:数据预处理、模型训练、模型预测、服务部署等。只要安装了k8s,就可以在本地、机房、云环境下随意部署。TKE集成了开源Kubeflow提供的一些AI组件,如MPI -算子、tf-算子、pytorch -算子、elastic -Jupiter -算子等。,用户可以非常方便地安装和使用。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案性能数据下图显示了CVM GPU训练集群下各开源模型中使用TACO训练的分布式训练的加速效果。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案可以发现,随着网络模型参数的增加,TACO的改善效果比Horovod越来越明显,Transformer-XL的性能甚至高出一倍以上。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案下图显示,无论是ResNet50还是Transformer-XL,在双机1HARP A100的训练环境下,CVM实例(gt 4.41 XL large 948+50G VPC)的性能接近黑石100G RDMA产品(HCCPNV4h)。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案部署实践为了重现上述性能加速效果,我们开始一步步学习如何构建TKE Kubeflow+TACO-training GPU的分布式训练集群。

环境准备1。控制台创建TKE集群,节点可以选择8卡V100(gn 10 XP . 20 xlage 32国外VPS主机测评25G网络)或8卡A100(gt 4.41 xlage 948+50G网络)实例。请参考以下配置:

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案注意:经过验证的操作系统包括:

Ubuntu server 18.04 centos 7.8腾讯Linu x2.42,控制台安装Kubeflow组件mpi-operator。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案成功安装后,您可以在worker节点上看到以下窗格。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案3.所有工作节点都配置了大页面内存。

piversion:v1 kind:service metadata:name:WordPress labels:app:WordPress spec:ports:-port:80 selector:app:WordPress tier:frontend主机起床后,检查配置是否成功。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案4.用弹性网卡登录云服务器控制台,找到实例,点击ins id进入实例页面,选择弹性网卡,点击绑定弹性网卡。在弹出的“绑定弹性网卡”窗口中,可以选择绑定已创建的网卡,也可以选择新建弹性网卡并绑定。单击“确定”完成绑定。注意:绑定的弹性网卡数量与原生GPU卡数量相同。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案1绑定成功后,主机上可以看到9个弹性网卡(1个主网卡,8个辅助弹性网卡)。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案5.生成HARP配置文件

//主机sudo curl -S-l http://mirrors.tencent.com/install/GPU/taco/harp_setup.sh登录worker node | bash成功执行后会打印‘设置harp成功’。

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案创建一个pod引用如下:taco.yaml文件,

API version:kubeflow.org/ v1 kind:MPIJobmetadata:name:taco -bench spec:slotsPerWorker:1 run policy:cleanPodPolicy:Running mpireplica specs:Launcher:replicas:1 template:spec:containers:-image:ccr.ccs.tencentyun.com/qcloud/ Taco -training:Cu 112-cud nn 81-py3-0 . 3 . 2 name:MPI -Launcher命令:开始测试,下载基准脚本并复制到Taco的容器中。

wget https://raw . githubusercontent . com/horo VOD/horo VOD/master/Examples/tensor flow/tensor flow _ synthetic _ benchmark . py for I in ` ku ectl get pods | grep worker | awk ‘ { print $ 1 } ‘ `;do ku bectl CP tensor flow _ synthetic _ benchmark . py $ I:/mnt/;为了测试不同网络模型和节点数量的性能,mpi launcher pod没有配置为直接启动培训脚本。

//登录Launcher podkubectle xEC -ittaco -Bench -Launcher –Bash//执行训练基准/USR/Local/OpenMPI/Bin/mpirun -NP 32-htta C-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

//卸载` ku ectl get pods | grep worker | awk ‘ { print $ 1 } ‘中ii的HARP加速库;do kubectl ExEC $ I –bash -c ‘ mv/usr/lib/x86 _ 64-linu x-GNU/libnccl -net . so/mnt/’;Done//在` ku bectl get pods | grep worker | awk ‘ { print $ 1 } ‘中卸载ii的light ccdo kubectl ExEC $ I –bash -c ‘ pip卸载-y light -horo VOD;回声’;Done//在` ku ectl get pods | grep worker | awk ‘ { print $ 1 } ‘中为ii安装horovod(大约需要8分钟);do ku bectl ExEC $ I –bash -c ‘ Export PATH =/usr/local/open MPI/bin:$ PATH;horo VOD _ WITH _ MPI = 1 horo VOD _ GPU _ OPERATIONS = NCCL horo VOD _ WITH _ tensor flow = 1 horo VOD _ NCCL _ LINK = SHARED pip 3 install –no-cache -dir horo VOD = = 0 . 21 . 3 ‘;Done//检查以确保所有工作线程都已成功。` ku bectl get pods | grep worker | awk ‘ { print $ 1 } ‘中的horovodof I;做ku bectl ExEC $ I –bash -c ‘ pip show horo VOD;回声’;至此,我们可以重现前面所示的性能数据,4台机器和32张卡V100:

-18双16卡A100:

腾讯云首发GPU分布式AI训练加速引擎TACO-Training容器方案注意:黑石A10国外VPS主机测评RDMA的产品测试需要额外的环境配置,暂时不支持TACO image。

总结本文首先介绍了分布式训练的现状和问题,然后介绍了腾讯云在分布式训练中的底层优化和探索,由此引出了业界第一个自定义网络协议栈——HARP。然后我们展示一下有竖琴加持的taco -训练引擎的加速效果:

在同样的25G VPC环境下,与业界开源解决方案Horovod相比,TACO可以提供约20%- 200%的性能提升。基本上模型参数越多,性能提升越明显;TACO可以在50G VPC环境下提供类似100G RDMA的训练性能;最后,我们学习了如何基于TKE Kubeflow逐步构建taco -培训集群。过程非常简单方便。来一起试试吧。

未经允许不得转载:国外VPS主机测评 » 腾讯云推出GPU分布式AI训练加速引擎taco -训练容器方案
任何商家都有倒闭和跑路可能,本站仅分享优惠活动及信息,购买前请自行斟酌,衡量评估风险,自负责任。数据勤备份是最佳选择!友情提示

评论 抢沙发

评论前必须登录!