一种自适应RDMA网络的分布式机器学习系统及方法技术方案

技术编号:27305710 阅读:34 留言:0更新日期:2021-02-10 09:17
本发明专利技术提供一种的自适应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网络实现高效通信的关键则是不依赖系统内核介入。
[0010]因此,即使当分布式训练任务被调度到具有RDMA网络的双网络容器训练集群,在分布式训练启动后,运行在集群各计算节点(这里是指用于训练的容器/容器组)的训练应用程序也是无法发现和有效地使用RDMA网络,进而也就仍无法突破通信瓶颈,实现高效训练的。
[0011]此外,即便是在具有RDMA网络的多网络物理集群部署分布式训练任务,也需手动/利用脚本生成特殊的环境配置参数(以RDMA网络IP为网络连接参数的环境配置参数);而手动配置,难免不出错;而且也不适用于大规模集群部署。
[0012]需要指出的是,正是因为大部分分布式机器学习框架在训练过程中过度依赖部署调度时设定、提供的网络环境,对被调度到的训练集群网络类型并不感知,才导致分布式训练任务被调度到训练集群后,在训练过程中只能固定地选择使用默认网络(通常的)或RDMA网络(定制的),而不能根据被调度的训练集群的当前网络实际情况,自适应地选择网络用于训练过程中训练应用的数据传输。

技术实现思路

[0013]有鉴于此,本专利技术提供一种自适应RDMA网络的分布式机器学习系统及方法。
[0014]一方面,本专利技术实施例提供一种自适应RDMA网络的分布式机器学习系统。
[0015]上述的自适应RDMA网络的分布式机器学习系统,包括:
[0016]网络环境自适应单元和分布式训练执行单元;其中,
[0017]网络环境自适应单元,用于检测训练集群网络环境以及根据检测自适应地选择训练集群网络用于分布式训练任务通信;
[0018]而分布式训练执行单元,则用于在所述网络环境自适应单元为分布式训练任务确定网络环境后在确定的网络环境下执行分布式训练任务;
[0019]其中,网络环境自适应单元,包括网络检测模块和网络环境重置模块;
[0020]网络检测模块用于检测训练集群是否存在RDMA网络,即检测训练集群各计算节点是否接入RDMA网络信息;
[0021]若训练集群存在RDMA网络,网络环境自适应单元则通过网络环境重置模块为分布式训练任务选择RDMA网络;
[0022]若训练集群不存在RDMA网络,网络环境自适应单元则不改变分布式训练任务的网络环境;
[0023]网络环境重置模块,用于在训练集群存在RDMA网络时,获取RDMA网络信息并据此将分布式训练任务的网络环境重置为RDMA网络。
[0024]另一方面,本专利技术实施例提供一种自适应RDMA网络的分布式训练方法。
[0025]上述的自适应RDMA网络的分布式训练方法,包括:
[0026]当分布式训练任务被调度到训练集群时,
[0027]在分布式训练启动前,
[0028]或,
[0029]在分布式训练启动后,即训练集群各计算节点分别启动对应子任务的训练应用程序后,且在各本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自适应RDMA网络的分布式机器学习系统,其特征在于,包括:网络环境自适应单元和分布式训练执行单元;其中,网络环境自适应单元,用于检测训练集群网络环境以及根据检测自适应地选择训练集群网络用于分布式训练任务通信;分布式训练执行单元,则用于在所述网络环境自适应单元为分布式训练任务确定网络环境后在确定的网络环境下执行分布式训练任务。2.根据权利要求1所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,所述网络环境自适应单元,包括网络检测模块和网络环境重置模块;网络检测模块用于检测训练集群是否存在RDMA网络,即检测训练集群各计算节点是否接入RDMA网络信息;若训练集群存在RDMA网络,网络环境自适应单元则通过网络环境重置模块为分布式训练任务选择RDMA网络;若训练集群不存在RDMA网络,网络环境自适应单元则不改变分布式训练任务的网络环境。3.根据权利要求2所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,所述网络环境重置模块根据其更新分布式训练任务的环境配置参数,即训练集群RDMA网络信息替换分布式训练任务环境配置参数中的默认网络连接参数,实现网络的重置选择。4.根据权利要求1所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,所述集群的计算节点,还包括参数服务器节点,用于负责维护全局共享的参数。5.根据权利要求1所述的一种自适应RDMA网络的分布式机器学习系统,其特征在于,所述分布式训练任务在容器云平台部署时,所述集群的计算节点为容器/容器组。6.一种自适应RDMA网...

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

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

1