CN106293942A - 基于多机多卡的神经网络负载均衡优化方法和系统 - Google Patents

基于多机多卡的神经网络负载均衡优化方法和系统 Download PDF

Info

Publication number
CN106293942A
CN106293942A CN201610649521.9A CN201610649521A CN106293942A CN 106293942 A CN106293942 A CN 106293942A CN 201610649521 A CN201610649521 A CN 201610649521A CN 106293942 A CN106293942 A CN 106293942A
Authority
CN
China
Prior art keywords
server
parameter
gpu
iteration
model
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
CN201610649521.9A
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.)
SUZHOU ZHANKE OPTOELECTRONICS TECHNOLOGY Co Ltd
Suzhou Institute for Advanced Study USTC
Original Assignee
SUZHOU ZHANKE OPTOELECTRONICS TECHNOLOGY Co Ltd
Suzhou Institute for Advanced Study USTC
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 SUZHOU ZHANKE OPTOELECTRONICS TECHNOLOGY Co Ltd, Suzhou Institute for Advanced Study USTC filed Critical SUZHOU ZHANKE OPTOELECTRONICS TECHNOLOGY Co Ltd
Priority to CN201610649521.9A priority Critical patent/CN106293942A/zh
Publication of CN106293942A publication Critical patent/CN106293942A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于多机多卡的神经网络负载均衡优化方法,包括多个节点,所述节点包括至少一个GPU,每个GPU负责一个模型副本的训练,包括以下步骤:在参数服务器上启动一个计数器,然后通知所有节点开始迭代,单位时间后参数服务器获取每个节点累计的迭代次数fetchi、残差和计算参数服务器的本次迭代参数计算参数服务器更新下一次迭代的参数wserver,将wserver分发到所有GPU上,每个模型副本使用wserver作为模型最新参数进行下一次迭代。可以根据GPU设备的计算能力合理分配不同规模的计算任务,取得了很好的负载均衡效果。

Description

