CN107578094A - 基于参数服务器和fpga实现神经网络分布式训练的方法 - Google Patents

基于参数服务器和fpga实现神经网络分布式训练的方法 Download PDF

Info

Publication number
CN107578094A
CN107578094A CN201711008009.7A CN201711008009A CN107578094A CN 107578094 A CN107578094 A CN 107578094A CN 201711008009 A CN201711008009 A CN 201711008009A CN 107578094 A CN107578094 A CN 107578094A
Authority
CN
China
Prior art keywords
parameter server
parameter
fpga
training
neutral net
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711008009.7A
Other languages
English (en)
Inventor
周玉山
李朋
于治楼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinan Inspur Hi Tech Investment and Development Co Ltd
Original Assignee
Jinan Inspur Hi Tech Investment and Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jinan Inspur Hi Tech Investment and Development Co Ltd filed Critical Jinan Inspur Hi Tech Investment and Development Co Ltd
Priority to CN201711008009.7A priority Critical patent/CN107578094A/zh
Publication of CN107578094A publication Critical patent/CN107578094A/zh
Pending legal-status Critical Current

Links

Abstract

本发明提供一种基于参数服务器和FPGA实现神经网络分布式训练的方法,属于神经网络训练技术领域,该方法基于参数服务器和FPGA,其具体实现过程:通过FPGA编程建立神经网络模型,实现神经网络的前向传递和后向传播;以FPGA为主体的计算节点从训练集中获取一部分训练集子集进行训练,计算局部梯度,并push到参数服务器中的相应参数服务器节点,与参数服务器内存储的参数计算得出当前参数,完成参数更新的过程;参数服务器将当前参数pull到对应的计算节点,继续训练神经网络;参数服务器综合管理分布式训练的结果,得出最后的训练模型。本方法可以大幅提升深度学习效率,有效解决模型参数更新所需的巨大带宽、以及如何提高并行度、减少同步等待造成的延迟问题。

Description

