梯度融合的方法、装置及计算机可读存储介质制造方法及图纸

技术编号:19747309 阅读:39 留言:0更新日期:2018-12-12 05:05
本发明专利技术公开了一种梯度融合的方法,确定深度学习分布式训练架构中各个节点上的输入张量,然后将输入张量逐个转移到融合缓冲区,判断融合缓冲区的输入张量的数量是否大于预设张量数量,若大于,则对融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量。可见,本发明专利技术根据融合缓冲区内张量数量与预设张量数量的大小来决定是否继续转移张量,相较于根据缓冲区内全部张量的大小进行梯度融合的方法,解决了张量大小差异较大导致阈值难以选取的问题,避免了计算融合缓冲区内各个张量大小并累加的过程,因而简化了梯度融合的过程并提高了效率。本发明专利技术还提供了一种梯度融合的装置及计算机可读存储介质,其作用与上述方法的作用相对应。

【技术实现步骤摘要】
梯度融合的方法、装置及计算机可读存储介质
本专利技术涉及深度学习领域,特别涉及一种梯度融合的方法、装置及计算机可读存储介质。
技术介绍
深度学习在过去几年中取得了长足的发展,尤其在语音、图像、机器翻译、自然语言处理等领域更是取得了飞跃式的提升,深度学习训练需要海量的数据,这就需要超大规模参数的网络模型拟合。如果训练数据不足,如果网络模型参数太少,会造成欠拟合,模型精度较低。目前常见网络模型参数已经上亿,参数大小达到数GB。数据并行训练方式要求每个GPU节点拥有一份完整的模型参数副本,并在融合梯度时发送和接收完整的梯度数据,巨大的通信数据量给多机多卡并行训练带来了极大的网络通信压力。分布式节点可以通过参数服务器架构通信。这种架构下,在每个迭代中,每个worker从mini-batch中读取自己的那部分,计算属于自己的梯度,并将这些梯度发送到一个或多个参数服务器。参数服务器会聚合来自设备的所有梯度,并等待所有设备完成,然后在下一次迭代中计算新模型,再广播给所有设备。这种架构参数服务器的网络带宽是瓶颈,容易造成网络堵塞。allreduce算法原是HPC领域一种比较成熟的通信算法,百度将其引入到深度学习训练框架中,进一步优化,开发了一种称环形归约的通信模式——Ringallreduce。Ringallreduce完全抛弃了参数服务器,通过均衡网络负载来减少通信时间,理论上可以做到线性加速。此外Ring-allreduce还可以将深层神经网络中较低层的梯度计算与高层梯度的传输重叠,从而进一步减少训练时间。allreduce算法被越来越多的应用的深度学习框架中,比如NVIDIACaffe,以及Horovod,其中Horovod是基于TensorFlow的一种分布式训练通信框架。虽然allreduce算法在参数足够多的情况下可以最大化利用网络,但工作效率和速度都不如参数少的情况,解决这个问题的一个重要方法就是梯度融合梯度被逐个复制到一个缓冲区中,随后这个缓冲区进行通信,而不是一个接一个地传递梯度。通信之后,缓冲区中的更新值将被复制回每个梯度。在这种方法中,梯度融合在一起进行通信,可以有效减轻延迟问题,目前已经在NVIDIACaffe和Horovod中实现。为实现梯度融合,NVIDIACaffe和Horovod都选择了缓冲区的阈值大小来控制Allreduce消息大小。以Horovod为例,梯度融合的方法如下(张量是一种数据类型,这里张量指的是梯度):确定融合缓冲区阈值,并初始化融合缓冲区大小为0;确定要归约哪些张量;对于每个张量,计算归约张量的大小,若融合缓冲区大小小于等于缓冲区阈值,则将所选张量的数据复制到融合缓冲区;若融合缓冲区大小大于缓冲区阈值,则在融合缓冲区上执行allreduce操作;执行完allreduce操作后,将融合缓冲区中的数据复制到输出张量中;重复直到没有需要归约的张量。但是,由于模型中的各梯度的大小差别很大,融合梯度的最佳缓冲区阈值很难实现,必须手动调整缓冲区的阈值大小以获得最佳性能,这通常需要大量实验,尤其是当DNN模型有很多层时,可见该方法中的缓冲区阈值的选取较为困难,选取起来比较复杂。
技术实现思路
本专利技术的目的是提供一种梯度融合的方法、装置及计算机可读存储介质,用以解决传统的梯度融合方法中缓冲区阈值的选取较为困难,选取过程复杂的问题。为解决上述技术问题,本专利技术提供了一种梯度融合的方法,应用于深度学习分布式训练中,包括:预先确定深度学习分布式训练架构中各个节点上的输入张量;将所述输入张量逐个转移到融合缓冲区,并判断所述融合缓冲区内的输入张量的数量是否大于预设张量数量;若所述输入张量的数量大于预设张量数量,则对所述融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量。其中,在所述预先确定需要进行allreduce算法处理的多个输入张量之前,包括:初始化融合缓冲区。其中,所述深度学习分布式训练结构中各个节点都设置有所述融合缓冲区。其中,在所述若所述输入张量的数量大于预设张量数量,则对所述融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量之后,包括:将所述输出张量转移到与所述融合缓冲区相对应的节点上。此外,本专利技术还提供了一种梯度融合的装置,应用于深度学习分布式训练中,包括:输入张量确定模块:用于预先确定深度学习分布式训练架构中各个节点上的输入张量;输入张量转移模块:用于将所述输入张量逐个转移到融合缓冲区,并判断所述融合缓冲区内的输入张量的数量是否大于预设张量数量;allreduce算法模块:用于若所述输入张量的数量大于预设张量数量,则对所述融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量。其中,所述梯度融合的装置还包括:融合缓冲区初始化模块:用于初始化融合缓冲区。其中,所述梯度融合的装置还包括:输出张量转移模块:用于将所述输出张量转移到与所述融合缓冲区相对应的节点上。最后,本专利技术还提供了一种计算机可读存储介质,应用于深度学习分布式训练中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。本专利技术所提供的一种梯度融合的方法,在深度学习分布式训练的过程中,预先确定深度学习分布式训练架构中各个节点上的输入张量,然后将输入张量逐个转移到融合缓冲区,并判断融合缓冲区的输入张量的数量是否大于预设张量数量,若大于,则对融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量。可见,本专利技术提供的方法,在梯度融合时,根据融合缓冲区内张量数量与预设张量数量的大小关系来决定是否继续向融合缓冲区转移张量,相较于传统的根据缓冲区内各个张量大小的和来进行梯度融合的方法,解决了由于各个张量大小差异较大导致的阈值难以选取的问题,还避免了计算融合缓冲区内各个张量大小并累加的过程,因而简化了梯度融合的过程并提高了梯度融合的效率。本专利技术还提供了一种梯度融合的装置及计算机可读存储介质,其作用与上述方法的作用相对应,这里不再赘述。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的一种梯度融合的方法实施例的实现流程图;图2为本专利技术提供一种梯度融合中张量数量对性能影响的实验结果图;图3为本专利技术提供的一种梯度融合的装置实施例的结构框图。具体实施方式本专利技术的核心是提供一种梯度融合的方法、装置及计算机可读存储介质,简化了梯度融合的过程并提高了梯度融合的效率。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。下面对本专利技术提供的一种梯度融合的方法实施例进行介绍,参见图1,该实施例应用于深度学习分布式训练中,具体包括:步骤S101:预先确定深度学习分布式训练架构中各个节点上的输入张量。具体的,在步本文档来自技高网
...