基于多机多卡的神经网络负载均衡优化方法和系统
技术领域
本发明涉及多机多卡架构的性能优化领域,具体地涉及一种基于多机多卡的神经网络负载均衡优化方法和系统。
背景技术
随着深度学习在各个领域的普及,神经网络参数的规模越来越大,训练的周期也越来越长,多GPU加速训练成了必然的硬件解决方案。在多机多卡的硬件方案中,如何提高硬件的利用率,成为了研究的热点。
在实际的应用场景中,GPU会增量增加,当硬件架构中出现计算能力不同的GPU硬件时。架构的负载均衡问题就出现了,如表1所示:
表1架构中不同型号GPU利用率与性能分析
GTX980TI利用率 TITIANX利用率
80% 96%
由于常见的架构设计并没有考虑出现不同显卡的情况,当其中一台机器上有两块显卡,分别为GTX980TI和TITIANX时,这两块显卡的利用率不一样,其中GTX980TI的利用率仅为80%,造成了较为严重的硬件资源浪费。
如图1所示,常见架构中,其假设所有参与计算的硬件的计算能力是相同的,所以每次迭代过程中分配给一个计算设备的计算量也是相等的。随着硬件的增量加入,计算设备的计算能力会出现明显的差异,这种设计方法会造成比较严重的负载均衡问题。
在实际应用中,发现有多重因素造成节点的计算能力不均衡,如GPU设备的计算能力不同,网络通信延迟等,每个设备都固定执一次迭代并不能做到很好的负载均衡。
发明内容
针对上述存在的技术问题,本发明目的是:提供一种基于多机多卡的神经网络负载均衡优化方法和系统,可以根据GPU设备的计算能力合理分配不同规模的计算任务,提高了硬件的利用率和架构的负载均衡能力。
本发明的技术方案是:
一种基于多机多卡的神经网络负载均衡优化方法,包括多个节点,所述节点包括至少一个GPU,每个GPU负责一个模型副本的训练,其特征在于,包括以下步骤:
(1)在参数服务器上启动一个计数器,然后通知所有节点开始迭代,单位时间后参数服务器获取每个节点累计的迭代次数fetchi、残差和计算参数服务器的本次迭代参数i表示第i个GPU,n为模型副本的数量,也就是GPU的数量;
(2)参数服务器更新下一次迭代的参数wserver,计算公式如下:
hserver=hserver×momentum+w′scrver×rate+wserver×decay
wserver=wserver-hserver
其中,hserver表示本次迭代更新的变化量;momentum表示势,其取值范围为[0,1];rate表示学习率,取值范围为[0,1];decay取值为一个较小的常量;
(3)将wserver分发到所有GPU上,每个模型副本都使用wserver作为模型最新参数进行下一次迭代。
本发明又公开了一种基于多机多卡的神经网络负载均衡优化系统,其特征在于,包括多个节点,所述节点包括至少一个GPU,每个GPU负责一个模型副本的训练,所述多个节点连接参数服务器,所述参数服务器分配不同规模的计算任务,在参数服务器上启动一个计数器,然后通知所有节点开始迭代,单位时间后参数服务器获取每个节点累计的迭代次数fetchi、残差和计算参数服务器的本次迭代参数i表示第i个GPU,n为模型副本的数量,也就是GPU的个数;参数服务器更新下一次迭代的参数wserver,计算公式如下:
hserver=hserver×momentum+w′server×rate+wserver×decay
wserver=wserver-hserver
其中,hserver表示本次迭代更新的变化量;momentum表示势,其取值范围为[0,1];rate表示学习率,取值范围为[0,1];decay取值为一个较小的常量;将wserver分发到所有GPU上,每个模型副本都使用wserver作为模型最新参数进行下一次迭代。
本发明通过将计算操作和数据传输操作抽象成为一个二分图,系统根据二分图中的数据依赖关系去寻找异步的时机,最大化计算操作和数据传输操作的并行性。相对于其他的系统设计而言,基于二分图的架构在性能上表现更优。
本方法相当于将任务分块,每个计算设备根据自己的计算能力在单位时间内完成不同的规模的任务,取得了很好的负载均衡效果。
与现有技术相比,本发明的优点是:
当多机多卡架构中出现不同型号的GPU时,每个GPU硬件的利用率都能够达到95%以上,提高架构的负载均衡能力,从每秒钟处理的数据数量来看,经过负载均衡优化,其性能提高了23.7%。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为常见数据并行架构示意图;
图2为改进后负载均衡数据并行示意图;
图3为多机多卡硬件体系结构示意图;
图4为CIFAR-10神经网络结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
实施例:
一种基于多机多卡的神经网络负载均衡优化系统,包括多个节点,所述节点包括至少一个GPU,每个GPU负责一个模型副本的训练,所述多个节点连接参数服务器,所述参数服务器分配不同规模的计算任务。
神经网络的训练比较多采用数据并行方案,在多机多卡的情况下,每个GPU设备负责一个模型副本的训练,经过前向传导和反向传导之后,得到第i个GPU设备上对应的残差wi′。接下来的训练步骤如下:
如图2所示,在参数服务器上启动一个计数器,通知所有节点开始迭代,单位时间后参数服务器获取每个节点累计的迭代次数fetchi、残差和计算参数服务器的参数n为模型副本的数量;参数服务器更新下一次迭代的参数wserver,计算公式如下:
hserver=hserver×momentum+w′server×rate+wserver×decay
wserver=wserver-hserver
其中,hserver表示本次迭代更新的变化量;momentum表示势,其取值范围为[0,1],一般取值为0.9;rate表示学习率,取值范围为[0,1],训练过程中根据实际情况逐渐减小;decay一般取值为一个较小的常量,如0.001。
将wserver分发到所有的GPU设备上,每个模型副本都使用wserver作为模型最新参数进行下一次迭代。
本发明通过对使用多机多卡进行神经网络训练的性能优化,提高了GPU硬件的利用率,由于该系统用于神经网络训练的性能加速,对应产品可以是图片搜索,语音识别,人脸识别等互联网产品。这些产品都广泛使用了神经网络算法,性能优化是其需要解决的核心问题。
在具体的实现方面,本发明将该算法落实到Purine架构中,通过负载均衡改进和优化之后的架构称为NPurine,NPruine架构的性能得到了有效地提升,具体实验验证如下。
表3实验硬件配置表
CPU型号 GPU-1 GPU-2
Node1 Intel core i7-5930k GTX980TI 6GB DDR5 TITIANX 12GB DDR5
Node2 Intel core i5-4590 GTX750TI 2GB DDR5
Node3 Intel core i5-4590 GTX750TI 2GB DDR5
Node4 Intel core i5-4590 GTX750TI 2GB DDR5
本实验所采用的硬件详细参数如表3所示,硬件体系结构示意如图3所示:
如图3所示,本文所使用的多机多卡硬件体系结构由四个节点构成,其中节点Node1上有两块显卡,其他节点都只有一块显卡,每个节点都有一个CPU。由于本实验所需数据集比较小,目前还未引入分布式文件系统,每个节点的磁盘都上拥有完整的数据集副本。所有节点连接在一个交换机上,使用的是千兆网络带宽的网络。
实验使用的数据集为CIFAR-10,该数据集总共有10个类别,训练样本为50000个,测试样本为10000个。样本规格为32x32,彩色3通道。
实验的神经网络如图4所示。其中NIN层由三个卷积层串联而成,NIN(a,b,c)中的a表示卷积层核数为a,卷积核规格为5x5的卷积层;b表示卷积层的核数为b,卷积核规格为1x1的卷积层,c表示卷积层核数为c,卷积核规格为1x1的卷积层。POOL(2x2,3x3)表示最大值池化层,其中skip=2,size=3。
DROPOUT(0.5)表示以0.5的概率随机将上一层的输出置为0。AVR_POOL为平均值池化层,该层将上一层的输入的二维特征图的规格统一处理为1x1作为输出。
表4 Purine与Npurine多机多卡性能对比
如表4所示,固定了同步的频率为2秒钟一次,每个GPU设备的batch_size设置为64。随着节点的增加,Purine的运算速度不仅没有增加反而变慢,配置较好的Node1节点的加入使得它的性能稍微提高了一些。Npurine架构运行速度得到了有效的提升,当四个节点都参与计算的时候,Npurine的速度是Purine的12.34倍。Npurine不仅使得能够用普通网线连接的集群来加快训练速度,同时也做好了不同节点计算能力不均等的情况下的负载均衡。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (2)

1.一种基于多机多卡的神经网络负载均衡优化方法,包括多个节点,所述节点包括至少一个GPU,每个GPU负责一个模型副本的训练,其特征在于,包括以下步骤:
(1)在参数服务器上启动一个计数器,然后通知所有节点开始迭代,单位时间后参数服务器获取每个节点累计的迭代次数fetchi、残差和计算参数服务器的本次迭代参数i表示第i个GPU,n为模型副本的数量;
(2)参数服务器更新下一次迭代的参数wserver,计算公式如下:
hserver=hserver×momentum+w′server×rate+wserver×decay
wserver=wserver-hserver
其中,hserver表示本次迭代更新的变化量;momentum表示势,其取值范围为[0,1];rate表示学习率,取值范围为[0,1];decay取值为一个较小的常量;
(3)将wserver分发到所有GPU上,每个模型副本都使用wserver作为模型最新参数进行下一次迭代。
2.一种基于多机多卡的神经网络负载均衡优化系统,其特征在于,包括多个节点,所述节点包括至少一个GPU,每个GPU负责一个模型副本的训练,所述多个节点连接参数服务器,所述参数服务器分配不同规模的计算任务,在参数服务器上启动一个计数器,然后通知所有节点开始迭代,单位时间后参数服务器获取每个节点累计的迭代次数fetchi、残差和计算参数服务器的本次迭代参数i表示第i个GPU,n为模型副本的数量;参数服务器更新下一次迭代的参数wserver,计算公式如下:
hserver=hserver×momentum+w′server×rate+wserver×decay
wserver=wserver-hserver
其中,hserver表示本次迭代更新的变化量;momentum表示势,其取值范围为[0,1];rate表示学习率,取值范围为[0,1];decay取值为一个较小的常量;将wserver分发到所有GPU上,每个模型副本都使用wserver作为模型最新参数进行下一次迭代。
CN201610649521.9A 2016-08-10 2016-08-10 基于多机多卡的神经网络负载均衡优化方法和系统 Pending CN106293942A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610649521.9A CN106293942A (zh) 2016-08-10 2016-08-10 基于多机多卡的神经网络负载均衡优化方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610649521.9A CN106293942A (zh) 2016-08-10 2016-08-10 基于多机多卡的神经网络负载均衡优化方法和系统

