一种深度学习分布式框架用的数据交换方法与装置制造方法及图纸

技术编号:20362748 阅读:17 留言:0更新日期:2019-02-16 16:28
本发明专利技术公开了一种深度学习分布式框架用的数据交换方法与装置,包括:使每个计算单元持续生成待交换数据;将待交换数据存入计算单元的缓冲区;使用比例因子压缩待交换数据的精度范围;根据计算单元的参数确定交换阈值;当缓冲区内存储的待交换数据达到交换阈值时,交换待交换数据。本发明专利技术的技术方案能够在不同计算单元或不同类型的计算单元之间按照需要交换数据,在保证数据交换时限的前提下充分利用缓存,提高数据通信性能和效率,使云计算环境下大规模数据训练的性能表现最大化。

【技术实现步骤摘要】
一种深度学习分布式框架用的数据交换方法与装置
本专利技术涉及计算机领域,并且更具体地,特别是涉及一种深度学习分布式框架用的数据交换方法与装置。
技术介绍
在现有的深度学习模型中,模型为了获取更高的计算精度而变得越来越复杂。随着模型变得复杂,隐藏层的个数也增加到了多达152层,计算量相对于早期的深度学习模型也增加了许多。除了模型计算复杂度的增加以外,训练集中的样本数也呈现爆炸式的增长。如何能够快速的对大规模的数据进行训练并及时获得模型训练的参数结果,是目前所有的深度学习模型分布式算法设计过程中急需解决的问题之一。现有的深度学习数学模型基本上都可以实现在多GPU上的计算,但是扩展到多机多卡的情况时,根据数学模型算法的需要,不同GPU的计算结果需要进行规约处理,并将规约后的结果广播给所有GPU。现有技术中已经存在TensorFlow标准分布式方法ParameterServer和Uber开发的开源软件Horovod,Horovod为TensorFlow分布式框架提供了高性能ring-allreduce接口。然而,现有技术的参数服务器的分布式框架易造成网络堵塞、跨机通信亲和性低、并且难以编写;另外,由于深度神经网络模型训练过程中需要频繁的对少量数据进行通信操作,无法充分利用带宽的性能,导致不同GPU之间的数据通信性能和效率很低。针对现有技术中计算单元之间的数据通信性能和效率很低的问题,目前尚未有有效的解决方案。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种深度学习分布式框架用的数据交换方法与装置,能够在不同计算单元或不同类型的计算单元之间按照需要交换数据,在保证数据交换时限的前提下充分利用缓存,提高数据通信性能和效率,使云计算环境下大规模数据训练的性能表现最大化。基于上述目的,本专利技术实施例的一方面提供了一种深度学习分布式框架用的数据交换方法,包括以下步骤:使每个计算单元持续生成待交换数据;将待交换数据存入计算单元的缓冲区;使用比例因子压缩待交换数据的精度范围;根据计算单元的参数确定交换阈值;当缓冲区内存储的待交换数据达到交换阈值时,交换待交换数据。在一些实施方式中,待交换数据为梯度参数。在一些实施方式中,计算单元的参数包括以下至少之一:处理器数量、计算模型层数量、反向传播平均耗时、通信延迟;根据计算单元的参数确定交换阈值为:根据处理器数量、计算模型层数量、反向传播平均耗时、通信延迟中至少之一来确定交换阈值。在一些实施方式中,通信延迟由单次通信的信息量决定。在一些实施方式中,交换阈值其中P为处理器数量,L为计算模型层数量,Eavg,b为第反向传播过程平均耗时,α为通信延迟。在一些实施方式中,使用比例因子压缩待交换数据的精度范围包括:使用比例因子正向处理待交换数据;通过修改数据类型来压缩处理过的待交换数据的精度。在一些实施方式中,在待交换数据被交换之后,还执行以下步骤:通过修改数据类型来解压缩处理过的待交换数据的精度;使用比例因子对处理过的待交换数据进行逆向处理。在一些实施方式中,比例因子由待交换数据的取值范围与其数据类型的精度范围之比决定。本专利技术实施例的另一方面,还提供了一种深度学习分布式框架用的数据交换装置,包括:存储器,存储有可运行的程序代码;至少一个处理器,在运行存储器存储的程序代码时执行上述的数据交换方法。本专利技术实施例的另一方面,还提供了一种计算系统,包括多个计算单元和上述的数据交换装置。本专利技术具有以下有益技术效果:本专利技术实施例提供的深度学习分布式框架用的数据交换方法与装置,通过使每个计算单元持续生成待交换数据,将待交换数据存入计算单元的缓冲区,使用比例因子压缩待交换数据的精度范围,根据计算单元的参数确定交换阈值,当缓冲区内存储的待交换数据达到交换阈值时交换待交换数据的技术方案,能够在不同计算单元或不同类型的计算单元之间按照需要交换数据,在保证数据交换时限的前提下充分利用缓存,提高数据通信性能和效率,使云计算环境下大规模数据训练的性能表现最大化。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的深度学习分布式框架用的数据交换方法的流程示意图;图2为本专利技术提供的深度学习分布式框架用的数据交换方法的梯度参数-交换阈值折线图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”、“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。基于上述目的,本专利技术实施例的第一个方面,提出了一种能够在不同计算单元或不同类型的计算单元之间按照需要交换数据的方法的实施例。图1示出的是本专利技术提供的深度学习分布式框架用的数据交换方法的实施例的流程示意图。所述数据交换方法,包括以下步骤:步骤S101,使每个计算单元持续生成待交换数据;步骤S103,将待交换数据存入计算单元的缓冲区;步骤S105,使用比例因子压缩待交换数据的精度范围;步骤S107,根据计算单元的参数确定交换阈值;步骤S109,当缓冲区内存储的待交换数据达到交换阈值时,交换待交换数据。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。在一些实施方式中,待交换数据为梯度参数。在模型训练过程中需要进行频繁的梯度参数交换。在传统的分布式深度学习模型中,每个梯度参数计算结束后就开始数据交换,这种方式效率较低,每次传递的消息大小无法填充整个缓冲区,因此无法充分利用缓冲区的性能。针对这一问题,本专利技术实施例采用了梯度融合的方法,每次准备好进行数据通信的梯度参数先放入到缓冲区中,当存入的数据大小达到预先设定的阈值时,再进行数据通信的操作,这样可以充分利用缓冲区,进一步提升模型数据通信的性能。在一些实施方式中,计算单元的参数包括以下至少之一:处理器数量、计算模型层数量、反向传播平均耗时、通信延迟;根据计算单元的参数确定交换阈值为:根据处理器数量、计算模型层数量、反向传播平均耗时、通信延迟中至少之一来确定交换阈值。本专利技术实施例中的计算单元是GPU,并且不同GPU之间的Allreduce操作采用NCCL工具包实现。NCCL工具包是执行Allreduce、Gather、和Broadcast操作的工具包,本专利技术实施例中的Allreduce采用了Ring-Allreduce方法,针对GPU进行底层优化,在GPU之间进行Allreduce操作时性能优于原始的Allreduce算法。在一些实施方式中,通信延迟由单次通信的信息本文档来自技高网...

