CN110516795A - 一种为模型变量分配处理器的方法、装置及电子设备 - Google Patents
一种为模型变量分配处理器的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN110516795A CN110516795A CN201910803903.6A CN201910803903A CN110516795A CN 110516795 A CN110516795 A CN 110516795A CN 201910803903 A CN201910803903 A CN 201910803903A CN 110516795 A CN110516795 A CN 110516795A
- Authority
- CN
- China
- Prior art keywords
- model variable
- processor
- salary distribution
- alternative method
- 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.)
- Granted
Links
Classifications
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Multi Processors (AREA)
Abstract
本公开关于一种为模型变量分配处理器的方法、装置及电子设备,用以解决为模型变量随机分配处理器的方式会导致深度学习模型训练速度较慢的问题,本公开实施例采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的模型变量的时长参数确定模型变量的处理时长;确定将模型变量分配给多个处理器的多种备选分配方式;确定任一种备选分配方式对应的参考值;从多种备选分配方式中选取目标分配方式并根据目标分配方式为每个模型变量分配处理器。本公开实施例根据每种备选分配方式下每个处理器对应的总处理时长合理选择目标分配方式,能够避免某一处理器处理时间过长,从而提高深度学习模型的处理速度。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种为模型变量分配处理器的方法、装置及电子设备。
背景技术
深度学习技术具有更高的预测精度和泛化效果,它广泛用于互联网的各种领域,例如自然语言处理、网页搜索、商品推荐和互联网广告等领域。
深度学习模型通常采用多层神经网络架构,每层网络具有大量的模型变量。为了加速模型的训练,以及处理更大规模的深度学习模型,模型的训练通常需要采用多个处理器训练,例如采用多个GPU(Graphics Processing Unit,图形处理器)进行训练。为此,通常深度学习模型的模型变量需要放置在不同处理器上。目前一种常用的为模型变量分配处理器的方式为,为每个模型变量随机分配一个处理器,将模型变量放置在随机分配的处理器上。这种随机分配处理器的方式可能会导致一个处理器上分配了大量的模型变量,这样,在训练过程中该处理器操作过于繁忙,会经常出现其他处理器处于空闲状态,等待该处理器执行操作,因此会影响深度学习模型训练过程的效率。
综上所述,目前为模型变量随机分配处理器的方式会导致深度学习模型训练速度较慢,效率较低。
发明内容
本公开提供一种为模型变量分配处理器的方法、装置及电子设备,用以解决现有技术中模型变量随机分配处理器导致深度学习速度较慢的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种为模型变量分配处理器的方法,包括:
采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的所述模型变量的时长参数确定所述模型变量的处理时长;
确定将深度学习模型中的模型变量分配给多个处理器的多种备选分配方式,其中每种备选分配方式下一个模型变量分配给一个处理器,且每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量;
针对任意一种备选分配方式,根据所述备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长,并根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值;其中,所述参考值用于表示所述备选分配方式下的处理器对应的总处理时长的离散程度;
根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,并根据所述目标分配方式为每个模型变量分配处理器。
在一种可能的实现方式中,所述模型变量对应的时长参数包括前向计算时长、梯度更新时长、模型变量需要读取的数据量;
根据下列方式确定所述模型变量的处理时长:
将所述模型变量需要读取的数据量与预设的传输速率之间的比值作为所述模型变量的数据传输时长;并将所述模型变量的前向计算时长、所述模型变量的梯度更新时长和所述模型变量的数据传输时长之和作为所述模型变量的处理时长。
在一种可能的实现方式中,所述根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值,包括:
将所述备选分配方式下每个处理器对应的总处理时长的方差作为所述备选分配方式对应的参考值。
在一种可能的实现方式中,所述根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值,包括:
将所述备选分配方式下每个处理器对应的偏差值之和作为所述备选分配方式对应的参考值,其中所述偏差值是所述处理器对应的总处理时长与所述备选分配方式中的处理器对应的总处理时长的平均值之差的绝对值。
在一种可能的实现方式中,所述根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值,包括:
将所述备选分配方式下的处理器对应的总处理时长中的最大值和最小值之差作为所述备选分配方式对应的参考值。
在一种可能的实现方式中,所述根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,包括:
从多种备选分配方式中选取参考值最小的备选分配方式作为所述目标分配方式。
根据本公开实施例的第二方面,提供一种为模型变量分配处理器的装置,包括:
采集单元,被配置为采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的所述模型变量的时长参数确定所述模型变量的处理时长;
获取单元,被配置为执行确定将深度学习模型中的模型变量分配给多个处理器的多种备选分配方式,其中每种备选分配方式下一个模型变量分配给一个处理器,且每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量;
确定单元,被配置为执行针对任意一种备选分配方式,根据所述备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长,并根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值;其中,所述参考值用于表示所述备选分配方式下的处理器对应的总处理时长的离散程度;
分配单元,被配置为根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,并根据所述目标分配方式为每个模型变量分配处理器。
在一种可能的实现方式中,所述模型变量对应的时长参数包括前向计算时长、梯度更新时长、模型变量需要读取的数据量;
所述采集单元被配置为将所述模型变量需要读取的数据量与预设的传输速率之间的比值作为所述模型变量的数据传输时长;并将所述模型变量的前向计算时长、所述模型变量的梯度更新时长和所述模型变量的数据传输时长之和作为所述模型变量的处理时长。
在一种可能的实现方式中,所述确定单元被配置为将所述备选分配方式下每个处理器对应的总处理时长的方差作为所述备选分配方式对应的参考值。
在一种可能的实现方式中,所述确定单元被配置为将所述备选分配方式下每个处理器对应的偏差值之和作为所述备选分配方式对应的参考值,其中所述偏差值是所述处理器对应的总处理时长与所述备选分配方式中的处理器对应的总处理时长的平均值之差的绝对值。
在一种可能的实现方式中,所述确定单元被配置为将所述备选分配方式下的处理器对应的总处理时长中的最大值和最小值之差作为所述备选分配方式对应的参考值。
在一种可能的实现方式中,所述分配单元被配置为从多种备选分配方式中选取参考值最小的备选分配方式作为所述目标分配方式。
根据本公开实施例的第三方面,提供一种电子设备,包括:存储器,用于存储可执行指令;
处理器,用于读取并执行所述存储器中存储的可执行指令,以实现如本公开实施例第一方面中任一项所述的为模型变量分配处理器的方法。
根据本公开实施例的第四方面,提供一种非易失性存储介质,当所述存储介质中的指令由为模型变量分配处理器的装置的处理器执行时,使得为模型变量分配处理器的装置能够执行本公开实施例第一方面中所述的为模型变量分配处理器的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
本公开实施例提供的为模型变量分配处理器的方法,针对每一种备选分配方式,根据该种备选分配方式下处理器被分配的模型变量的处理时长确定出每个处理器对应的总处理时长,在选择目标分配方式时,需要从多种备选分配方式中,根据每种备选分配方式下每个处理器对应的总处理时长来合理的选择目标分配方式,能够避免了某一处理器处理时间过长导致的其他处理器空闲等待时间长,从而提高深度学习模型的处理速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的深度学习模型在广告推荐业务场景的应用示意图。
图2是根据一示例性实施例示出的为模型变量分配处理器的方法的示意图。
图3是根据一示例性实施例示出的为模型变量分配处理器的方法的整体流程示意图。
图4是根据一示例性实施例示出的为模型变量分配处理器的装置的示意图。
图5是根据一示例性实施例示出的为模型变量分配处理器的设备的示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
以下,对本公开实施例中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)本公开实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
(2)本公开实施例中术语“深度学习模型”是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习等技术。
(3)本公开实施例中术语“GPU”是一种进行图像运算的微处理器,由于拥有上千个多核,也常用于深度学习模型训练。
(4)本公开实施例中术语“前向计算时长”是指从输入数据输入神经网络,分别计算各层的激活函数值,直到最后输出结果以及损失函数的值所花费的时间。
(5)本公开实施例中术语“梯度更新时长”是指在进行深度学习中,常见的学习方法是“梯度下降算法”,其中模型变量每下降一个梯度所用的时间称为“梯度更新时长”。
(6)本公开实施例中术语“hook(钩子)函数”是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。
(7)本公开实施例中术语“模型变量”,是指深度学习模型中的模型参数,例如可以为权重值w、偏差值b、深度学习模型的嵌入向量等。
深度学习模型通常采用多层神经网络架构,可以广泛应用于人脸识别、跟踪定位、智能监控、机器视觉、自然语言处理、人机交互、无人驾驶、智能家居、商品推荐和广告推荐等领域。
下面以广告推荐业务场景为例对深度学习模型进行介绍。如图1所示,广告推荐通常采用深度学习技术,通过构建人工神经网络模型来预测用户有可能点击的广告的特征。广告推荐深度学习模型的数据通常包含用户侧的稀疏特征U1、稀疏特征U2……稀疏特征Un和稠密特征U、以及广告侧稀疏特征A1、稀疏特征A1……稀疏特征Am和稠密特征A。每个稀疏特征Ui和Aj都会通过嵌入学习技术学习得到一个嵌入向量。然后,用户侧的稠密特征U和嵌入向量合并输入到上层的全连接网络,生成更低维度的稠密向量。同理,广告侧的稠密特征A和嵌入向量合并输入到上层的全连接网络,生成更低维度的稠密向量。通过全连接网络生层稠密向量。最后,用户侧和广告侧的稠密向量合并通过多层全连接的神经网络,预测广告的点击概率。在如图1所示的深度学习模型,该模型中包含大量的模型变量,例如嵌入式学习过程中的嵌入向量、全连接网络中的权重值w、偏差值b等等。深度学习模型训练的过程就是根据输入的数据集,通过优化算法,确定出可以较好地预测广告点击概率的模型变量对应的参数值。
为了加速模型的训练,通常模型变量需要放置在不同的处理器上,为深度学习模型中多个模型变量分配GPU的方式有多种;例如,处理器以GPU为例,将模型变量放置在不同的GPU上时,可以把用户侧特征U1……Un对应的嵌入向量放置在GPU1上,广告侧的特征A1……Am对应的嵌入向量放置在GPU2上,全连接网络对应的模型变量w和b存放GPU3上;或者把用户侧特征U1……U100对应的嵌入向量和广告侧的特征A1……A100对应的嵌入向量放置在GPU1上,全连接网络对应的模型变量w和b存放GPU2上,用户侧特征U101……Un对应的嵌入向量和广告侧的特征A101……Am对应的嵌入向量放置在GPU3上。不同的为模型变量分配处理器的分配方法,读取、更新模型变量的参数值时需要访问的处理器以及数据通信量不同,同一个处理器被分配的模型变量可能会不同,导致在不同分配方式下,同一个处理器处理数据所需的总时长也不同。
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
下面对本公开实施例作进一步详细描述。
图2是根据一示例性实施例示出的一种为模型变量分配处理器的方法的流程图,如图2所示,包括以下步骤。
在步骤S21中,采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的所述模型变量的时长参数确定所述模型变量的处理时长。
在步骤S22中,确定将深度学习模型中的模型变量分配给多个备选处理器的多种分配方式,其中每种备选分配方式下一个模型变量分配给一个处理器,且每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量。
在步骤S23中,对任意一种备选分配方式,根据所述备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长,并根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值;其中,所述参考值用于表示所述备选分配方式下的处理器对应的总处理时长的离散程度。
在步骤S24中,根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,并根据所述目标分配方式为每个模型变量分配处理器。
其中,本公开实施例处理器可以为GPU。
由上可见,在本公开实施例中,首先采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的每个模型变量的时长参数确定模型变量的处理时长,然后确定出将深度学习模型中的模型变量分配给多个处理器的多种备选分配方式,针对任意一种备选分配方式,根据这种备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长,并根据这种备选分配方式下每个处理器对应的总处理时长确定这种备选分配方式对应的参考值,然后根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,并根据目标分配方式为每个模型变量分配处理器。本公开实施例提供的为模型变量分配处理器的方法,针对每一种备选分配方式,根据该种备选分配方式下处理器被分配的模型变量的处理时长确定出每个处理器对应的总处理时长,在选择目标分配方式时,需要从多种备选分配方式中,根据每种备选分配方式下每个处理器对应的总处理时长来合理的选择目标分配方式,能够避免某一处理器处理时间过长导致的其他处理器空闲等待时间长,从而提高深度学习模型的处理速度。
本公开实施例为模型变量分配处理器时,是从大量的备选分配方式中选取最优的分配方式。实施中,可以采用使用整数优化技术,从满足每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量的备选分配方式中选取最优的分配方式。
在步骤S21中,采集的每个模型变量对应的时长参数包括但不限于:
模型变量的前向计算时长、模型变量的梯度更新时长和模型变量需要读取的数据量。
实施中,本公开实施例可以根据下列公式计算每个模型变量的处理时长:
Tvm=Fm+Um+Tm;
其中,Fm为模型变量的前向计算时长;
Um为模型变量的梯度更新时长;
Tm为模型变量的数据传输时长;
Tvm为模型变量的处理时长。
在确定模型变量的数据传输时长Tm时,可以根据模型变量需要读取的数据量与预设的传输速率之间的比值来确定。
其中,预设的传输速率可以为设备之间的平均传输带宽,或者预设的传输速率可以为预先设定的本领域技术人员的经验数值。
例如,模型变量1需要读取的数据量是10M,设备之间的平均传输带宽为128M/s(兆/秒),则模型变量1的数据传输时长为78.125ms(毫秒)。
在采集模型变量的前向计算时长时,可以通过在深度学习模型的graph(图形)中,增加hook函数来获取的每个模型变量的前向计算时长;
在获取模型变量的梯度更新时长时,是通过hook函数来获取模型变量每下降一个梯度所用的时长;
以模型变量1为例,假设模型变量1的前向计算时长Fm为0.375ms,梯度更新时长Um为4ms,数据传输时长Tm为15.625ms,则模型变量1的处理时长Tvm为Fm、Um、Tm三者之和即模型变量1的处理时长Tvm为20ms。
在确定出采集到的每个模型变量的处理时长之后,需要确定模型变量分配给多个备选处理器的全部分配方式。从全部分配方式中确定出符合条件的备选分配方式。
在实施中,备选分配方式应满足每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量的条件;例如,针对某一种备选分配方式,处理器1分配到的模型变量包括模型变量A、模型变量B、模型变量C,模型变量A的容量为Sa、模型变量B的容量为Sb、模型变量C的容量为Sc,处理器1的容量为S1,则S1≥Sa+Sb+Sc。
在本公开实施例中,以将深度学习模型中的五个模型变量分配给两个处理器为例,五个模型变量分别为模型变量1、模型变量2、模型变量3、模型变量4和模型变量5,将两个处理器分别为处理器A和处理器B。这五个模型变量分配给两个处理器的全部分配方式有32种,具体如下:
分配方式1:将模型变量1、模型变量2、模型变量3、模型变量4和模型变量5都分配给处理器B;
分配方式2:将模型变量1分配给处理器A,将模型变量2、模型变量3、模型变量4和模型变量5分配给处理器B;
分配方式3:将模型变量2分配给处理器A,将模型变量1、模型变量3、模型变量4和模型变量5分配给处理器B;
分配方式4:将模型变量3分配给处理器A,将模型变量1、模型变量2、模型变量4和模型变量5分配给处理器B;
分配方式5:将模型变量4分配给处理器A,将模型变量1、模型变量2、模型变量3和模型变量5分配给处理器B;
分配方式6:将模型变量5分配给处理器A,将模型变量1、模型变量2、模型变量3和模型变量4分配给处理器B;
分配方式7:将模型变量1和模型变量2分配给处理器A,将模型变量3、模型变量4和模型变量5分配给处理器B;
分配方式8:将模型变量1和模型变量3分配给处理器A,将模型变量2、模型变量4和模型变量5分配给处理器B;
分配方式9:将模型变量1和模型变量4分配给处理器A,将模型变量2、模型变量3和模型变量5分配给处理器B;
分配方式10:将模型变量1和模型变量5分配给处理器A,将变量模型2、模型变量3和模型变量4分配给处理器B;
分配方式11:将模型变量2和模型变量3分配给处理器A,将模型变量1、模型变量4和模型变量5分配给处理器B;
分配方式12:将模型变量2和模型变量4分配给处理器A,将模型变量1、模型变量3和模型变量5分配给处理器B;
分配方式13:将模型变量2和模型变量5分配给处理器A,将模型变量1、模型变量3和模型变量4分配给处理器B;
分配方式14:将模型变量3和模型变量4分配给处理器A,将模型变量1、模型变量2和模型变量5分配给处理器B;
分配方式15:将模型变量3和模型变量5分配给处理器A,将模型变量1、模型变量2和模型变量4分配给处理器B;
分配方式16:将模型变量4和模型变量5分配给处理器A,将模型变量1、模型变量2和模型变量3分配给处理器B;
分配方式17:将模型变量1、模型变量2和模型变量3分配给处理器A,将模型变量4和模型变量5分配给处理器B;
分配方式18:将模型变量1、模型变量2和模型变量4分配给处理器A,将模型变量3和模型变量5分配给处理器B;
分配方式19:将模型变量1、模型变量2和模型变量5分配给处理器A,将模型变量3和模型变量4分配给处理器B;
分配方式20:将模型变量1、模型变量3和模型变量4分配给处理器A,将模型变量2和模型变量5分配给处理器B;
分配方式21:将模型变量1、模型变量3和模型变量5分配给处理器A,将模型变量2和模型变量4分配给处理器B;
分配方式22:将模型变量1、模型变量4和模型变量5分配给处理器A,将模型变量2和模型变量3分配给处理器B;
分配方式23:将模型变量2、模型变量3和模型变量4分配给处理器A,将模型变量1和模型变量5分配给处理器B;
分配方式24:将模型变量2、模型变量3和模型变量5分配给处理器A,将模型变量1和模型变量4分配给处理器B;
分配方式25:将模型变量2、模型变量4和模型变量5分配给处理器A,将模型变量1和模型变量3分配给处理器B;
分配方式26:将模型变量3、模型变量4和模型变量5分配给处理器A,将模型变量1和模型变量2分配给处理器B;
分配方式27:将模型变量1、模型变量2、模型变量3和模型变量4分配给处理器A,将模型变量5分配给处理器B;
分配方式28:将模型变量1、模型变量2、模型变量3和模型变量5分配给处理器A,将模型变量4分配给处理器B;
分配方式29:将模型变量1、模型变量2、模型变量4和模型变量5分配给处理器A,将模型变量3分配给处理器B;
分配方式30:将模型变量1、模型变量3、模型变量4和模型变量5分配给处理器A,将模型变量2分配给处理器B;
分配方式31:将模型变量2、模型变量3、模型变量4和模型变量5分配给处理器A,将模型变量1分配给处理器B;
分配方式32:将模型变量1、模型变量2、变模型量3、模型变量4和模型变量5都分配给处理器B。
从这32种分配方式中,确定出满足每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量的多种备选分配方式。例如,按分配方式1为模型变量分配处理器,将模型变量1、模型变量2、模型变量3、模型变量4和模型变量5都分配给处理器B。假设在这种情况下,模型变量1、模型变量2、模型变量3、模型变量4和模型变量5的容量之和大于处理器B的容量,则舍弃分配方式1,不将分配方式确定为备选分配方式。比如模型变量1的容量大小是2M(兆),模型变量2的容量大小是4M,模型变量3的容量大小是8M,模型变量4的容量大小是16M,模型变量5的容量大小是32M,则按分配方式1分配给处理器A的模型变量的容量之和为0,分配给处理器B的模型变量的容量之和为62M。如果处理器B的容量大小为50M,则舍弃分配方式1。
又例如,按分配方式10为模型变量分配处理器,将模型变量1和模型变量5分配给处理器A,将模型变量2、模型变量3和模型变量4分配给处理器B。假设在这种情况下,模型变量1和模型变量5的容量之和不大于处理器A的容量,且模型变量2、模型变量3和模型变量4的容量之和不大于处理器B的容量,则将分配方式10作为备选分配方式。比如模型变量1的容量大小是2M,模型变量2的容量大小是4M,模型变量3的容量大小是8M,模型变量4的容量大小是16M,模型变量5的容量大小是32M,则按分配方式10分配给处理器A的模型容量之和为34M,分配给处理器B的模型变量的容量之和为28M。假设处理器A的容量大小为50M,处理器B的容量大小为60M,则将分配方式10作为备选分配方式。
上述实施例中模型变量的个数、模型变量的容量以及处理器的个数和处理器容量只是作为示例,实际情况下可能会存在上千万个模型变量,也可能会存在多个处理器。
本公开实施例在确定出多种备选分配方式之后,针对任意一种备选分配方式,确定在该种备选分配方式下每个处理器对应的总处理时长;
一种可选的实施方式为,本公开实施例根据下列方式确定每个处理器对应的总处理时长:
针对任意一个处理器,根据该处理器分配到的模型变量的处理时长,确定该处理器对应的总处理时长;
在根据步骤S21中提供的确定模型变量的处理时长的方式确定出该处理器分配到的每个模型变量的处理时长之后,将该处理器分配到的全部模型变量的处理时长之和作为该处理器对应的总处理时长。
例如,模型变量1的处理时长Tvm1为20ms,模型变量2的处理时长为Tvm2为5ms,模型变量3的处理时长为Tvm3为8ms,模型变量4的处理时长Tvm4为26ms,模型变量5的处理时长Tvm5为38ms。假设,将模型变量1、模型变量2和模型变量3分配给处理器A,将模型变量4和模型变量5分配给处理器B,则处理器A对应的总处理时长TA=Tvm1+Tvm2+Tvm3=33ms,则处理器B对应的总处理时长TB=Tvm4+Tvm5=64ms。
在确定出每种备选分配方式下每个处理设备对应的总处理时长之后,计算每种备选分配方式对应的参考值;其中,本公开实施例的备选分配方式对应的参考值用于表示该备选分配方式下的处理器对应的总处理时长的离散程度。
例如,某种备选分配方式下,处理器A对应的总处理时长为TA、处理器B对应的总处理时长为TB、处理器C对应的总处理时长为TC,则该备选方式对应的参考值为表示TA、TB、TC离散程度的数值。
本公开实施例针对任意一种备选分配方式,可以采用如下确定备选分配方式对应的参考值的方法:
方法一:
将备选分配方式下每个处理器对应的总处理时长的方差作为备选分配方式对应的参考值。
实施中,可以根据下列公式确定备选分配方式对应的参考值:
S=[(T1-TM)2+(T2-TM)2+……+(Tn-TM)2]/n;
其中,TM=(T1+T2+……+Tn)/n;
T1,T2……Tn为在该备选分配方式下每个处理器对应的总处理时长;TM为该备选分配方式下所有处理器对应的总处理时长的平均值;n为该备选分配方式下处理器的个数;S为该备选分配方式对应的参考值。
例如,在一种备选分配方式下,处理器A对应的总处理时长TA为33ms,处理器B对应的总处理时长TB为64ms,通过方差计算公式来计算该备选分配方式对应的参考值:
该种备选分配方式下,处理器A和处理器B对应的总处理时长的平均值为:
TM=(TA+TB)/2=48.5ms;
S=[(TA-TM)2+(TB-TM)2]/2=240.25;
则该种备选分配方式对应的参考值为240.25。
上述实施例中仅以两个处理器TA和TB为例,假设存在一种备选分配方式是将多个模型变量分配给五个处理器,例如五个处理器对应的总处理时长分别为TA=22ms,TB=58ms,TC=34ms,TD=2ms,TE=15ms;则计算这种备选分配方式下处理器对应的总处理时长的平均值为:
TM=(TA+TB+TC+TD+TE)/5=26.2ms;
S=[(TA-TM)2+(TB-TM)2+(TC-TM)2+(TD-TM)2+(TE-TM)2]/5=360.16;
则该种备选分配方式对应的参考值为360.16。
方法二:
将备选分配方式下每个处理器对应的偏差值之和作为备选分配方式对应的参考值;其中,针对任一个处理器对应的偏差值,是指该备选分配方式下,该处理器对应的总处理时长与备选分配方式中的处理器对应的总处理时长的平均值之差的绝对值。
实施中,可以根据下列公式确定备选分配方式对应的参考值:
S=λ1+λ2+……+λn;
其中,λ1=|T1-TM|,λ2=|T2-TM|,……,λn=|Tn-TM|;
TM=(T1+T2+……+Tn)/n;
λ1、λ2、……、λn为在该备选分配方式下每个处理器对应的偏差值,n为该备选分配方式下处理器的个数,T1,T2……Tn为每个处理器对应的总处理时长,TM为该备选分配方式下所有处理器对应的总处理时长的平均值,S为该备选分配方式对应的参考值。
例如,在一种备选分配方式下,处理器A对应的总处理时长TA为33ms,处理器B对应的总处理时长TB为64ms,通过偏差值计算公式来计算该备选分配下每个处理器对应的偏差值,计算该备选分配方式下每个处理器对应的偏差值之和作为该备选分配方式对应的参考值:
该种备选分配方式下,处理器A和处理器B对应的总处理时长的平均值为:
TM=(TA+TB)/2=48.5ms;
处理器A对应的偏差值为:λA=|TA-TM|=15.5;
处理器B对应的偏差值为:λB=|TB-TM|=15.5;
S=λA+λB=31;
则该种备选分配方式对应的参考值为31。
上述实施例中仅以两个处理器TA和TB为例,假设存在一种备选分配方式是将多个模型变量分配给五个处理器,例如五个处理器对应的总处理时长分别为TA=22ms,TB=58ms,TC=34ms,TD=2ms,TE=15ms,则计算这种备选分配方式下处理器对应的总处理时长的平均值为:
TM=(TA+TB+TC+TD+TE)/5=26.2ms;
处理器A对应的偏差值为:λA=|TA-TM|=4.2;
处理器B对应的偏差值为:λB=|TB-TM|=31.8;
处理器C对应的偏差值为:λC=|TC-TM|=7.8;
处理器D对应的偏差值为:λD=|TD-TM|=24.2;
处理器E对应的偏差值为:λE=|TE-TM|=11.2;
S=λA+λB+λC+λD+λE=79.2;
则该种备选分配方式对应的参考值为79.2。
方法三:
将备选分配方式下处理器对应的总处理时长中的最大值和最小值之差作为这种备选分配方式对应的参考值。
实施中,可以根据下列公式确定备选分配方式对应的参考值:
S=Tmax-Tmin;
其中,Tmax为在该备选分配方式下处理器对应的总处理时长中的最大值;Tmin为在该备选分配方式下处理器对应的总处理时长中的最小值;S为该备选分配方式对应的参考值。
例如,一种备选分配方式是将多个模型变量分配给五个处理器,例如五个处理器对应的总处理时长分别为TA=22ms,TB=58ms,TC=34ms,TD=2ms,TE=15ms,则该种分配方式下处理器对应的总处理时长中的最大值为Tmax=TB=58ms,最小值为Tmin=TD=2ms,计算该备选分配方式下处理器对应的总处理时长中的最大值和最小值之差作为该备选分配方式对应的参考值:
S=Tmax-Tmin=TB-TD=56;
则该种备选分配方式对应的参考值为56。
需要说明的是,上述给出的三种确定参考值的方法是对本公开实施例的举例说明,本公开实施例想要保护的确定参考值的方法并不限于上述举例,任何一个能够反映多个总处理时长的离散程度的参考值确定方法均适用于本公开,在此不再详细赘述。
本公开实施例在确定出每个备选分配方式对应的参考值之后,从多种备选分配方式中选取参考值最小的备选分配方式作为目标分配方式;
在选取出目标分配方式之后,根据目标分配方式为每个模型变量分配处理器。
由于参考值用于表示该种备选分配方式下处理器对应的总处理时长的离散程度,方差、偏差值之和以及最大值最小值之差均能反应备选分配方式下处理器对应的总处理时长的离散程度,参考值数值越小,反应对应的备选分配方式下处理器对应的总处理时长的离散程度越小。
在从多个备选分配方式中选取目标分配方式时,可以将参考值最小的备选分配方式作为目标分配方式;或者从多个备选分配方式中选取一个参考值不大于预设阈值的备选分配方式作为目标分配方式;或者将多个备选分配方式按照参考值从大到小的顺序进行排序,从排序靠后的m个备选分配方式中选取一个备选分配方式作为目标分配方式。
需要说明的是,本公开实施例提供的选取目标分配方式的方式是从备选分配方式中选取参考值较小的分配方式作为目标分配方式,由于在参考值较小时,多个处理器对应的总处理时长离散程度较小,这样多个处理器对应的总处理时长之间相对均衡,能够避免某个处理器操作过于繁忙其它处理器处于空闲状态的情况,从而能够提高深度学习模型的处理效率。
例如,将深度学习模型的五个模型变量分配给两个处理器,则一共有32种分配方式,假设每种分配方式下处理器分配到的模型变量之和均不大于自身容量,则可以确定出32种备选分配方式;
下面以采用偏差值的方式计算每种备选分配方式对应的参考值为例进行说明。
假设,模型变量1的处理时长t1为20ms,模型变量2的处理时长为t2为5ms,模型变量3的处理时长为t3为8ms,模型变量4的处理时长t4为26ms,模型变量5的处理时长t5为38ms。处理器A对应的总处理时长为TA、处理器B对应的总处理时长为TB、TM为备选分配方式下所有处理器对应的总处理时长的平均值、处理器A对应的偏差值为λA、处理器B对应的偏差值为λB。
备选分配方式1:将模型变量1、模型变量2、模型变量3、模型变量4和模型变量5都分配给处理器B;
则TA=0,TB=97ms,TM=48.5ms,λA=48.5,λB=48.5,参考值S=λA+λB=97;
备选分配方式2:将模型变量1分配给处理器A,将模型变量2、模型变量3、模型变量4和模型变量5分配给处理器B;
则TA=20,TB=77ms,TM=48.5ms,λA=28.5,λB=28.5,参考值S=λA+λB=57;
备选分配方式3:将模型变量2分配给处理器A,将模型变量1、模型变量3、模型变量4和模型变量5分配给处理器B;
则TA=5,TB=92ms,TM=48.5ms,λA=43.5,λB=43.5,参考值S=λA+λB=87;
备选分配方式4:将模型变量3分配给处理器A,将模型变量1、模型变量2、模型变量4和模型变量5分配给处理器B;
则TA=8,TB=89ms,TM=48.5ms,λA=40.5,λB=40.5,参考值S=λA+λB=81;
备选分配方式5:将模型变量4分配给处理器A,将模型变量1、模型变量2、模型变量3和模型变量5分配给处理器B;
则TA=26,TB=71ms,TM=48.5ms,λA=22.5,λB=22.5,参考值S=λA+λB=45;
备选分配方式6:将模型变量5分配给处理器A,将模型变量1、模型变量2、模型变量3和模型变量4分配给处理器B;
则TA=38,TB=59ms,TM=48.5ms,λA=10.5,λB=10.5,参考值S=λA+λB=21;
备选分配方式7:将模型变量1和模型变量2分配给处理器A,将模型变量3、模型变量4和模型变量5分配给处理器B;
则TA=25,TB=72ms,TM=48.5ms,λA=23.5,λB=23.5,参考值S=λA+λB=47;
备选分配方式8:将模型变量1和模型变量3分配给处理器A,将模型变量2、模型变量4和模型变量5分配给处理器B;
则TA=28,TB=69ms,TM=48.5ms,λA=20.5,λB=20.5,参考值S=λA+λB=41;
备选分配方式9:将模型变量1和模型变量4分配给处理器A,将模型变量2、模型变量3和模型变量5分配给处理器B;
则TA=46,TB=51ms,TM=48.5ms,λA=2.5,λB=2.5,参考值S=λA+λB=5;
备选分配方式10:将模型变量1和模型变量5分配给处理器A,将变量模型2、模型变量3和模型变量4分配给处理器B;
则TA=58,TB=39ms,TM=48.5ms,λA=9.5,λB=9.5,参考值S=λA+λB=19;
备选分配方式11:将模型变量2和模型变量3分配给处理器A,将模型变量1、模型变量4和模型变量5分配给处理器B;
则TA=13,TB=84ms,TM=48.5ms,λA=35.5,λB=35.5,参考值S=λA+λB=71;
备选分配方式12:将模型变量2和模型变量4分配给处理器A,将模型变量1、模型变量3和模型变量5分配给处理器B;
则TA=31,TB=66ms,TM=48.5ms,λA=17.5,λB=17.5,参考值S=λA+λB=35;
备选分配方式13:将模型变量2和模型变量5分配给处理器A,将模型变量1、模型变量3和模型变量4分配给处理器B;
则TA=43,TB=54ms,TM=48.5ms,λA=5.5,λB=5.5,参考值S=λA+λB=11;
备选分配方式14:将模型变量3和模型变量4分配给处理器A,将模型变量1、模型变量2和模型变量5分配给处理器B;
则TA=34,TB=63ms,TM=48.5ms,λA=14.5,λB=14.5,参考值S=λA+λB=29;
备选分配方式15:将模型变量3和模型变量5分配给处理器A,将模型变量1、模型变量2和模型变量4分配给处理器B;
则TA=46,TB=51ms,TM=48.5ms,λA=2.5,λB=2.5,参考值S=λA+λB=5;
备选分配方式16:将模型变量4和模型变量5分配给处理器A,将模型变量1、模型变量2和模型变量3分配给处理器B;
则TA=64,TB=33ms,TM=48.5ms,λA=15.5,λB=15.5,参考值S=λA+λB=31;
备选分配方式17:将模型变量1、模型变量2和模型变量3分配给处理器A,将模型变量4和模型变量5分配给处理器B;
则TA=33,TB=64ms,TM=48.5ms,λA=15.5,λB=15.5,参考值S=λA+λB=31;
备选分配方式18:将模型变量1、模型变量2和模型变量4分配给处理器A,将模型变量3和模型变量5分配给处理器B;
则TA=51,TB=46ms,TM=48.5ms,λA=2.5,λB=2.5,参考值S=λA+λB=5;
备选分配方式19:将模型变量1、模型变量2和模型变量5分配给处理器A,将模型变量3和模型变量4分配给处理器B;
则TA=63,TB=34ms,TM=48.5ms,λA=14.5,λB=14.5,参考值S=λA+λB=29;
备选分配方式20:将模型变量1、模型变量3和模型变量4分配给处理器A,将模型变量2和模型变量5分配给处理器B;
则TA=54,TB=43ms,TM=48.5ms,λA=5.5,λB=5.5,参考值S=λA+λB=11;
备选分配方式21:将模型变量1、模型变量3和模型变量5分配给处理器A,将模型变量2和模型变量4分配给处理器B;
则TA=66,TB=31ms,TM=48.5ms,λA=17.5,λB=17.5,参考值S=λA+λB=35;
备选分配方式22:将模型变量1、模型变量4和模型变量5分配给处理器A,将模型变量2和模型变量3分配给处理器B;
则TA=84,TB=13ms,TM=48.5ms,λA=35.5,λB=35.5,参考值S=λA+λB=71;
备选分配方式23:将模型变量2、模型变量3和模型变量4分配给处理器A,将模型变量1和模型变量5分配给处理器B;
则TA=39,TB=58ms,TM=48.5ms,λA=9.5,λB=9.5,参考值S=λA+λB=19;
备选分配方式24:将模型变量2、模型变量3和模型变量5分配给处理器A,将模型变量1和模型变量4分配给处理器B;
则TA=51,TB=46ms,TM=48.5ms,λA=2.5,λB=2.5,参考值S=λA+λB=5;
备选分配方式25:将模型变量2、模型变量4和模型变量5分配给处理器A,将模型变量1和模型变量3分配给处理器B;
则TA=69,TB=28ms,TM=48.5ms,λA=20.5,λB=20.5,参考值S=λA+λB=41;
备选分配方式26:将模型变量3、模型变量4和模型变量5分配给处理器A,将模型变量1和模型变量2分配给处理器B;
则TA=72,TB=25ms,TM=48.5ms,λA=23.5,λB=23.5,参考值S=λA+λB=47;
备选分配方式27:将模型变量1、模型变量2、模型变量3和模型变量4分配给处理器A,将模型变量5分配给处理器B;
则TA=59,TB=38ms,TM=48.5ms,λA=10.5,λB=10.5,参考值S=λA+λB=21;
备选分配方式28:将模型变量1、模型变量2、模型变量3和模型变量5分配给处理器A,将模型变量4分配给处理器B;
则TA=71,TB=26ms,TM=48.5ms,λA=22.5,λB=22.5,参考值S=λA+λB=45;
备选分配方式29:将模型变量1、模型变量2、模型变量4和模型变量5分配给处理器A,将模型变量3分配给处理器B;
则TA=89,TB=8ms,TM=48.5ms,λA=40.5,λB=40.5,参考值S=λA+λB=81;
备选分配方式30:将模型变量1、模型变量3、模型变量4和模型变量5分配给处理器A,将模型变量2分配给处理器B;
则TA=92,TB=5ms,TM=48.5ms,λA=43.5,λB=43.5,参考值S=λA+λB=87;
备选分配方式31:将模型变量2、模型变量3、模型变量4和模型变量5分配给处理器A,将模型变量1分配给处理器B;
则TA=77,TB=20ms,TM=48.5ms,λA=28.5,λB=28.5,参考值S=λA+λB=57;
备选分配方式32:将模型变量1、模型变量2、变模型量3、模型变量4和模型变量5都分配给处理器B。
则TA=0,TB=97ms,TM=48.5ms,λA=48.5,λB=48.5,参考值S=λA+λB=97;
计算出每种备选分配方式的参考值之后,可以找出最小的参考值为5,将最小的参考值对应的备选分配方式作为目标分配方式;由于备选分配方式9、备选分配方式15、备选分配方式18和备选分配方式24对应的参考值均为5,则从这4种备选分配方式中任选一种备选分配方式作为目标分配方式。例如选取备选分配方式9为目标分配方式,则根据备选分配方式9为每个模型变量分配处理器,即将模型变量1和模型变量4分配给处理器A,将模型变量2、模型变量3和模型变量5分配给处理器B。
图3是根据一示例性实施例示出的一种为模型变量分配处理器的方法的整体流程图,如图3所示,包括以下步骤。
在步骤S31中,采集深度学习中每个模型变量前向计算时长、梯度更新时长以及模型变量需要读取的数据量。
在步骤S32中,将模型变量需要读取的数据量与预设的传输速率之间的比值作为模型变量的数据传输时长;并将模型变量的前向计算时长、梯度更新时长以及数据传输时长之和作为模型变量的处理时长。
在步骤S33中,确定将深度学习模型中的模型变量分配给多个处理器的多种备选分配方式;
其中,每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量。
需要说明的是,上述步骤S33和步骤S31执行的先后顺序不作限定,可以先执行步骤S31后执行步骤S33,或者先执行步骤S33后执行步骤S31,或者可以同时执行步骤S31和步骤S33。
下面针对多种备选分配方式中的任意一种备选分配方式执行步骤S34和步骤S35:
在步骤S34中,根据该备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长。
在步骤S35中,根据该备选分配方式下每个处理器对应的总处理时长确定该备选分配方式对应的参考值;
其中,备选分配方式对应的参考值的确定方式可以参见上文的介绍,在此不再详细赘述。
在步骤S36中,从多种备选分配方式中选取参考值最小的备选分配方式作为所述目标分配方式。
本公开实施例中还提供了一种为模型变量分配处理器的装置,由于该装置对应的是本公开实施例为模型变量分配处理器的方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
图4是根据一示例性实施例示出的一种为模型变量分配处理器的装置框图。参照图4,该装置包括采集单元400,获取单元401,确定单元402和分配单元403。
采集单元400,被配置为采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的所述模型变量的时长参数确定所述模型变量的处理时长;
获取单元401,被配置为执行确定将深度学习模型中的模型变量分配给多个处理器的多种备选分配方式,其中每种备选分配方式下一个模型变量分配给一个处理器,且每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量;
确定单元402,被配置为执行针对任意一种备选分配方式,根据所述备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长,并根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值;其中,所述参考值用于表示所述备选分配方式下的处理器对应的总处理时长的离散程度;
分配单元403,被配置为根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,并根据所述目标分配方式为每个模型变量分配处理器。
在一种可能的实现方式中,所述模型变量对应的时长参数包括前向计算时长、梯度更新时长、模型变量需要读取的数据量;
所述采集单元400被配置为将所述模型变量需要读取的数据量与预设的传输速率之间的比值作为所述模型变量的数据传输时长;并将所述模型变量的前向计算时长、所述模型变量的梯度更新时长和所述模型变量的数据传输时长之和作为所述模型变量的处理时长。
在一种可能的实现方式中,所述确定单元402被配置为将所述备选分配方式下每个处理器对应的总处理时长的方差作为所述备选分配方式对应的参考值。
在一种可能的实现方式中,所述确定单元402被配置为将所述备选分配方式下每个处理器对应的偏差值之和作为所述备选分配方式对应的参考值,其中所述偏差值是所述处理器对应的总处理时长与所述备选分配方式中的处理器对应的总处理时长的平均值之差的绝对值。
在一种可能的实现方式中,所述确定单元402被配置为将所述备选分配方式下的处理器对应的总处理时长中的最大值和最小值之差作为所述备选分配方式对应的参考值。
在一种可能的实现方式中,所述分配单元403被配置为从多种备选分配方式中选取参考值最小的备选分配方式作为所述目标分配方式。
关于上述实施例中的装置,其中各个单元执行请求的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种用于为模型变量分配处理器的装置500的框图,该装置包括:
处理器510;
用于存储所述处理器510可执行指令的存储器520;
其中,所述处理器510被配置为执行所述指令,以实现本公开实施例中的为模型变量分配处理器的方法。
在示例性实施例中,还提供了一种包括指令的非易失性存储介质,例如包括指令的存储器520,上述指令可由装置500的处理器510执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本公开实施例还提供一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行实现本公开实施例上述任意一项为模型变量分配处理器的方法或任意一项为模型变量分配处理器的方法任一可能涉及的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种为模型变量分配处理器的方法,其特征在于,该方法包括:
采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的所述模型变量的时长参数确定所述模型变量的处理时长;
确定将深度学习模型中的模型变量分配给多个处理器的多种备选分配方式,其中每种备选分配方式下一个模型变量分配给一个处理器,且每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量;
针对任意一种备选分配方式,根据所述备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长,并根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值;其中,所述参考值用于表示所述备选分配方式下的处理器对应的总处理时长的离散程度;
根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,并根据所述目标分配方式为每个模型变量分配处理器。
2.如权利要求1所述的方法,其特征在于,所述模型变量对应的时长参数包括前向计算时长、梯度更新时长、模型变量需要读取的数据量;
根据下列方式确定所述模型变量的处理时长:
将所述模型变量需要读取的数据量与预设的传输速率之间的比值作为所述模型变量的数据传输时长;并将所述模型变量的前向计算时长、所述模型变量的梯度更新时长和所述模型变量的数据传输时长之和作为所述模型变量的处理时长。
3.如权利要求1所述的方法,其特征在于,所述根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值,包括:
将所述备选分配方式下每个处理器对应的总处理时长的方差作为所述备选分配方式对应的参考值。
4.如权利要求1所述的方法,其特征在于,所述根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值,包括:
将所述备选分配方式下每个处理器对应的偏差值之和作为所述备选分配方式对应的参考值,其中所述偏差值是所述处理器对应的总处理时长与所述备选分配方式中的处理器对应的总处理时长的平均值之差的绝对值。
5.如权利要求1所述的方法,其特征在于,所述根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值,包括:
将所述备选分配方式下的处理器对应的总处理时长中的最大值和最小值之差作为所述备选分配方式对应的参考值。
6.如权利要求1所述的方法,其特征在于,所述根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,包括:
从多种备选分配方式中选取参考值最小的备选分配方式作为所述目标分配方式。
7.一种为模型变量分配处理器的装置,其特征在于,包括:
采集单元,被配置为采集深度学习模型中的每个模型变量对应的时长参数,并根据采集的所述模型变量的时长参数确定所述模型变量的处理时长;
获取单元,被配置为执行确定将深度学习模型中的模型变量分配给多个处理器的多种备选分配方式,其中每种备选分配方式下一个模型变量分配给一个处理器,且每种备选分配方式下每个处理器分配到的模型变量的容量之和不大于对应的处理器的容量;
确定单元,被配置为执行针对任意一种备选分配方式,根据所述备选分配方式下处理器分配到的模型变量的处理时长确定处理器对应的总处理时长,并根据所述备选分配方式下每个处理器对应的总处理时长确定所述备选分配方式对应的参考值;其中,所述参考值用于表示所述备选分配方式下的处理器对应的总处理时长的离散程度;
分配单元,被配置为根据每种备选分配方式对应的参考值,从多种备选分配方式中选取目标分配方式,并根据所述目标分配方式为每个模型变量分配处理器。
8.如权利要求7所述的装置,其特征在于,所述分配单元被配置为从多种备选分配方式中选取参考值最小的备选分配方式作为所述目标分配方式。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现根据权利要求1至权利要求6中任一项所述的为模型变量分配处理器的方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由为模型变量分配处理器电子设备的处理器执行时,使得为模型变量分配处理器电子设备能够执行根据权利要求1至权利要求6中任一项所述的为模型变量分配处理器的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910803903.6A CN110516795B (zh) | 2019-08-28 | 2019-08-28 | 一种为模型变量分配处理器的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910803903.6A CN110516795B (zh) | 2019-08-28 | 2019-08-28 | 一种为模型变量分配处理器的方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110516795A true CN110516795A (zh) | 2019-11-29 |
CN110516795B CN110516795B (zh) | 2022-05-10 |
Family
ID=68628474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910803903.6A Active CN110516795B (zh) | 2019-08-28 | 2019-08-28 | 一种为模型变量分配处理器的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110516795B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176841A (zh) * | 2019-12-20 | 2020-05-19 | 北京达佳互联信息技术有限公司 | 一种图形处理器资源的分配方法、装置、电子设备及存储介质 |
Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313640A1 (en) * | 2007-06-14 | 2008-12-18 | Ms1 - Microsoft Corporation | Resource Modeling and Scheduling for Extensible Computing Platforms |
CN102541652A (zh) * | 2010-12-09 | 2012-07-04 | 上海杉达学院 | 集群系统的业务调度方法 |
CN103778149A (zh) * | 2012-10-23 | 2014-05-07 | 腾讯科技(深圳)有限公司 | 文件系统及其对文件进行存储管理的方法 |
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
CN105005501A (zh) * | 2015-07-02 | 2015-10-28 | 中国地质大学(武汉) | 一种面向云数据中心的二阶任务优化调度方法 |
CN105630882A (zh) * | 2015-12-18 | 2016-06-01 | 哈尔滨工业大学深圳研究生院 | 基于遥感数据深度学习的近海污染物识别与跟踪方法 |
CN105843364A (zh) * | 2016-03-24 | 2016-08-10 | 华中科技大学 | 异构并行系统下时间能耗权衡优化的任务调度算法 |
CN106055780A (zh) * | 2016-05-26 | 2016-10-26 | 北京航空航天大学 | 一种基于gpu加速的空间碎片预警方法 |
CN106599585A (zh) * | 2016-12-19 | 2017-04-26 | 兰州交通大学 | 基于并行蜂群算法的水文模型参数优化方法及装置 |
CN106648546A (zh) * | 2016-09-07 | 2017-05-10 | 北京大学 | 用于gpu寄存器分配和并行度管理的协同优化编译方法 |
CN107451620A (zh) * | 2017-08-11 | 2017-12-08 | 深圳市唯特视科技有限公司 | 一种基于多任务学习的场景理解方法 |
CN108021395A (zh) * | 2017-12-27 | 2018-05-11 | 北京金山安全软件有限公司 | 一种面向神经网络的数据并行处理方法及系统 |
CN108320059A (zh) * | 2018-02-22 | 2018-07-24 | 石家庄铁道大学 | 一种工作流调度进化寻优方法及终端设备 |
US20180308208A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Compute optimization mechanism for deep neural networks |
CN108776833A (zh) * | 2018-06-05 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种数据处理方法、系统及计算机可读存储介质 |
CN109657794A (zh) * | 2018-12-20 | 2019-04-19 | 中国科学技术大学 | 一种基于指令队列的分布式深度神经网络性能建模方法 |
CN109799977A (zh) * | 2019-01-25 | 2019-05-24 | 西安电子科技大学 | 指令程序开发调度数据的方法及系统 |
CN109829542A (zh) * | 2019-01-29 | 2019-05-31 | 武汉星巡智能科技有限公司 | 基于多核处理器的多元深度网络模型重构方法及装置 |
CN109918741A (zh) * | 2019-02-13 | 2019-06-21 | 北京科技大学 | 一种适用于大规模水文模拟参数率定方法及率定装置 |
CN109947567A (zh) * | 2019-03-14 | 2019-06-28 | 深圳先进技术研究院 | 一种多智能体强化学习调度方法、系统及电子设备 |
CN110084363A (zh) * | 2019-05-15 | 2019-08-02 | 电科瑞达(成都)科技有限公司 | 一种基于fpga平台的深度学习模型加速方法 |
CN110135569A (zh) * | 2019-04-11 | 2019-08-16 | 中国人民解放军国防科技大学 | 一种异构平台神经元定位三级流水并行方法、系统及介质 |
-
2019
- 2019-08-28 CN CN201910803903.6A patent/CN110516795B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313640A1 (en) * | 2007-06-14 | 2008-12-18 | Ms1 - Microsoft Corporation | Resource Modeling and Scheduling for Extensible Computing Platforms |
CN102541652A (zh) * | 2010-12-09 | 2012-07-04 | 上海杉达学院 | 集群系统的业务调度方法 |
CN103778149A (zh) * | 2012-10-23 | 2014-05-07 | 腾讯科技(深圳)有限公司 | 文件系统及其对文件进行存储管理的方法 |
CN104463324A (zh) * | 2014-11-21 | 2015-03-25 | 长沙马沙电子科技有限公司 | 一种基于大规模高性能集群的卷积神经网络并行处理方法 |
CN105005501A (zh) * | 2015-07-02 | 2015-10-28 | 中国地质大学(武汉) | 一种面向云数据中心的二阶任务优化调度方法 |
CN105630882A (zh) * | 2015-12-18 | 2016-06-01 | 哈尔滨工业大学深圳研究生院 | 基于遥感数据深度学习的近海污染物识别与跟踪方法 |
CN105843364A (zh) * | 2016-03-24 | 2016-08-10 | 华中科技大学 | 异构并行系统下时间能耗权衡优化的任务调度算法 |
CN106055780A (zh) * | 2016-05-26 | 2016-10-26 | 北京航空航天大学 | 一种基于gpu加速的空间碎片预警方法 |
CN106648546A (zh) * | 2016-09-07 | 2017-05-10 | 北京大学 | 用于gpu寄存器分配和并行度管理的协同优化编译方法 |
CN106599585A (zh) * | 2016-12-19 | 2017-04-26 | 兰州交通大学 | 基于并行蜂群算法的水文模型参数优化方法及装置 |
US20180308208A1 (en) * | 2017-04-24 | 2018-10-25 | Intel Corporation | Compute optimization mechanism for deep neural networks |
CN107451620A (zh) * | 2017-08-11 | 2017-12-08 | 深圳市唯特视科技有限公司 | 一种基于多任务学习的场景理解方法 |
CN108021395A (zh) * | 2017-12-27 | 2018-05-11 | 北京金山安全软件有限公司 | 一种面向神经网络的数据并行处理方法及系统 |
CN108320059A (zh) * | 2018-02-22 | 2018-07-24 | 石家庄铁道大学 | 一种工作流调度进化寻优方法及终端设备 |
CN108776833A (zh) * | 2018-06-05 | 2018-11-09 | 郑州云海信息技术有限公司 | 一种数据处理方法、系统及计算机可读存储介质 |
CN109657794A (zh) * | 2018-12-20 | 2019-04-19 | 中国科学技术大学 | 一种基于指令队列的分布式深度神经网络性能建模方法 |
CN109799977A (zh) * | 2019-01-25 | 2019-05-24 | 西安电子科技大学 | 指令程序开发调度数据的方法及系统 |
CN109829542A (zh) * | 2019-01-29 | 2019-05-31 | 武汉星巡智能科技有限公司 | 基于多核处理器的多元深度网络模型重构方法及装置 |
CN109918741A (zh) * | 2019-02-13 | 2019-06-21 | 北京科技大学 | 一种适用于大规模水文模拟参数率定方法及率定装置 |
CN109947567A (zh) * | 2019-03-14 | 2019-06-28 | 深圳先进技术研究院 | 一种多智能体强化学习调度方法、系统及电子设备 |
CN110135569A (zh) * | 2019-04-11 | 2019-08-16 | 中国人民解放军国防科技大学 | 一种异构平台神经元定位三级流水并行方法、系统及介质 |
CN110084363A (zh) * | 2019-05-15 | 2019-08-02 | 电科瑞达(成都)科技有限公司 | 一种基于fpga平台的深度学习模型加速方法 |
Non-Patent Citations (4)
Title |
---|
QI LIU 等: "Accelerating convolution-based detection model on GPU", 《2015 INTERNATIONAL CONFERENCE ON ESTIMATION, DETECTION AND INFORMATION FUSION (ICEDIF)》 * |
WENJING MA 等: "An integer programming framework for optimizing shared memory use on GPUs", 《2010 19TH INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES (PACT)》 * |
易娟: "面向多核处理器系统的可靠性与能耗优化调度研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
袁赢: "基于GPU的视频信息并行处理系统设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176841A (zh) * | 2019-12-20 | 2020-05-19 | 北京达佳互联信息技术有限公司 | 一种图形处理器资源的分配方法、装置、电子设备及存储介质 |
CN111176841B (zh) * | 2019-12-20 | 2023-08-11 | 北京达佳互联信息技术有限公司 | 一种图形处理器资源的分配方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110516795B (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220391771A1 (en) | Method, apparatus, and computer device and storage medium for distributed training of machine learning model | |
CN111625361B (zh) | 一种基于云端服务器和IoT设备协同的联合学习框架 | |
CN107688493B (zh) | 训练深度神经网络的方法、装置及系统 | |
Wang et al. | Load balancing task scheduling based on genetic algorithm in cloud computing | |
CN104317658B (zh) | 一种基于MapReduce的负载自适应任务调度方法 | |
CN111367657B (zh) | 一种基于深度强化学习的计算资源协同合作方法 | |
CN109478144A (zh) | 一种数据处理装置和方法 | |
CN115271099A (zh) | 一种支持异构模型的自适应个性化联邦学习方法 | |
CN105468823B (zh) | 一种自助设备节能控制方法和装置 | |
CN110069715A (zh) | 一种信息推荐模型训练的方法、信息推荐的方法及装置 | |
CN110213097B (zh) | 一种基于资源动态分配的边缘服务供应优化方法 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN114915630A (zh) | 基于物联网设备的任务分配方法、网络训练方法及装置 | |
CN114169543B (zh) | 一种基于模型陈旧性与用户参与度感知的联邦学习方法 | |
CN114356540A (zh) | 一种参数更新方法、装置、电子设备和存储介质 | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
CN108320019B (zh) | 用于深度卷积神经网络的卷积计算方法及装置 | |
CN115760279A (zh) | 基于知识图谱和多头注意力的双目标跨域推荐方法及系统 | |
CN110888728B (zh) | 一种Kettle集群服务器的任务调度方法 | |
CN112312299A (zh) | 服务卸载方法、装置及系统 | |
JP2022160570A (ja) | マルチタスクのデプロイ方法、装置、電子機器及び記憶媒体 | |
CN114936708A (zh) | 基于边云协同任务卸载的故障诊断优化方法及电子设备 | |
CN110516795A (zh) | 一种为模型变量分配处理器的方法、装置及电子设备 | |
CN117707795A (zh) | 基于图的模型划分的边端协同推理方法及系统 | |
Li et al. | PTMB: An online satellite task scheduling framework based on pre-trained Markov decision process for multi-task scenario |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |