CN106293942A - 基于多机多卡的神经网络负载均衡优化方法和系统 - Google Patents
基于多机多卡的神经网络负载均衡优化方法和系统 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource 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作为模型最新参数进行下一次迭代。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
-
2016
- 2016-08-10 CN CN201610649521.9A patent/CN106293942A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
Non-Patent Citations (2)
Title |
---|
ZHXFL: "purine2", 《"GITHUB",HTTPS://GITHUB.COM/PURINE/PURINE2/COMPOSITE/GRAPH/》 * |
ZHXFL: "深度学习多机多卡解决方案-purine", 《"博客园", HTTPS://WWW.CNBLOGS.COM/ZHXFL/P/5287644.HTML》 * |
Cited By (15)
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 |