【技术保护点】
1.一种深度学习分布式框架用的数据交换方法,其特征在于,包括以下步骤:使每个计算单元持续生成待交换数据;将所述待交换数据存入所述计算单元的缓冲区;使用比例因子压缩所述待交换数据的精度范围;根据所述计算单元的参数确定交换阈值;当所述缓冲区内存储的所述待交换数据达到所述交换阈值时,交换所述待交换数据。

【技术特征摘要】
1.一种深度学习分布式框架用的数据交换方法,其特征在于,包括以下步骤:使每个计算单元持续生成待交换数据;将所述待交换数据存入所述计算单元的缓冲区;使用比例因子压缩所述待交换数据的精度范围;根据所述计算单元的参数确定交换阈值;当所述缓冲区内存储的所述待交换数据达到所述交换阈值时,交换所述待交换数据。2.根据权利要求1所述的方法,其特征在于,所述待交换数据为梯度参数。3.根据权利要求1所述的方法,其特征在于,所述计算单元的参数包括以下至少之一:处理器数量、计算模型层数量、反向传播平均耗时、通信延迟;根据所述计算单元的参数确定交换阈值为:根据处理器数量、计算模型层数量、反向传播平均耗时、通信延迟中至少之一来确定交换阈值。4.根据权利要求3所述的方法,其特征在于,所述通信延迟由单次通信的信息量决定。5.根据权利要求3所述的方法,其特征在于,所述交换阈值其中P为处理器数量,L为计算模型层数量,Eavg,b...

【专利技术属性】
技术研发人员:赵旭东景璐
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1