基于参数服务器和FPGA实现神经网络分布式训练的方法
技术领域
本发明涉及神经网络训练技术领域,具体地说是一种基于参数服务器和FPGA实现神经网络分布式训练的方法。
背景技术
在大型数据集上进行训练学习的现代神经网络架构已经在广泛的多种领域获取可观的结果,领域涵盖从语音、图像、自然语言处理、到业界关注的诸如欺诈检测和推荐系统这样的应用等各个方面。但是训练这些神经网络模型在计算规模上有严格要求。尽管近些年来在GPU硬件、网络架构和训练方法上均取得了重大的进步,但事实上在单一机器上,网络训练所需要的时间仍然长得不切实际。幸运的是,我们不仅限于单个机器:大量工作和研究已经使有效的神经网络分布式训练成为了可能。
参数服务器是一个编程框架,用于方便分布式并行程序的编写,其中重点在于对大规模参数的分布式存储和协同的支持。机器学习系统相比于其他系统而言,有一些自己的独特特点。如:迭代性:模型的更新并非一次完成,需要循环迭代多次;容错性:即使在每个循环中产生一些错误,模型最终仍能收敛;参数收敛的非均匀性:有些参数几轮迭代就会收敛,而有的参数却需要上百轮迭代。
另外,工业界需要训练大型的机器学习模型,一些广泛应用的特定的模型在规模上有两个特点:参数很大,超过单个机器的容纳的能力(大型LR和神经网络);训练数据太大,需要并行提速。因此,在这种需求下,类似MapReduce的框架就不能满足需求了。而设计一个上述系统时,我们需要解决很多问题。类似频繁访问修改模型参数所需要消耗的巨大带宽,以及如何提高并行度,减少同步等待造成的延迟等等。而参数服务器即为解决这种需求提出的。Parameter Server适用于大规模深度学习系统、大规模Logistic Regression系统、大规模主题模型、大规模矩阵分解等依赖SGD或L-BFGS最优化的算法。
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,是一种计算密集型加速部件,可以将算法映射到 FPGA 上实现并行硬件加速。FPGA 上所设计的各个硬件模块可以并行执行。各个硬件模块输入输出的相互连接以及 FPGA 所提供的流水结构可以很好地和神经网络相匹配,充分利用算法网络结构内部的并行性,在提高运算速度的同时缩小了能耗。由于深度神经网络的计算代价较大,现有的神经网络模型大都是利用GPU进行运算加速。随着相关应用的普及,深度神经网络模型在嵌入式系统上部署的需求越来越迫切,因此利用FPGA代替GPU进行CNN模型的加速计算成为了另一种深度学习模型的加速方案。
发明内容
本发明的技术任务是解决现有技术的不足,为解决模型参数更新所需的巨大带宽、以及如何提高并行度、减少同步等待造成的延迟等问题,提供一种基于参数服务器和FPGA实现神经网络分布式训练的方法。
本发明解决其技术问题所采用的技术方案是:
一种基于参数服务器和FPGA实现神经网络分布式训练的方法,该方法基于参数服务器实现分布式训练中参数的更新管理,随后在FPGA上训练神经网络的参数,实现神经网络的加速训练。
该方法的具体实现过程包括:
1)通过FPGA编程建立神经网络模型,实现神经网络的前向传递和后向传播;
2)以FPGA为主体的计算节点从训练集中获取一部分训练集子集进行训练,计算局部梯度,并push到参数服务器中的相应参数服务器节点,与参数服务器内存储的参数计算得出当前参数,完成参数更新的过程;
3)参数服务器将当前参数pull到对应的计算节点,继续训练神经网络;
4)参数服务器综合管理分布式训练的结果,得出最后的训练模型。
所涉及步骤2)中,计算节点的数量为至少一个,每个计算节点分别从训练集中获取一部分训练集子集进行训练。
所涉及参数服务器节点的数量为至少一个,至少一个参数服务器节点分布式存储于参数服务器,至少一个参数服务器节点同时与至少一个计算节点一一对接,完成训练的并行化。
基于上述方法,本发明还提供一种基于参数服务器和FPGA实现神经网络分布式训练的系统,该系统基于:
参数服务器,参数服务器用于维持所有参数的更新;
参数服务器节点,存储于参数服务器;
计算节点,该计算节点以FPGA为主体,负责对分配到自己本地的训练数据进行训练;
网络交换机,上述参数服务器节点与对应的计算节点通过网络交换机进行交流并更新存储参数。
所涉及参数服务器节点的数量为至少一个,至少一个参数服务器节点分布式存储于参数服务器。
所涉及计算节点的数量为至少一个,至少一个参数服务器节点同时与至少一个计算节点一一对接。
本发明的一种基于参数服务器和FPGA实现神经网络分布式训练的方法与现有技术相比所产生的有益效果是:
1)本发明的方法基于参数服务器和FPGA在神经网络训练中的并行加速作用,大幅提升深度学习效率,可以有效地解决模型参数更新所需的巨大带宽、以及如何提高并行度、减少同步等待造成的延迟等问题;
2)本发明还提供一种基于参数服务器和FPGA实现神经网络分布式训练的系统,其同样可以大幅提升深度学习效率,有效地解决模型参数更新所需的巨大带宽、以及如何提高并行度、减少同步等待造成的延迟等问题。
附图说明
附图1是本发明方法的具体实现流程框图;
附图2是本发明方法的迭代流程示意图;
附图3是本发明方法的具体实施流程图;
附图4是本发明系统的框架结构图。
附图中各标号表示:
1、参数服务器,2、参数服务器节点,3、计算节点,
4、网络交换机,5、训练集。
具体实施方式
为了更好的说明本发明,现结合具体实施例以及说明书附图对技术方案做进一步的说明。虽然实施例中记载了这些具体的实施方式,然其并非用以限定本发明,任何所述技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动和润饰,故本发明的保护范围当视权利要求书所界定者为准。
实施例一:
如附图所示,本发明的一种基于参数服务器和FPGA实现神经网络分布式训练的方法,该方法基于参数服务器1实现分布式训练中参数的更新管理,随后在FPGA上训练神经网络的参数,实现神经网络的加速训练。
结合附图1、2、3,该方法的具体实现过程包括:
S10:通过FPGA编程建立神经网络模型,实现神经网络的前向传递和后向传播;
S20:以FPGA为主体的计算节点3从训练集5中获取一部分训练集子集进行训练,计算局部梯度,并push到参数服务器1中的相应参数服务器节点2,与参数服务器1内存储的参数计算得出当前参数,完成参数更新的过程;
S30:参数服务器1将当前参数pull到对应的计算节点3,继续训练神经网络;
S40:参数服务器1综合管理分布式训练的结果,得出最后的训练模型。
所涉及步骤S20中,计算节点3的数量为至少一个,每个计算节点3分别从训练集中5获取一部分训练集子集进行训练。
所涉及参数服务器节点2的数量为至少一个,至少一个参数服务器节点2分布式存储于参数服务器1,至少一个参数服务器节点2同时与至少一个计算节点3一一对接,完成训练的并行化。
本发明的方法基于参数服务器和FPGA在神经网络训练中的并行加速作用,大幅提升深度学习效率,可以有效地解决模型参数更新所需的巨大带宽、以及如何提高并行度、减少同步等待造成的延迟等问题。
实施例二:
结合附图4,本发明还提供一种基于参数服务器和FPGA实现神经网络分布式训练的系统,该系统基于:
参数服务器1,用于维持所有参数的更新;
参数服务器节点2,存储于参数服务器1;
计算节点3,该计算节点3以FPGA为主体,负责对分配到自己本地的训练数据进行训练;
网络交换机4,上述参数服务器节点2与对应的计算节点3通过网络交换机4进行交流并更新存储参数。
所涉及参数服务器节点2的数量为至少一个,至少一个参数服务器节点2分布式存储于参数服务器1。
所涉及计算节点3的数量为至少一个,至少一个参数服务器节点2同时与至少一个计算节点3一一对接。附图以三个参数服务器节点2为例,相对的,附图以计算节点3为例,三个参数服务器节点2可以同时与三个计算节点3一一对接。
本发明的系统基于参数服务器和FPGA在神经网络训练中的并行加速作用,大幅提升深度学习效率,可以有效地解决模型参数更新所需的巨大带宽、以及如何提高并行度、减少同步等待造成的延迟等问题。
综上所述,以上两个实施例仅用以说明本发明的技术方案,而非对本发明保护范围的限制,尽管该具体实施方式部分对本发明作了详细地说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

