一种基于RDMA网络的分布式训练系统及高效训练方法技术方案

技术编号:27305706 阅读:19 留言:0更新日期:2021-02-10 09:17
本发明专利技术提供一种基于RDMA网络的分布式训练系统及高效训练方法,通过在分布式训练任务被调度到具有RDMA网络的训练集群后重置其在训练过程中的网络环境,并重置完成后的分布式训练过程中使用重置后的RDMA网络进行通信,突破训练数据通信瓶颈,进而解决现有技术部署分布式训练任务时存在的无法利用高效通信网络的问题,大大提高分布式训练效率。大大提高分布式训练效率。大大提高分布式训练效率。

【技术实现步骤摘要】
一种基于RDMA网络的分布式训练系统及高效训练方法


[0001]本专利技术涉及分布式机器学习领域;具体地,涉及一种基于RDMA网络的分布式训练系统及高效训练方法。

技术介绍

[0002]机器学习,特别是深度学习,在人工智能驱动服务中获得了广泛的成功。随着模型越来越复杂,其训练的计算成本越来越高。若要实现高效及时的训练,则需发掘分布式系统并行计算的优势。业内领军企业如微软、Facebook和Google等已经开始尝试在成百上千的服务器组成的生产集群上运行分布式机器学习训练任务。
[0003]然而,一个具备实用意义的用于分布式训练的物理集群,其从构建部署到运行维护,都是极为专业且复杂甚至是繁琐的工作。将容器云技术应用到分布式机器学习领域,无疑可大大简化其构建部署运维工作的难度。
[0004]容器云技术不仅能够实现容器集群的快速部署,同时它也是一种轻量化的解决方案,且能够有效整合和管理着裸机资源。以Kubernetes平台运行分布式机器学习训练任务为例,Kubernetes不仅为打包应用提供一致的方法,保证应用在不同设备上运行的一致性,为应用的运行环境提供资源隔离,同时其对硬件底层的复杂性和节点管理进行了抽象,并且支持GPU的调度。
[0005]但是,无论是以若干主机服务器搭建的用于训练的物理集群,还是在容器云平台部署的训练集群,计算节点间的数据传输通常是以基于TCP/IP协议(也是目前广域网和局域网通用的网络协议)网络通信实现的。上述网络通信过程需要操作系统和协议栈的介入,但随着训练集越来越大,在参数交换(parameter exchange)过程中将不可避免占用大量的CPU资源,造成较大网络延时,严重制约训练效率。
[0006]远程直接内存访问技术,即RDMA(Remote Direct Memory Access)技术,则是一种直接内存访问技术;它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。因此,相较于上述基于通用的TCP/IP协议的常规网络,RDMA网络通信可以避免网络传输过程中大量的CPU资源占用,同时也减小了网络延时。那么,为分布式训练任务搭建/部署具有RDMA网络的训练集群,并在训练过程中为训练数据(例如参数交换过程中的数据通信)提供RDMA网络通信,显然是一种突破参数交互网络通信瓶颈、提高分布式训练效率的有效途径。
[0007]在分布式训练过程中,通常是以环境配置参数来保障被分配到各计算节点的子任务间的依赖关系和控制子任务间的数据一致性的。具体而言,一般地,每个子任务对应的环境配置参数将包括全部子任务以及当前子任务的一些信息(如子任务编号、网络连接参数等)。在现实的部署及训练过程中,除利用环境配置参数调度分布式任务到训练集群(即将各个子任务分配到训练集群各计算节点)外,还包括在训练过程中通过环境配置参数中的网络连接参数实现运行在不同计算节点的训练应用程序间的数据通信。
[0008]因此,在实践中,以在具有RDMA网络的物理集群部署分布式训练任务为例,为实现
RDMA网络环境下的高效分布式训练,一般是先行获取训练集群各计算节点的RDMA网络IP,手动/利用脚本生成包括RDMA网络IP(作为网络连接参数)的环境配置参数,进而实现任务被调度到训练集群后的高效分布式训练。
[0009]然而,在容器云平台上部署分布式训练,往往被认为是能够更高效地利用平台资源。为更好地利用资源,在容器云平台部署训练任务时,通常是:先将训练任务分解为若干个子任务,并为之生成环境配置参数,然后才为子任务创建对应的容器/容器组(容器/容器组是指容器集群在编排管理时最小单位;其中,容器即在容器环境下运行独立应用的容器;容器组,是指在容器环境下运行独立应用的“逻辑主机”,运行着一个或者多个紧密耦合的应用容器,如Kubernetes平台的Pod)。分布式训练启动后,运行在各计算节点的子任务训练应用程序间则是通过连接访问服务经由常规网络(即基于TCP/IP的网络,一般作为多网络集群的默认网络)实现通信的。而这种通信机制恰是需要系统内核介入的。而RDMA网络实现高效通信的关键则是不依赖系统内核介入。因此,即使当分布式训练任务被调度到具有RDMA网络的多网络容器训练集群,在分布式训练启动后,运行在集群各计算节点(即用于训练的容器/容器组)的训练应用程序也是无法发现和有效地使用RDMA网络,进而也就仍无法突破通信瓶颈,实现高效训练的。
[0010]此外,即便是在具有RDMA网络的双网络物理集群部署分布式训练任务,也需手动/利用脚本生成特殊的环境配置参数(以RDMA网络IP为网络连接参数的环境配置参数);而手动配置,难免不出错;而且也不适用于大规模集群部署。