Publications (1)

Publication Number Publication Date
CN106293942A true CN106293942A (zh) 2017-01-04

Family

ID=57667466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610649521.9A Pending CN106293942A (zh) 2016-08-10 2016-08-10 基于多机多卡的神经网络负载均衡优化方法和系统

Country Status (1)

Country Link
CN (1) CN106293942A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480717A (zh) * 2017-08-16 2017-12-15 北京奇虎科技有限公司 训练作业处理方法及系统、计算设备、计算机存储介质
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN108920274A (zh) * 2018-06-21 2018-11-30 北京陌上花科技有限公司 用于图像处理服务器端的性能优化及装置
CN109242755A (zh) * 2018-08-01 2019-01-18 浙江深眸科技有限公司 基于神经网络的计算机视觉处理服务器架构
CN109508785A (zh) * 2018-10-29 2019-03-22 清华大学 一种用于神经网络训练的异步并行优化方法
CN110046048A (zh) * 2019-04-18 2019-07-23 杭州电子科技大学 一种基于工作量自适应快速重分配的负载均衡方法
CN110135447A (zh) * 2018-10-30 2019-08-16 初速度(苏州)科技有限公司 根据识别的人员信息调整车辆内人员坐姿的系统
CN110399214A (zh) * 2019-05-30 2019-11-01 腾讯科技(深圳)有限公司 一种优化显卡负载的方法、装置及计算机设备
CN110737446A (zh) * 2018-07-20 2020-01-31 杭州海康威视数字技术股份有限公司 更新参数的方法和装置
CN111381663A (zh) * 2018-12-28 2020-07-07 技嘉科技股份有限公司 处理器的效能优化方法以及使用其的主机板
CN111971694A (zh) * 2018-04-04 2020-11-20 诺基亚技术有限公司 用于深度神经网络的训练数据的协同异构处理

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104463324A (zh) * 2014-11-21 2015-03-25 长沙马沙电子科技有限公司 一种基于大规模高性能集群的卷积神经网络并行处理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHXFL: "purine2", 《"GITHUB",HTTPS://GITHUB.COM/PURINE/PURINE2/COMPOSITE/GRAPH/》 *
ZHXFL: "深度学习多机多卡解决方案-purine", 《"博客园", HTTPS://WWW.CNBLOGS.COM/ZHXFL/P/5287644.HTML》 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480717A (zh) * 2017-08-16 2017-12-15 北京奇虎科技有限公司 训练作业处理方法及系统、计算设备、计算机存储介质
CN108460457A (zh) * 2018-03-30 2018-08-28 苏州纳智天地智能科技有限公司 一种面向卷积神经网络的多机多卡混合并行异步训练方法
CN111971694A (zh) * 2018-04-04 2020-11-20 诺基亚技术有限公司 用于深度神经网络的训练数据的协同异构处理
CN108920274A (zh) * 2018-06-21 2018-11-30 北京陌上花科技有限公司 用于图像处理服务器端的性能优化及装置
CN108920274B (zh) * 2018-06-21 2021-05-28 北京陌上花科技有限公司 用于图像处理服务器端的性能优化及装置
CN110737446B (zh) * 2018-07-20 2021-10-12 杭州海康威视数字技术股份有限公司 更新参数的方法和装置
CN110737446A (zh) * 2018-07-20 2020-01-31 杭州海康威视数字技术股份有限公司 更新参数的方法和装置
CN109242755A (zh) * 2018-08-01 2019-01-18 浙江深眸科技有限公司 基于神经网络的计算机视觉处理服务器架构
CN109508785A (zh) * 2018-10-29 2019-03-22 清华大学 一种用于神经网络训练的异步并行优化方法
CN110135447A (zh) * 2018-10-30 2019-08-16 初速度(苏州)科技有限公司 根据识别的人员信息调整车辆内人员坐姿的系统
CN110135447B (zh) * 2018-10-30 2021-08-24 初速度(苏州)科技有限公司 根据识别的人员信息调整车辆内人员坐姿的系统
CN111381663A (zh) * 2018-12-28 2020-07-07 技嘉科技股份有限公司 处理器的效能优化方法以及使用其的主机板
CN110046048A (zh) * 2019-04-18 2019-07-23 杭州电子科技大学 一种基于工作量自适应快速重分配的负载均衡方法
CN110399214A (zh) * 2019-05-30 2019-11-01 腾讯科技(深圳)有限公司 一种优化显卡负载的方法、装置及计算机设备
CN110399214B (zh) * 2019-05-30 2024-03-22 腾讯科技(深圳)有限公司 一种优化显卡负载的方法、装置及计算机设备