Claims (7)

1.基于参数服务器和FPGA实现神经网络分布式训练的方法,其特征在于,该方法基于参数服务器实现分布式训练中参数的更新管理,随后在FPGA上训练神经网络的参数,实现神经网络的加速训练。
2.根据权利要求1所述的基于参数服务器和FPGA实现神经网络分布式训练的方法,其特征在于, 该方法的具体实现过程包括:
1)通过FPGA编程建立神经网络模型,实现神经网络的前向传递和后向传播;
2)以FPGA为主体的计算节点从训练集中获取一部分训练集子集进行训练,计算局部梯度,并push到参数服务器中的相应参数服务器节点,与参数服务器内存储的参数计算得出当前参数,完成参数更新的过程;
3)参数服务器将当前参数pull到对应的计算节点,继续训练神经网络;
4)参数服务器综合管理分布式训练的结果,得出最后的训练模型。
3.根据权利要求2所述的基于参数服务器和FPGA实现神经网络分布式训练的方法,其特征在于,在步骤2)中,所述计算节点的数量为至少一个,每个计算节点分别从训练集中获取一部分训练集子集进行训练。
4.根据权利要求2所述的基于参数服务器和FPGA实现神经网络分布式训练的方法,其特征在于,所述参数服务器节点的数量为至少一个,至少一个参数服务器节点分布式存储于参数服务器,至少一个参数服务器节点同时与至少一个计算节点一一对接,完成训练的并行化。
5.基于参数服务器和FPGA实现神经网络分布式训练的系统,其特征在于,该系统基于:
参数服务器,所述参数服务器用于维持所有参数的更新;
参数服务器节点,存储于参数服务器;
计算节点,所述计算节点以FPGA为主体,负责对分配到自己本地的训练数据进行训练;
网络交换机,上述参数服务器节点与对应的计算节点通过所述网络交换机进行交流并更新存储参数。
6.根据权利要求5所述的基于参数服务器和FPGA实现神经网络分布式训练的系统,其特征在于,所述参数服务器节点的数量为至少一个,至少一个参数服务器节点分布式存储于参数服务器。
7.根据权利要求6所述的基于参数服务器和FPGA实现神经网络分布式训练的系统,其特征在于,所述计算节点的数量为至少一个,至少一个参数服务器节点同时与至少一个计算节点一一对接。
CN201711008009.7A 2017-10-25 2017-10-25 基于参数服务器和fpga实现神经网络分布式训练的方法 Pending CN107578094A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711008009.7A CN107578094A (zh) 2017-10-25 2017-10-25 基于参数服务器和fpga实现神经网络分布式训练的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711008009.7A CN107578094A (zh) 2017-10-25 2017-10-25 基于参数服务器和fpga实现神经网络分布式训练的方法

