System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种多作业分布式训练系统及方法、存储服务器、计算机设备、可编程交换机、计算机可读存储介质以及计算机程序产品。
技术介绍
1、训练深度神经网络是一项庞大的任务,涉及到大量的数据和计算。单机训练已经无法满足训练需求,基于多机的分布式训练(distributed training,dt)已经成为了研究热点。
2、目前,在分布式训练的网络中用于执行训练任务的多个gpu在本地训练深度神经网络,每个gpu将计算得到的梯度发送到参数服务器进行梯度聚合。随后,参数服务器会将聚合后的梯度发送给每个gpu,每个gpu基于获取的聚合梯度进行下一次迭代训练。由于在分布式训练期间网络传输的数据流量很大,所以通信开销成为主要瓶颈,例如在训练的过程中超过一半的时间进行数据通信,通信开销限制了分布式训练作业的效率和可扩展性。
3、所以,在分布式训练的网络中,如何减少通信开销从而提高分布式训练的效率和可扩展性是亟待解决的技术问题。
技术实现思路
1、鉴于以上所述相关技术的缺点,本申请的目的在于提供一种多作业分布式训练系统及方法、存储服务器、计算机设备、、可编程交换机、计算机可读存储介质以及计算机程序产品,以解决在分布式训练的网络中如何减少通信开销从而提高分布式训练的效率和可扩展性的技术问题。
2、为实现上述目的及其他相关目的,本申请第一方面提供一种多作业分布式训练系统,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的
3、本申请第二方面提供一种多作业分布式训练方法,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,所述多作业分布式训练方法包括以下步骤:为每一训练任务分配id以定位各所述训练任务的训练数据;其中,每一训练任务由一个计算节点来完成;所述训练数据通过一存储服务模块管理,所述存储服务模块用于依据每一训练任务的id及其迭代次数为各所述训练任务分发训练数据;获取计算任务的训练数据以令所述计算节点进行梯度计算以获得梯度数据并发送至网络;从网络中获取的每一训练任务对应的梯度数据进行聚合计算以得到聚合数据并通过网络广播至网络中;所述计算节点从网络中接收聚合数据以执行下一迭代的训练。
4、本申请第三方面提供一种存储服务器,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,所述存储服务器包括:存储器,用于存储用于对深度神经网络进行分布式训练的训练数据;处理器,用于管理存储的训练数据并依据每一训练任务的id及其迭代次数为各所述训练任务分发训练数据;其中,每一训练任务的id用于定位各所述训练任务的训练数据,每一训练任务由一个计算节点来完成;所述计算节点依据分发的对应一训练任务的训练数据进行梯度计算以得到梯度数据并发送至网络以及从所述网络中获取聚合数据;所述聚合数据是通过一可编程交换机进行聚合计算得到的。
5、本申请第四方面提供一种计算机设备,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,所述计算机设备包括:存储器;处理器,用于获取分发的对应一训练任务的训练数据以令所述计算节点进行梯度计算,并将所述计算节点得到的梯度数据发送至网络;以及从网络中接收聚合数据并发送至各计算节点;其中,每一训练任务由一个计算节点来完成;其中,对应一训练任务的训练数据是通过一存储服务器依据每一训练任务的id及其迭代次数为各所述训练任务分发的;每一训练任务的id用于定位各所述训练任务的训练数据;所述聚合数据是通过一可编程交换机进行聚合计算得到的。
6、本申请第五方面提供一种计算机设备,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,所述计算机设备包括:存储器;处理器,用于为每一训练任务分配id以定位各所述训练任务的训练数据,其中,每一训练任务由一个计算节点来完成;其中,对应一训练任务的训练数据是通过一存储服务器依据每一训练任务的id及其迭代次数为各所述训练任务分发的;所述计算节点依据分发的对应一训练任务的训练数据进行梯度计算以得到梯度数据并发送至网络以及从所述网络中获取聚合数据;所述聚合数据是通过一可编程交换机进行聚合计算得到的。
7、本申请第六方面提供一种可编程交换机,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,所述可编程交换机包括:网络端口;聚合模块,用于依据从所述网络端口获取的每一训练任务对应的梯度数据进行聚合计算以得到所述聚合数据,并通过所述网络端口将所述聚合数据发送至网络中的各计算节点中;其中,每一训练任务由一个计算节点来完成;其中,对应一训练任务的训练数据是通过一存储服务器依据每一训练任务的id及其迭代次数为各所述训练任务分发的;每一训练任务的id用于定位各所述训练任务的训练数据;所述梯度数据是各所述计算节点依据分配的对应一训练任务的训练数据进行梯度计算获得的。
8、本申请第七方面提供一种计算机设备,包括:存储装置,用于存储至少一个程序;处理装置,与所述存储装置相连,用于自所述存储装置中调用所述至少一个程序并执行时实现如本申请第二方面公开的任一实施例中所述的多作业分布式训练方法。
9、本申请第八方面提供一种计算机可读存储介质,存储有至少一个程序,所述至少一个程序被计算机的处理器调用并执行时实现如本申请第二方面公开的任一实施例中所述的多作业分布式训练方法。
10、本申请第九方面提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如本申请第二方面公开的任一实施例中所述的多作业分布式训练方法。
11、综上所述,本申请提供的多作业分布式训练系统及方法、存储服务器、计算机设备、、可编程交换机、计算机可读存储介质以及计算机程序产品,
12、利用交换机模块来进行梯度数据的聚合并将聚合后的聚合数据发送至网络中的各个计算节点中以及利用存储服务模块对训练数据进行管理,如此,可减少参数服务器的通信开销以及提高网络的利用率进而提高分布式训练的效率和可扩展性。
13、进一步,通过同时发送不同计算节点相同的梯度块来实现聚合时最短的等本文档来自技高网...
【技术保护点】
1.一种多作业分布式训练系统,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,其特征在于,所述多作业分布式训练系统包括:
2.根据权利要求1所述的多作业分布式训练系统,其特征在于,所述命名控制模块还用于确定每一训练任务的ID及其迭代次数与所述训练数据的对应关系。
3.根据权利要求2所述的多作业分布式训练系统,其特征在于,所述命名控制模块还将所述对应关系发送至所述存储服务模块。
4.根据权利要求3所述的多作业分布式训练系统,其特征在于,所述存储服务模块依据每一训练任务的ID及其迭代次数为各所述训练任务分发训练数据的方式包括:基于所述对应关系和所述主机代理模块生成的一训练任务的请求数据为所述训练任务分发训练数据;
5.根据权利要求1所述的多作业分布式训练系统,其特征在于,所述主机代理模块还用于将发生故障的计算节点的故障报告发送至所述命名控制模块。
6.根据权利要求5所述的多作业分布式训练系统,其特征在于,所述命名控制模块还用于根据所获取计算节点的故障报告确定所述网络中可正常工作
7.根据权利要求6所述的多作业分布式训练系统,其特征在于,所述存储服务模块将接收到可正常工作的计算节点的数量重新分配训练数据的方式包括:将计算节点发生故障时的迭代次数对应的所有训练数据按照可正常工作的计算节点的数量进行重新分配。
8.根据权利要求5所述的多作业分布式训练系统,其特征在于,当一计算节点在预设时间内向所述主机代理模块重新传输多次梯度数据时,所述主机代理模块生成该计算节点的故障报告。
9.根据权利要求1所述的多作业分布式训练系统,其特征在于,所述梯度数据包括一训练任务的ID和梯度块;其中,所述梯度块是将一计算节点执行所述训练任务得到的梯度按照预设的分块规则进行分块得到的。
10.根据权利要求1或9所述的多作业分布式训练系统,其特征在于,所述主机代理模块还用于根据接收到的各计算节点发送的梯度数据生成各计算节点的位图并发送至所述交换机模块;其中,各所述计算节点的位图利用一数据位置处的数值0或数值1表示;数值1表示接收到该数据位置所对应的梯度块;数值0表示未接收到该数据位置所对应的梯度块。
11.根据权利要求10所述的多作业分布式训练系统,其特征在于,所述交换机模块还用于根据接收的各计算节点的位图生成全局位图并发送至所述主机代理模块;其中,所述全局位图利用一数据位置处的数值0或数值1表示,数值1表示所述主机代理模块全部接收到各计算节点发送的该数据位置对应的梯度块;数值0表示所述主机代理模块未全部接收到各计算节点发送的该数据位置对应的梯度块。
12.根据权利要求11所述的多作业分布式训练系统,其特征在于,所述主机代理模块将所述计算节点得到的梯度数据发送至网络的步骤包括:将所述全局位图中数值为1的数据位置对应的各计算节点的梯度数据发送至所述交换机模块。
13.根据权利要求12所述的多作业分布式训练系统,其特征在于,所述主机代理模块还用于在一次迭代过程中接收到最后一个梯度数据时,同时启动所述网络中所有的计算节点以使各计算节点开始下一次迭代。
14.根据权利要求9所述的多作业分布式训练系统,其特征在于,所述交换机模块依据从网络中获取的每一训练任务对应的梯度数据进行聚合计算的方式包括:为每一梯度数据所对应的一或多个待聚合数据包提供聚合器以进行聚合计算;其中,所述待聚合数据包是所述主机代理模块根据交换机的聚合器中寄存器的数量得到的。
15.根据权利要求14所述的多作业分布式训练系统,其特征在于,所述交换机模块还用于在确定一次迭代过程中所有训练任务的梯度数据均聚合完成后,将聚合后的所述聚合数据进行重新循环以读取所述聚合数据。
16.根据权利要求14所述的多作业分布式训练系统,其特征在于,所述交换机模块还用于将重传的待聚合数据包转发至参数服务器模块,以供所述参数服务器模块将聚合数据发送至所述交换机模块。
17.根据权利要求16所述的多作业分布式训练系统,其特征在于,所述参数服务器模块配置在所述网络中的任意一个计算节点上。
18.一种多作业分布式训练方法,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,其特征在于,所述多作业分布式训练方法包括以下步骤:
19.一种存储服务器,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分...
【技术特征摘要】
1.一种多作业分布式训练系统,应用于对深度神经网络进行分布式训练的网络中,所述网络中包含多个用于参与所述分布式训练的计算节点,其特征在于,所述多作业分布式训练系统包括:
2.根据权利要求1所述的多作业分布式训练系统,其特征在于,所述命名控制模块还用于确定每一训练任务的id及其迭代次数与所述训练数据的对应关系。
3.根据权利要求2所述的多作业分布式训练系统,其特征在于,所述命名控制模块还将所述对应关系发送至所述存储服务模块。
4.根据权利要求3所述的多作业分布式训练系统,其特征在于,所述存储服务模块依据每一训练任务的id及其迭代次数为各所述训练任务分发训练数据的方式包括:基于所述对应关系和所述主机代理模块生成的一训练任务的请求数据为所述训练任务分发训练数据;
5.根据权利要求1所述的多作业分布式训练系统,其特征在于,所述主机代理模块还用于将发生故障的计算节点的故障报告发送至所述命名控制模块。
6.根据权利要求5所述的多作业分布式训练系统,其特征在于,所述命名控制模块还用于根据所获取计算节点的故障报告确定所述网络中可正常工作的计算节点的数量并发送至所述存储服务模块,以供所述存储服务模块根据可正常工作的计算节点的数量重新分配训练数据。
7.根据权利要求6所述的多作业分布式训练系统,其特征在于,所述存储服务模块将接收到可正常工作的计算节点的数量重新分配训练数据的方式包括:将计算节点发生故障时的迭代次数对应的所有训练数据按照可正常工作的计算节点的数量进行重新分配。
8.根据权利要求5所述的多作业分布式训练系统,其特征在于,当一计算节点在预设时间内向所述主机代理模块重新传输多次梯度数据时,所述主机代理模块生成该计算节点的故障报告。
9.根据权利要求1所述的多作业分布式训练系统,其特征在于,所述梯度数据包括一训练任务的id和梯度块;其中,所述梯度块是将一计算节点执行所述训练任务得到的梯度按照预设的分块规则进行分块得到的。
10.根据权利要求1或9所述的多作业分布式训练系统,其特征在于,所述主机代理模块还用于根据接收到的各计算节点发送的梯度数据生成各计算节点的位图并发送至所述交换机模块;其中,各所述计算节点的位图利用一数据位置处的数值0或数值1表示;数值1表示接收到该数据位置所对应的梯度块;数值0表示未接收到该数据位置所对应的梯度块。
11.根据权利要求10所述的多作业分布式训练系统,其特征在于,所述交换机模块还用于根据接收的各计算节点的位图生成全局位图并发送至所述主机代理模块;其中,所述全局位图利用一数据位置处的数值0或数值1表示,数值1表示所述主机代理模块全部接收到各计算节点发送的该数据位置对应的梯度块;数值0表示所述主机代理模块未全部接收到各计算节点发送的该数据位置对应的梯度块。
12.根据权...
【专利技术属性】
技术研发人员:赵伯罕,徐葳,李强,龙利民,胡勇超,
申请(专利权)人:图灵人工智能研究院南京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。