Similar Documents

Publication Publication Date Title
CN106293942A (zh) 基于多机多卡的神经网络负载均衡优化方法和系统
CN111684473B (zh) 提高神经网络阵列的性能
US9875294B2 (en) Method and apparatus for classifying object based on social networking service, and storage medium
CN107862650A (zh) 加速计算二维图像cnn卷积的方法
Wang et al. A novel algorithm for community detection and influence ranking in social networks
CN103677960B (zh) 一种能耗约束的虚拟机博弈重放置方法
CN103873569A (zh) 一种基于IaaS云平台的资源优化部署方法
CN105373517A (zh) 基于Spark的分布式稠密矩阵求逆并行化运算方法
CN112507106B (zh) 深度学习模型的训练方法、装置和faq相似度判别方法
Green et al. Faster clustering coefficient using vertex covers
Du et al. Structural balance in fully signed networks
Zwart The origin of the two populations of blue stragglers in M30
Kang et al. A novel convolutional neural network accelerator that enables fully-pipelined execution of layers
CN107222410B (zh) 链接预测的方法、装置、终端及计算机可读存储介质
Dong et al. Spectral based hypothesis testing for community detection in complex networks
CN107704266A (zh) 一种应用于解决粒子模拟并行数据竞争的归约方法
CN114519425A (zh) 一种规模可扩展的卷积神经网络加速系统
Keshavarz et al. Efficient upper and lower bounding methods for flowshop sequence-dependent group scheduling problems
CN110889173B (zh) 一种基于装配关系等级化的装配单元划分方法
CN107256203A (zh) 一种矩阵向量乘法的实现方法和装置
Paul et al. Parallel simulation of massively coupled interconnect networks
Struharik et al. Hardware implementation of decision tree ensembles
CN105701291B (zh) 有限元分析装置及信息获取方法、系统矩阵并行生成方法
Aydin et al. Document classification using distributed machine learning
Rajak Comparison of bounded number of processors (bnp) class of scheduling algorithms based on matrices

Legal Events

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

Application publication date: 20170104

RJ01 Rejection of invention patent application after publication