技术实现思路

[0011]有鉴于此,本专利技术提供一种基于RDMA网络的分布式训练系统及高效训练方法。
[0012]一方面,本专利技术实施例提供一种基于RDMA网络的分布式训练系统。
[0013]上述的基于RDMA网络的分布式训练系统,包括:
[0014]网络环境重置单元和分布式训练执行单元;其中,
[0015]网络环境重置单元,用于在分布式训练启动后,即训练集群各计算节点分别启动对应子任务的训练应用程序后,且在各子任务应用程序执行训练前,重置分布式训练任务(即各子任务)在训练过程中的网络环境:
[0016]即获取训练集群的RDMA网络信息,并根据其更新分布式训练任务的环境配置参数;
[0017]分布式训练执行单元,用于在重置完成后执行分布式训练,并在训练过程中根据更新的环境配置参数使用RDMA网络进行数据通信。
[0018]另一方面,本专利技术实施例提供一种高效的分布式训练方法,用于高效执行被调度到具有RDMA网络的多网络训练集群上的分布式训练任务。
[0019]上述的高效分布式训练方法,包括:
[0020]当分布式训练任务被调度到具有RDMA网络的训练集群,
[0021]在分布式训练启动后,即训练集群各计算节点分别启动对应子任务的训练应用程序后,且在各子任务应用程序执行训练前,
[0022]重置分布式训练任务(即各子任务)在训练过程中的网络环境:
[0023]获取训练集群的RDMA网络信息,即各计算节点的RDMA网络信息;
[0024]根据训练集群的RDMA网络信息更新分布式训练任务的环境配置参数,实现分布式训练任务在训练过程中的网络环境重置;
[0025]重置完成后,则开始执行分布式训练,即各子任务应用程序执行训练,并在训练过程中根据更新的环境配置参数使用RDMA网络进行数据通信。
[0026]上述实施例中的基于RDMA网络的分布式训练系统、训练方法,在分布式训练任务被调度到具有RDMA网络的训练集群后,通过为分布式任务重置其在训练过程中的网络环境,以及重置完成后的分布式训练过程中使用重置后的RDMA网络进行通信,以克服现有技术部署分布式训练任务存在的通信瓶颈问题,进而提高分布式训练效率。
附图说明...

【技术保护点】

【技术特征摘要】
1.一种基于RDMA网络的分布式训练系统,其特征在于,包括:网络环境重置单元和分布式训练执行单元;其中,网络环境重置单元,用于在分布式训练启动后,在各子任务应用程序执行训练前,重置分布式训练任务在训练过程中的网络环境:即获取训练集群的RDMA网络信息,并根据其更新分布式训练任务的环境配置参数;分布式训练执行单元,用于在重置完成后执行分布式训练,并在训练过程中根据更新的环境配置参数使用RDMA网络进行数据通信。2.根据权利要求1所述的一种基于RDMA网络的分布式训练系统,其特征在于,所述的网络环境重置单元,获取RDMA网络IP分配表,并根据其获取训练集群的RDMA网络信息;所述的RDMA网络IP分配表是分配RDMA网络IP时记录生成的。3.根据权利要求1所述的一种基于RDMA网络的分布式训练系统,其特征在于,所述的网络环境重置单元获取训练集群的RDMA网络信息:根据环境配置参数中的任务ID或依靠ZooKeeper从各计算节点中确定一主节点来汇集训练集群的RDMA网络IP。4.根据权利要求1所述的一种基于RDMA网络的分布式训练系统,其特征在于,所述集群的计算节点,还包括参数服务器节点,用于负责维护全局共享的参数。5.根据权利要求1所述的一种基于RDMA网络的分布式训练系统,其特征在于,所述分布式训练任务在容器云平台部署时,所述...

【专利技术属性】
技术研发人员:张曼妮张翔宇郭昊孙军欢赵来松
申请(专利权)人:深圳致星科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1