【技术保护点】
1.一种梯度融合的方法,应用于深度学习分布式训练中,其特征在于,包括:预先确定深度学习分布式训练架构中各个节点上的输入张量;将所述输入张量逐个转移到融合缓冲区,并判断所述融合缓冲区内的输入张量的数量是否大于预设张量数量;若所述输入张量的数量大于预设张量数量,则对所述融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量。

【技术特征摘要】
1.一种梯度融合的方法,应用于深度学习分布式训练中,其特征在于,包括:预先确定深度学习分布式训练架构中各个节点上的输入张量;将所述输入张量逐个转移到融合缓冲区,并判断所述融合缓冲区内的输入张量的数量是否大于预设张量数量;若所述输入张量的数量大于预设张量数量,则对所述融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量。2.如权利要求1所述的方法,其特征在于,在所述预先确定需要进行allreduce算法处理的多个输入张量之前,包括:初始化融合缓冲区。3.如权利要求1所述的方法,其特征在于,所述深度学习分布式训练结构中各个节点都设置有所述融合缓冲区。4.如权利要求3所述的方法,其特征在于,在所述若所述输入张量的数量大于预设张量数量,则对所述融合缓冲区内的输入张量进行allreduce算法处理,得到输出张量之后,包括:将所述输出张量转移到与所述融合缓冲区相对应的节点上。5.一种梯...

【专利技术属性】
技术研发人员:黄雪刘姝
申请(专利权)人:浪潮北京电子信息产业有限公司
类型:发明
国别省市:北京,11

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

1