Publications (1)

Publication Number Publication Date
CN107578094A true CN107578094A (zh) 2018-01-12

Family

ID=61038213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711008009.7A Pending CN107578094A (zh) 2017-10-25 2017-10-25 基于参数服务器和fpga实现神经网络分布式训练的方法

Country Status (1)

Country Link
CN (1) CN107578094A (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446173A (zh) * 2018-02-27 2018-08-24 华为技术有限公司 一种基于Tensorflow的训练模型保存方法及驱动器、计算服务器
CN108829441A (zh) * 2018-05-14 2018-11-16 中山大学 一种分布式深度学习的参数更新优化系统
CN109032671A (zh) * 2018-06-25 2018-12-18 电子科技大学 一种基于数据并行策略的分布式深度学习方法及系统
CN109102075A (zh) * 2018-07-26 2018-12-28 联想(北京)有限公司 一种分布式训练中的梯度更新方法及相关设备
CN109117953A (zh) * 2018-09-11 2019-01-01 北京迈格威科技有限公司 网络参数训练方法和系统、服务器、客户端及存储介质
CN109492753A (zh) * 2018-11-05 2019-03-19 中山大学 一种去中心化的随机梯度下降的方法
CN110059829A (zh) * 2019-04-30 2019-07-26 济南浪潮高新科技投资发展有限公司 一种异步参数服务器高效并行架构与方法
CN110490316A (zh) * 2019-08-21 2019-11-22 腾讯科技(深圳)有限公司 基于神经网络模型训练系统的训练处理方法、训练系统
CN110928481A (zh) * 2018-09-19 2020-03-27 中国银联股份有限公司 分布式深度神经网络及其参数的存储方法
CN111709522A (zh) * 2020-05-21 2020-09-25 哈尔滨工业大学 一种基于服务器-嵌入式协同的深度学习目标检测系统
CN111723933A (zh) * 2020-06-03 2020-09-29 上海商汤智能科技有限公司 神经网络模型的训练方法和相关产品
CN111753997A (zh) * 2020-06-28 2020-10-09 北京百度网讯科技有限公司 分布式训练方法、系统、设备及存储介质
CN111819578A (zh) * 2018-02-17 2020-10-23 超威半导体公司 使用带有急速更新的分布式参数服务器对神经网络进行优化的异步训练
CN112712171A (zh) * 2021-01-12 2021-04-27 湖南工业大学 深度卷积神经网络的分布式训练方法、设备和存储介质
CN113282411A (zh) * 2021-05-19 2021-08-20 复旦大学 一种基于边缘设备的分布式神经网络训练系统
CN113342525A (zh) * 2020-07-24 2021-09-03 北京一流科技有限公司 分布式数据处理系统及其方法
CN113452541A (zh) * 2020-03-27 2021-09-28 上海商汤智能科技有限公司 网络带宽调整方法和相关产品
WO2022042741A1 (zh) * 2020-08-31 2022-03-03 北京灵汐科技有限公司 学习模型训练方法、工作节点、服务器、设备、介质
CN114139723A (zh) * 2021-11-30 2022-03-04 支付宝(杭州)信息技术有限公司 用于深度学习模型训练的方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统
CN105894087A (zh) * 2015-01-26 2016-08-24 华为技术有限公司 用于神经网络中训练参数集的系统和方法
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105894087A (zh) * 2015-01-26 2016-08-24 华为技术有限公司 用于神经网络中训练参数集的系统和方法
CN104714852A (zh) * 2015-03-17 2015-06-17 华中科技大学 一种适用于分布式机器学习的参数同步优化方法及其系统
CN107018184A (zh) * 2017-03-28 2017-08-04 华中科技大学 分布式深度神经网络集群分组同步优化方法及系统

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111819578A (zh) * 2018-02-17 2020-10-23 超威半导体公司 使用带有急速更新的分布式参数服务器对神经网络进行优化的异步训练
CN108446173A (zh) * 2018-02-27 2018-08-24 华为技术有限公司 一种基于Tensorflow的训练模型保存方法及驱动器、计算服务器
CN108446173B (zh) * 2018-02-27 2022-04-05 华为技术有限公司 一种基于Tensorflow的训练模型保存方法及驱动器、计算服务器
CN108829441A (zh) * 2018-05-14 2018-11-16 中山大学 一种分布式深度学习的参数更新优化系统
CN109032671A (zh) * 2018-06-25 2018-12-18 电子科技大学 一种基于数据并行策略的分布式深度学习方法及系统
CN109032671B (zh) * 2018-06-25 2022-05-03 电子科技大学 一种基于数据并行策略的分布式深度学习方法及系统
CN109102075A (zh) * 2018-07-26 2018-12-28 联想(北京)有限公司 一种分布式训练中的梯度更新方法及相关设备
CN109117953A (zh) * 2018-09-11 2019-01-01 北京迈格威科技有限公司 网络参数训练方法和系统、服务器、客户端及存储介质
CN109117953B (zh) * 2018-09-11 2021-11-09 北京迈格威科技有限公司 网络参数训练方法和系统、服务器、客户端及存储介质
CN110928481A (zh) * 2018-09-19 2020-03-27 中国银联股份有限公司 分布式深度神经网络及其参数的存储方法
CN109492753A (zh) * 2018-11-05 2019-03-19 中山大学 一种去中心化的随机梯度下降的方法
CN110059829A (zh) * 2019-04-30 2019-07-26 济南浪潮高新科技投资发展有限公司 一种异步参数服务器高效并行架构与方法
CN110490316A (zh) * 2019-08-21 2019-11-22 腾讯科技(深圳)有限公司 基于神经网络模型训练系统的训练处理方法、训练系统
CN110490316B (zh) * 2019-08-21 2023-01-06 腾讯科技(深圳)有限公司 基于神经网络模型训练系统的训练处理方法、训练系统
CN113452541A (zh) * 2020-03-27 2021-09-28 上海商汤智能科技有限公司 网络带宽调整方法和相关产品
CN113452541B (zh) * 2020-03-27 2023-02-03 上海商汤智能科技有限公司 网络带宽调整方法和相关产品
CN111709522A (zh) * 2020-05-21 2020-09-25 哈尔滨工业大学 一种基于服务器-嵌入式协同的深度学习目标检测系统
CN111709522B (zh) * 2020-05-21 2022-08-02 哈尔滨工业大学 一种基于服务器-嵌入式协同的深度学习目标检测系统
CN111723933A (zh) * 2020-06-03 2020-09-29 上海商汤智能科技有限公司 神经网络模型的训练方法和相关产品
CN111723933B (zh) * 2020-06-03 2024-04-16 上海商汤智能科技有限公司 神经网络模型的训练方法和相关产品
CN111753997A (zh) * 2020-06-28 2020-10-09 北京百度网讯科技有限公司 分布式训练方法、系统、设备及存储介质
CN113342525A (zh) * 2020-07-24 2021-09-03 北京一流科技有限公司 分布式数据处理系统及其方法
WO2022042741A1 (zh) * 2020-08-31 2022-03-03 北京灵汐科技有限公司 学习模型训练方法、工作节点、服务器、设备、介质
CN112712171A (zh) * 2021-01-12 2021-04-27 湖南工业大学 深度卷积神经网络的分布式训练方法、设备和存储介质
CN112712171B (zh) * 2021-01-12 2022-08-12 湖南工业大学 深度卷积神经网络的分布式训练方法、设备和存储介质
CN113282411B (zh) * 2021-05-19 2022-03-22 复旦大学 一种基于边缘设备的分布式神经网络训练系统
CN113282411A (zh) * 2021-05-19 2021-08-20 复旦大学 一种基于边缘设备的分布式神经网络训练系统
CN114139723A (zh) * 2021-11-30 2022-03-04 支付宝(杭州)信息技术有限公司 用于深度学习模型训练的方法、装置及系统

Similar Documents

Publication Publication Date Title
CN107578094A (zh) 基于参数服务器和fpga实现神经网络分布式训练的方法
Yadan et al. Multi-gpu training of convnets
Gupta et al. Half a dozen real-world applications of evolutionary multitasking, and more
CN107330516A (zh) 模型参数训练方法、装置及系统
US10783437B2 (en) Hybrid aggregation for deep learning neural networks
CN103617150A (zh) 一种基于gpu的大规模电力系统潮流并行计算系统及其方法
CN103838836B (zh) 基于判别式多模态深度置信网多模态数据融合方法和系统
CN106201651A (zh) 神经形态芯片的模拟器
Mendina et al. A general purpose parallel block structured open source incompressible flow solver
CN106156810A (zh) 通用机器学习算法模型训练方法、系统和计算节点
CN112784968A (zh) 一种加速分布式深度神经网络训练的混合流水线并行方法
Rashidi et al. Astra-sim: Enabling sw/hw co-design exploration for distributed dl training platforms
CN109272110A (zh) 基于光子神经网络芯片的光电融合智能信号处理系统
Zhang et al. Dynamic bee colony algorithm based on multi-species co-evolution
CN109657794A (zh) 一种基于指令队列的分布式深度神经网络性能建模方法
CN101957760A (zh) 一种过程执行时间的测定方法
CN102799960A (zh) 面向数据模型的并行业务流程异常检测方法
CN103793281A (zh) 一种计算密集型仿真任务的负载均衡方法
WO2020248440A1 (zh) 一种机器学习方法与装置
CN108197186B (zh) 一种应用于社交网络中的动态图匹配查询方法
CN107423028A (zh) 一种大规模流程并行排程方法
CN116128019A (zh) Transformer模型的并行训练方法及装置
CN104850638A (zh) Etl过程并行决策方法及装置
CN102591978A (zh) 一种分布式文本拷贝检测系统
CN109190160B (zh) 一种分布式水文模型的矩阵化模拟方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180112