CN113742089B - 异构资源中神经网络计算任务的分配方法、装置和设备 - Google Patents
异构资源中神经网络计算任务的分配方法、装置和设备 Download PDFInfo
- Publication number
- CN113742089B CN113742089B CN202111297679.1A CN202111297679A CN113742089B CN 113742089 B CN113742089 B CN 113742089B CN 202111297679 A CN202111297679 A CN 202111297679A CN 113742089 B CN113742089 B CN 113742089B
- Authority
- CN
- China
- Prior art keywords
- subtask
- task
- resource
- node
- execution
- 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.)
- Active
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 91
- 230000006870 function Effects 0.000 claims abstract description 79
- 238000004891 communication Methods 0.000 claims description 52
- 238000004590 computer program Methods 0.000 claims description 27
- 238000012216 screening Methods 0.000 claims description 25
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 abstract description 24
- 238000005516 engineering process Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000003062 neural network model Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 5
- 238000012549 training Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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
- 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/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种异构资源中神经网络计算任务的分配方法、装置、计算机设备和存储介质。方法包括:获取神经网络的计算任务的任务信息以及异构资源的资源信息;根据任务信息以及所述资源信息确定将各子任务分配至所述异构资源执行的分配方式对应的任务处理成本;根据各任务处理成本构建有向无环图;根据有向无环图中的各所述分配路径中各所述子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;根据各损失函数的值筛选出目标分配路径,本申请以子任务为分配粒度,对神经网络的计算任务进行分配,分配粒度精细,且将各子任务分配于不同种的资源,即适用于异构资源间的任务分配,适用范围相对传统技术而言更宽。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种异构资源中神经网络计算任务的分配方法、装置、计算机设备和存储介质。
背景技术
深度神经网络,例如深度卷积网络(Convolutional Neural Networks, CNN)、Transformer网络等,已被广泛应用于图像处理、语音识别、自然语言处理等领域。深度神经网络由多层神经元组成,前一层的输出作为下一层的输入进行后续计算。深度神经网络计算是以批量数据为单位进行的,适合在异构单元中计算。无论是正向计算还是反向计算,网络都将一批输入/输出组合在一起进行处理,以提高计算效率。目前,因GPU(graphicsprocessing unit,图形处理器)适用大吞吐量的数字处理,所以在GPU上采用数据并行方法提高网络训练速度已成为一种普遍做法。此外,FPGA适用于运行功耗高的任务。
传统的技术方案中,在进行神经网络的任务分配时,一般以最小化内存使用为目的。这种分配方式仅适用于同一种资源的任务分配,适用范围小,且传统方式在分配精度上也存在一定缺陷。
发明内容
基于此,有必要针对上述技术问题,提供一种异构资源中神经网络计算任务的分配方法、装置、计算机设备和存储介质。
一种异构资源中神经网络计算任务的分配方法,方法包括:
获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;
根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;
根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;
根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;
根据各分配路径对应的损失函数的值筛选出目标分配路径。
在其中一个实施例中,上述的任务处理成本包括执行成本以及通信成本,任务信息包括各子任务之间的任务执行顺序以及任务标识,资源信息包括异构资源中各资源的运行速度,根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本,包括:
根据任务执行顺序依次为各子任务分配资源,得到各分配方式;
根据各资源的运行速度以及各子任务的任务标识确定各分配方式对应的执行成本;
根据任务执行顺序确定执行各子任务所分配的资源所属的神经网络的层级;
根据各资源所属的神经网络的层级以及神经网络各层级之间传输数据的预设个数,生成通信成本,通信成本为将各子任务的执行结果传输至下一层级的传输成本。
在其中一个实施例中,上述的根据各分配方式以及各任务处理成本构建有向无环图,包括:
创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本;
根据任务执行顺序获取下一个子任务标识;
创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本;
创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本;
当所述下一个子任务不是最后一个子任务时,返回所述根据所述任务执行顺序获取下一个子任务标识的步骤。
在其中一个实施例中,上述的方法还包括:
当根据任务执行顺序确定当前子任务为第一个任务时,当前节点为有向无环图的起始节点,将起始节点的权重替换为第一预设权重;
当当前子任务为最后一个任务时,当前节点为有向无环图的结束节点,将结束节点的权重替换为第二预设权重。
在其中一个实施例中,上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值,包括:
确定各分配路径中的各节点的权重以及各边的权重的总和,得到各分配路径对应的损失函数的值。
在其中一个实施例中,上述的方法还包括:
将各节点进行松弛操作,得到各节点对应的新增边,新增边的权重为对应的节点的权重;
根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值,包括:
确定各分配路径中的各边以及各新增边的权重的总和,得到各分配路径对应的损失函数的值。
在其中一个实施例中,上述的根据各分配路径对应的损失函数的值筛选出目标分配路径,包括:
筛选出损失函数的值最小的分配路径为目标分配路径。
一种异构资源中神经网络计算任务的分配装置,装置包括:
获取模块,用于获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;
分配模块,用于根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;
构建模块,用于根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;
处理模块,用于根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;
筛选模块,用于根据各分配路径对应的损失函数的值筛选出目标分配路径。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;
根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;
根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;
根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;
根据各分配路径对应的损失函数的值筛选出目标分配路径
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;
根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;
根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;
根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;
根据各分配路径对应的损失函数的值筛选出目标分配路径。
上述异构资源中神经网络计算任务的分配方法、装置、计算机设备和存储介质,通过获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;根据各分配路径对应的损失函数的值筛选出目标分配路径,本申请以子任务为分配粒度,对神经网络的计算任务进行分配,分配粒度精细,且将各子任务分配于不同种的资源,即适用于异构资源间的任务分配,适用范围相对传统技术而言更宽。
附图说明
图1为一个实施例中异构资源中神经网络计算任务的分配方法的应用环境图;
图2为一个实施例中异构资源中神经网络计算任务的分配方法的流程示意图;
图3为一个实施例中根据各分配方式以及各任务处理成本构建有向无环图步骤的流程示意图;
图4为另一个实施例中有向无环图的示意图;
图5为另一个实施例中对节点进行松弛操作之后的有向无环图的示意图
图6为一个实施例中异构资源中神经网络计算任务的分配装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
请参考图1,图1为本申请一示例性实施例提供的一种异构资源中神经网络计算任务的分配方法的应用环境示意图。如图1所示,该应用环境中包括分配服务器100以及调度服务器101,分配服务器100与调度服务器101之间可以通过网络102实现可通信的连接,以实现本申请的异构资源中神经网络计算任务的分配方法。
服务器100用于获取计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;根据各分配方式、各任务处理成本以及预先训练的神经网络模型构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;根据各分配路径对应的损失函数的值筛选出目标分配路径。其中,服务器100可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
调度服务器101用于向分配服务器获取目标分配路径,并根据目标分配路径进行任务调度。其中,调度服务器101可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
网络102用于实现终端101与服务器100之间的网络连接,具体的,网络102可以包括多种类型的有线或无线网络。
在一个实施例中,如图2所示,提供了一种异构资源中神经网络计算任务的分配方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
S11、获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务。
本申请中,异构资源在处理神经网络的计算任务时,可以采用前向传播计算。前向传播计算的基本计算思路为:神经网络由多层神经元组成,前一层的输出作为下一层的输入进行后续计算。具体地,每个神经元接收上一层其他神经元的输入,计算输入加权和,通过激活函数输出最终结果,作为下一层特定神经元的输入。输入数据和中间计算所得到的数据经网络流动,直至到达输出节点。因此,在执行神经网络的计算任务时,下一个计算任务的输入需要用到上一个计算任务的输出。
另一种实施方式中,神经网络的计算任务也可以采用后向传播计算。神经网络的计算任务是以批量数据为单位进行的,适合在异构资源中计算。无论是正向传播计算还是反向传播计算,网络都将一批输入/输出组合在一起进行处理,以提高计算效率。
本申请中还包括如下步骤:
根据预先训练的神经网络模型将神经网络计算任务划分为多个子任务。具体的,根据神经网络模型的层级对计算任务进行划分。即有多少层神经网络即将计算任务划分为多少个子任务。划分后神经网络模型的第i层则执行第i个子任务。
上述的任务信息可以包括计算任务中各子任务的任务标识、各子任务之间的任务执行顺序以及任务内容等。上述的异构资源可以为计算资源中含有多个形态各异的处理器,如CPU、GPU以及FPGA。比如,一台装有GPU的个人计算机,该系统上的CPU和GPU就已经构成了异构计算资源。上述的资源信息可以包括各资源的资源类型、资源标识以及运行速度等。其中,资源类型可以为,如CPU、GPU以及FPGA。本申请中,计算任务中的各子任务需要分配给异构资源中的各资源来处理,为此本申请提供了一种异构资源中神经网络计算任务的分配方法,以得到最优的目标分配路径。
S12、根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本。
本申请中,上述的异构资源可以包括多种形态各异的处理器。服务器将各子任务分配至该多种资源中进行处理。当第i个子任务被分配至资源Y执行时,则神经网络模型的第i层则在资源Y上执行。
本申请中,上述的分配方式为各子任务分配给各资源的方式。例如,计算任务中包括A1、A2以及A3三个子任务,异构资源中包括B1以及B2两个资源。则在进行子任务的分配时存在如下六种分配方式:
第一种分配方式:A1被分配至B1;
第二种分配方式:A1被分配至B2;
第三种分配方式:A2被分配至B1;
第四种分配方式:A2被分配至B2;
第五种分配方式:A3被分配至B1;
第六种分配方式:A3被分配至B2。
其中,针对上述的每一种分配方式存在对应的任务处理成本。本申请根据任务信息以及资源信息,确定各分配方式对应的任务处理成本。例如,针对上述的第一种分配方式可以根据A1的任务信息以及B1的资源信息,计算其对应的任务处理成本M1。同理,针对第二种分配方式也可以计算出其对应的任务处理成本M2。以此类推,将全部的分配方式的任务处理成本均计算出来,分别可以得到对应的六个任务处理成本,分别为M1、M2、M3、M4、M5以及M6。
本申请中,上述的任务信息具体可以包括子任务的任务个数、各子任务的任务标识、各子任务的任务内容等信息。上述的资源信息可以包括资源的个数、各资源的资源标识、各资源的资源类型以及各资源的运行速度,还可以包括各资源的其他属性信息等。其中,各资源的资源类型可以为如CPU、GPU以及FPGA等。
S13、根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径。
本申请中,上述的有向无环图具体为一个无回路的有向图。其中,上述的有向无环图可以包括多个节点以及多个边。其中的节点对应一个子任务被分配至一个资源执行时的计算操作。其中的边对应一个子任务被一个资源执行时产生的输出被传输至下一个资源的数据移动操作。
可以理解的,上述的各分配方式对应存在一个任务执行的计算操作,因此,一个分配方式则对应存在一个节点。在各分配方式下,各子任务被资源执行时会产生输出结果,该输出结果需要传输至下一个资源作为下一个子任务处理过程的输入,那么对应会存在一个数据的移动过程,也就是对应上述的边。综上,一个分配方式会存在一个节点以及一个边与之对应。也就是根据各分配方式对应可以创建一个节点以及一个边。
进一步的,继续以上述的例子为例,当计算任务中包括A1、A2以及A3三个子任务,异构资源中包括B1以及B2两个资源时,则存在六种分配方式。其中,A1有两种分配方式,A2有两种分配方式,A3有两种分配方式。各子任务的分配方式组合成整个计算任务的分配路径。即总的分配路径包括2*2*2=8种分配路径。因此,上述的有向无环图中包括了该8种分配路径。
S14、根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值。
本申请中,针对每一条分配路径会产生一个损失函数的值。其中,损失函数为各分配路径上所产生的任务处理成本之和。在上述例子中,计算任务中包括A1、A2以及A3三个子任务,异构资源中包括B1以及B2两个资源。其中的一条分配路径为,A1B1-A2B2-A3B1。该分配路径对应的任务处理成本之和为M1+M4+M5。因此,该分配路径对应的损失函数的取值为M1+M4+M5。以此类推,可以计算出各分配路径对应的损失函数的值。
S15、根据各分配路径对应的损失函数的值筛选出目标分配路径。
在异构计算资源中,神经网络的训练可以看成是最小化损失函数的过程。因此,本申请基于最小化损失函数的值为目的筛选出目标分配路径。而本申请的损失函数的值等于分配路径中各子任务对应的任务处理成本的总和,因此,可以根据分配路径中各子任务对应的任务处理成本的总和最小筛选出上述的目标分配路径。
综上所述,本申请通过根据神经网络模型的层级将计算任务划分为多个子任务,对该多个子任务进行分配,分配至异构资源中的多种资源,以便异构资源对各子任务进行执行,实现了神经网络任务在异构资源中的分配,提高了任务的分配粒度,拓宽了方案的应用范围。另外,本申请基于成本最低为优化目标,筛选出最优的目标分配路径,使得当按照该目标分配路径进行任务调度时,任务处理成本最低,理论上提升了任务的处理效率。
在其中一个实施例中,上述的任务处理成本包括执行成本以及通信成本,上述的任务信息包括各子任务之间的任务执行顺序以及任务标识,资源信息包括异构资源中各资源的运行速度,根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本,可以包括:
根据各资源的运行速度以及各子任务的任务标识确定各分配方式对应的执行成本;
根据任务执行顺序确定执行各子任务所分配的资源所属的神经网络的层级;
根据各资源所属的神经网络的层级以及神经网络各层级之间传输数据的预设个数,生成通信成本,通信成本为将各子任务的执行结果传输至下一层级的传输成本。
本申请中,上述的执行成本可以为资源在执行子任务时的执行时间消耗。由于神经网络的计算任务中一个任务的输出需要作为下一个任务执行的输入。因此,上述的通信成本可以为将一个子任务的输出传输给下一个资源的传输时间消耗。上述的任务标识可以为服务器预先为各子任务设定的标识信息。
具体的,假设每一个任务由N个子任务,···,组成,各子任务的执行遵守任务执行顺序。子任务的输出是子任务的输入,且有个数据会转移给任务。系统有个计算单元,···,,子任务可以在任意一个计算资源中执行,执行成本为。子任务与资源之间的映射关系为,这代表子任务被指派给资源执行。
上述的根据任务执行顺序确定执行各子任务所分配的资源所属的神经网络的层级,可以包括:
在当前子任务为第一个被执行的任务时,则执行该子任务的资源则为神经网络的第一层级,在当前子任务为第二个被执行的任务时,则执行该子任务的资源为神经网络的第二层级,以此类推,直至最后一个资源的所属神经网络的层级被确定。
进一步的,上述的神经网络的各层级之间传输数据的个数预先设定。假设表示从计算资源传输一单位数据的通信成本,子任务中共有个数据需要传输,则执行子任务的通信成本为,。本申请根据该表达式计算出各子任务被执行时的执行成本以及通信成本。
另一种实施方式中,本申请还可以计算出各分配路径对应的各执行成本之和以及通信成本之和。具体的,各分配路径对应的执行成本之和为:
各分配路径对应的通信成本之和为:
本申请基于执行成本以及通信成本之和最小化筛选出最优的目标分配路径,按照目标分配路径进行任务分配可以使得最终的任务处理成本最小,任务执行的时间最短,提升任务执行的效率。
在其中一个实施例中,上述的根据各分配方式以及各任务处理成本构建有向无环图,可以包括:
创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本;
根据任务执行顺序获取下一个子任务标识;
创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本;
创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本;
当所述下一个子任务不是最后一个子任务时,返回所述根据所述任务执行顺序获取下一个子任务标识的步骤。
请参考图3,提供了一个实施例中,上述的根据各分配方式以及各任务处理成本构建有向无环图步骤的细化步骤流程示意图。如图3所示,在其中一个实施例中,上述的根据各分配方式以及各任务处理成本构建有向无环图,可以包括:
S31、创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本;
S32、判断当前子任务是否为最后一个子任务;
S33、若是,以当前节点为结束节点,流程结束;
S34、否则,根据任务执行顺序获取下一个子任务标识;
S35、创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本;
S36、创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本;
S37、判断下一个子任务是否为最后一个子任务,若下一个任务不是最后一个任务,返回根据任务执行顺序获取下一个子任务标识的步骤。
S38、若下一个任务为最后一个任务,以下一个任务为结束节点,流程结束。
本申请中,上述的有向无环图包括多个节点以及多个边。其中,上述的节点用于表征子任务被资源执行时的计算操作。上述的边用于表征子任务被资源执行时产生的输出结果需要传输至下一个资源的数据移动操作。
在构造有向无环图之后,需要给有向图中的节点和边赋权重。节点的权重为,即代表正在执行的子任务在计算资源上进行运算,且节点的权重代表执行成本。边的权重为,该权重代表通信成本,代表第个子任务与第个子任务之间的通讯代价,且它们分别在资源和上计算。
请参考图4,一个实施例中,本申请提供有向无环图的示意图。如图4所示,该有向无环图中包括起始节点41、节点43、节点43的权重42、节点45、节点43与节点45之间的边44、边44的权重47以及结束节点46。
起始节点41为S,节点43的权重42等于,该权重代表子任务被分配至资源执行时的执行成本。边44的权重47等于,该权重代表节点43的输出结果传输至节点45对应的资源所消耗的通信成本。由图4可知,当选定一条分配路径时,该分配路径上每个节点存在一个执行成本以及一个通信成本。
例如,在上述的例子中,计算任务中包括A1、A2以及A3三个子任务,异构资源中包括B1以及B2两个资源。则在进行子任务的分配时存在如下六种分配方式:
第一种分配方式S1:A1被分配至B1;
第二种分配方式S2:A1被分配至B2;
第三种分配方式S3:A2被分配至B1;
第四种分配方式S4:A2被分配至B2;
第五种分配方式S5:A3被分配至B1;
第六种分配方式S6:A3被分配至B2。
由于每一个分配方式对应着一个子任务被一个资源执行,则该分配方式下会存在对应的计算操作,因此,针对各分配方式需要创建一个节点。针对上述的分配方式S1可以创建一个节点,针对上述的分配方式S2可以创建一个节点,以此类推,该例子需创建6个节点。
具体的,以其中一条分配路径A1B1-A2B2-A3B1为例,该分配路径中包括三个节点A1B1、A2B2以及A3B1。另外,该分配路径中还包括两条边。第一个节点A1B1代表子任务A1被分配至资源B1执行,服务器计算节点A1B1的执行成本,该执行成本即为节点A1B1的权重。A1B1的输出需要传输至第二个节点A2B2作为输入,该过程会产生通信成本,该通信成本为节点A1B1与节点A2B2之间的边的权重。
本申请通过基于执行成本以及通信成本构建有向无环图,以筛选出最优的目标分配路径,使得筛选出的目标分配路径在任务处理成本上最低,并且使得分配路径的筛选更加直观。
在其中一个实施例中,上述的方法还可以包括:
当根据任务执行顺序确定当前子任务为第一个任务时,当前节点为有向无环图的起始节点,将起始节点的权重替换为第一预设权重;
当当前子任务为最后一个任务时,当前节点为有向无环图的结束节点,将结束节点的权重替换为第二预设权重。
本申请中,上述的第一预设权重以及第二预设权重可以设为0。为了便于简化计算上述的第一预设权重以及第二预设权重也可以设为其他值。
为了简化标记,本发明加入两个0权重的节点,代表神经网络计算的起始节点和结束节点。起始节点与所有第一个子任务的节点链接,所有最终的子任务将与结束节点链接,且权重为0。本申请通过引入0权重的起始节点以及结束节点可以简化计算,提高目标分配路径的生成效率。
在其中一个实施例中,上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值,可以包括:
确定各分配路径中的各节点的权重以及各边的权重的总和,得到各分配路径对应的损失函数的值。
本申请中,损失函数的表达式可以为如下表达式(1-1):
其中,上述的C代表损失函数。
由表达式(1-1)可知,损失函数的值等于分配路径中各子任务对应的执行成本之和加上各通信成本之和。各分配路径中的各节点的权重等于子任务对应的执行成本,各边的权重等于子任务对应的通信成本。则通过确定各分配路径中的各节点的权重以及各边的权重的总和,可以得到各分配路径对应的损失函数的值。
在其中一个实施例中,上述的方法还可以包括:
将各节点进行松弛操作,得到各节点对应的新增边,新增边的权重为对应的节点的权重;
上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值,可以包括:
确定各分配路径中的各边以及各新增边的权重的总和,得到各分配路径对应的损失函数的值。
本申请中,将各节点进行松弛操作,可以将每个节点转换成两个节点,并得到一条新增边,新增边的权重等于对应转换前的节点的权重,使得各节点的权重拓展成边的权重。当将各节点进行松弛操作之后后续计算各分配路径的损失函数的值时,仅需计算各边的权重之和即可,使得更好的适配最短路径算法。
请参考图5,一个实施例中,提供了一种对节点进行松弛操作之后的有向无环图的示意图。如图5所示,对节点进行松弛操作后的有向无环图中包括起始节点51、松弛后的新增节点52以及53、新增节点52与节点53之间的新增边54、新增边54的权重55、松弛后的新增节点56以点57,还包括新增节点56与57之间的新增边58、新增边58的权重59以及结束节点60。新增边54的权重为松弛之前对应的原节点的权重。新增边58的权重为松弛前对应的原节点的权重。本申请通过松弛操作将原各节点扩展成两个节点以及新增边,将原节点的权重赋予新增边,以使得将节点的权重转换成边的权重,以便更好的计算损失函数值。
在其中一个实施例中,上述的根据各分配路径对应的损失函数的值筛选出目标分配路径,可以包括:
筛选出损失函数的值最小的分配路径为目标分配路径。
本申请中,构造了有向无环图后,可以按照广度优先算法计算图中最短路径。具体的,从顶点出发,发现所有可到达的节点,并记录各分配路径上边的权重,直到搜索到终点则停止搜索。得到计算任务经过神经网络各层计算后的任务处理成本的总和,任务处理成本的总和最小的分配路径即为目标分配路径。
上述的表达式(1-2)代表起始层神经网络对应的损失函数的值。上述的表达式(1-3)代表第i层神经网络对应的损失函数的值,上述的表达式(1-4)代表第N层神经网络对应的损失函数的值。
基于上述神经网络的训练原理,本申请可以以最小化损失函数的值为优化目的从各分配路径中筛选出最优的目标路径,即筛选出损失函数的值最小的分配路径即为目标分配路径。
一个实施例中,上述的方法还可以包括:
根据目标分配路径执行任务调度;
或者,当接收到调度服务器发送的目标分配路径的获取请求时,向调度服务器发送目标分配路径,以便调度服务器根据目标分配路径执行任务调度。
一个实施例中,上述的异构资源中神经网络计算任务的分配方法也可以通过以下步骤来实现:
步骤2:输入当前计算任务,随机取某批数据作为当前计算任务用于计算有向无环图上权重。
步骤5:判断是否为最后一层,不是则继续,是则转至步骤8;
步骤9:按照广度优先算法计算图中最短路径,从顶点出发,发现所有可到达的节点,并记录分配路径上边的权重,直到搜索到终点则停止搜索。得到批数据经过神经网络各层计算后的任务处理成本的总和,最小总和对应目标分配方案。
在一个实施例中,如图6所示,提供了一种异构资源中神经网络计算任务的分配装置,包括:获取模块11、分配模块12、构建模块13、处理模块14以及筛选模块15,其中:
获取模块11,用于获取计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;
分配模块12,用于根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;
构建模块13,用于根据各分配方式、各任务处理成本以及预先训练的神经网络模型构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;
处理模块14,用于根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;
筛选模块15,用于根据各分配路径对应的损失函数的值筛选出目标分配路径。
在其中一个实施例中,上述的任务处理成本包括执行成本以及通信成本,上述的任务信息包括各子任务之间的任务执行顺序以及任务标识,资源信息包括异构资源中各资源的运行速度,上述的分配模块12可以根据任务执行顺序依次为各子任务分配资源,得到各分配方式,根据各资源的运行速度以及各子任务的任务标识确定各分配方式对应的执行成本,根据任务执行顺序确定执行各子任务所分配的资源所属的神经网络的层级,根据各资源所属的神经网络的层级以及神经网络各层级之间传输数据的预设个数,生成通信成本,通信成本为将各子任务的执行结果传输至下一层级的传输成本。
在其中一个实施例中,上述的构建模块13可以创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本,根据任务执行顺序获取下一个子任务标识,创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本,创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本,当所述下一个子任务不是最后一个子任务时,返回所述根据所述任务执行顺序获取下一个子任务标识的步骤。
在其中一个实施例中,上述的装置还包括设置模块(图未示),该设置模块可以当根据任务执行顺序确定当前子任务为第一个任务时,当前节点为有向无环图的起始节点,将起始节点的权重替换为第一预设权重,当当前子任务为最后一个任务时,当前节点为有向无环图的结束节点,将结束节点的权重替换为第二预设权重。
在其中一个实施例中,上述的处理模块14可以确定各分配路径中的各节点的权重以及各边的权重的总和,得到各分配路径对应的损失函数的值。
在其中一个实施例中,上述的装置还包括松弛模块(图未示),该松弛模块可以将各节点进行松弛操作,得到各节点对应的新增边,新增边的权重为对应的节点的权重,上述的处理模块14可以确定各分配路径中的各边以及各新增边的权重的总和,得到各分配路径对应的损失函数的值。
在其中一个实施例中,上述的筛选模块15可以筛选出损失函数的值最小的分配路径为目标分配路径。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能家居设备的运行数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现编译虚拟机的资源分配方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;根据各分配路径对应的损失函数的值筛选出目标分配路径。
在一个实施例中,上述的任务处理成本包括执行成本以及通信成本,上述的任务信息包括各子任务之间的任务执行顺序以及任务标识,资源信息包括异构资源中各资源的运行速度,处理器执行计算机程序实现上述的根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本步骤时,具体实现以下步骤:
根据任务执行顺序依次为各子任务分配资源,得到各分配方式;
根据各资源的运行速度以及各子任务的任务标识确定各分配方式对应的执行成本;
根据任务执行顺序确定执行各子任务所分配的资源所属的神经网络的层级;
根据各资源所属的神经网络的层级以及神经网络各层级之间传输数据的预设个数,生成通信成本,通信成本为将各子任务的执行结果传输至下一层级的传输成本。
在一个实施例中,处理器执行计算机程序实现上述的根据各分配方式以及各任务处理成本构建有向无环图步骤时,具体实现以下步骤:
创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本;
根据任务执行顺序获取下一个子任务标识;
创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本;
创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本;
当所述下一个子任务不是最后一个子任务时,返回所述根据所述任务执行顺序获取下一个子任务标识的步骤。
在一个实施例中,处理器执行计算机程序时具体实现以下步骤:
当根据任务执行顺序确定当前子任务为第一个任务时,当前节点为有向无环图的起始节点,将起始节点的权重替换为第一预设权重;
当当前子任务为最后一个任务时,当前节点为有向无环图的结束节点,将结束节点的权重替换为第二预设权重。
在一个实施例中,处理器执行计算机程序实现上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值步骤时,具体实现以下步骤:
确定各分配路径中的各节点的权重以及各边的权重的总和,得到各分配路径对应的损失函数的值。
在一个实施例中,处理器执行计算机程序时具体实现以下步骤:
将各节点进行松弛操作,得到各节点对应的新增边,新增边的权重为对应的节点的权重;
在一个实施例中,处理器执行计算机程序实现上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值步骤时,具体实现以下步骤:
确定各分配路径中的各边以及各新增边的权重的总和,得到各分配路径对应的损失函数的值。
在一个实施例中,处理器执行计算机程序实现上述的根据各分配路径对应的损失函数的值筛选出目标分配路径步骤时具体实现以下步骤:
筛选出损失函数的值最小的分配路径为目标分配路径。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取神经网络的计算任务的任务信息以及用于执行计算任务的异构资源的资源信息,计算任务包括多个子任务;根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本;根据各分配方式以及各任务处理成本构建有向无环图,有向无环图包括将各子任务分配至异构资源执行时对应的分配路径;根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值;根据各分配路径对应的损失函数的值筛选出目标分配路径。
在一个实施例中,上述的任务处理成本包括执行成本以及通信成本,上述的任务信息包括各子任务之间的任务执行顺序以及任务标识,资源信息包括异构资源中各资源的运行速度,计算机程序被处理器执行实现上述的根据任务信息以及资源信息确定将各子任务分配至异构资源执行的至少两种分配方式以及各分配方式对应的任务处理成本步骤时,具体实现以下步骤:
根据任务执行顺序依次为各子任务分配资源,得到各分配方式;
根据各资源的运行速度以及各子任务的任务标识确定各分配方式对应的执行成本;
根据任务执行顺序确定执行各子任务所分配的资源所属的神经网络的层级;
根据各资源所属的神经网络的层级以及神经网络各层级之间传输数据的预设个数,生成通信成本,通信成本为将各子任务的执行结果传输至下一层级的传输成本。
在一个实施例中,计算机程序被处理器执行实现上述的根据各分配方式以及各任务处理成本构建有向无环图步骤时,具体实现以下步骤:
创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本;
根据任务执行顺序获取下一个子任务标识;
创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本;
创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本;
当所述下一个子任务不是最后一个子任务时,返回所述根据所述任务执行顺序获取下一个子任务标识的步骤。
在一个实施例中,计算机程序被处理器执行时具体实现以下步骤:
当根据任务执行顺序确定当前子任务为第一个任务时,当前节点为有向无环图的起始节点,将起始节点的权重替换为第一预设权重;
当当前子任务为最后一个任务时,当前节点为有向无环图的结束节点,将结束节点的权重替换为第二预设权重。
在一个实施例中,计算机程序被处理器执行实现上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值步骤时,具体实现以下步骤:
确定各分配路径中的各节点的权重以及各边的权重的总和,得到各分配路径对应的损失函数的值。
在一个实施例中,计算机程序被处理器执行时具体实现以下步骤:
将各节点进行松弛操作,得到各节点对应的新增边,新增边的权重为对应的节点的权重;
在一个实施例中,计算机程序被处理器执行实现上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值步骤时,具体实现以下步骤:
确定各分配路径中的各边以及各新增边的权重的总和,得到各分配路径对应的损失函数的值。
在一个实施例中,计算机程序被处理器执行实现上述的根据各分配路径对应的损失函数的值筛选出目标分配路径步骤时具体实现以下步骤:
筛选出损失函数的值最小的分配路径为目标分配路径。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种异构资源中神经网络计算任务的分配方法,所述方法包括:
获取神经网络的计算任务的任务信息以及用于执行所述计算任务的异构资源的资源信息,所述计算任务包括多个子任务;
根据所述任务信息以及所述资源信息确定将各所述子任务分配至所述异构资源执行的至少两种分配方式,根据所述资源信息确定各所述分配方式对应的执行成本,根据所述任务信息确定执行各所述子任务所分配的资源所属的所述神经网络的层级,根据各资源所属的所述神经网络的层级,生成各所述子任务被执行时的通信成本,各所述子任务被执行时的通信成本为将各所述子任务的执行结果传输至下一层级的传输成本;
根据各所述分配方式、各所述分配方式对应的执行成本以及各所述子任务被执行时的通信成本构建有向无环图,所述有向无环图包括将各所述子任务分配至所述异构资源执行时对应的分配路径;
根据各所述分配路径中各所述子任务对应的执行成本以及通信成本,得到各分配路径对应的损失函数的值;
根据各分配路径对应的损失函数的值筛选出目标分配路径。
2.根据权利要求1所述的方法,其特征在于,所述任务信息包括各所述子任务之间的任务执行顺序以及任务标识,所述资源信息包括所述异构资源中各资源的运行速度,所述根据所述任务信息以及所述资源信息确定将各所述子任务分配至所述异构资源执行的至少两种分配方式,根据所述资源信息确定各所述分配方式对应的执行成本,根据所述任务信息确定执行各所述子任务所分配的资源所属的所述神经网络的层级,根据各资源所属的所述神经网络的层级,生成各所述子任务被执行时的通信成本,包括:
根据所述任务执行顺序依次为各所述子任务分配资源,得到各分配方式;
根据各资源的运行速度以及各所述子任务的任务标识确定各分配方式对应的执行成本;
根据所述任务执行顺序确定执行各所述子任务所分配的资源所属的所述神经网络的层级;
根据各资源所属的所述神经网络的层级以及所述神经网络各层级之间传输数据的预设个数,生成各所述子任务被执行时的通信成本。
3.根据权利要求2所述的方法,其特征在于,所述根据各所述分配方式、各所述分配方式对应的执行成本以及各所述子任务被执行时的通信成本构建有向无环图,包括:
创建当前节点,所述当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,所述当前节点的权重为所述当前子任务由所述当前资源执行时的执行成本;
根据所述任务执行顺序获取下一个子任务标识;
创建下一个节点,所述下一个节点为所述下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,所述下一个节点的权重为所述下一个子任务由所述下一个资源执行时的执行成本;
创建所述当前节点与所述下一个节点之间的边,所述边的权重为所述当前子任务由所述当前资源执行时的通信成本;
当所述下一个子任务不是最后一个子任务时,返回所述根据所述任务执行顺序获取下一个子任务标识的步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当根据所述任务执行顺序确定所述当前子任务为第一个任务时,所述当前节点为所述有向无环图的起始节点,将所述起始节点的权重替换为第一预设权重;
当所述当前子任务为最后一个任务时,所述当前节点为所述有向无环图的结束节点,将所述结束节点的权重替换为第二预设权重。
5.根据权利要求3或4所述的方法,其特征在于,所述根据各所述分配路径中各所述子任务对应的执行成本以及通信成本,得到各分配路径对应的损失函数的值,包括:
确定各分配路径中的各节点的权重以及各边的权重的总和,得到各分配路径对应的损失函数的值。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将各节点进行松弛操作,得到各节点对应的新增边,所述新增边的权重为对应的节点的权重;
所述根据各所述分配路径中各所述子任务对应的执行成本以及通信成本,得到各分配路径对应的损失函数的值,包括:
确定各分配路径中的各边以及各新增边的权重的总和,得到各分配路径对应的损失函数的值。
7.根据权利要求1所述的方法,其特征在于,所述根据各分配路径对应的损失函数的值筛选出目标分配路径,包括:
筛选出损失函数的值最小的分配路径为所述目标分配路径。
8.一种异构资源中神经网络计算任务的分配装置,所述装置包括:
获取模块,用于获取神经网络的计算任务的任务信息以及用于执行所述计算任务的异构资源的资源信息,所述计算任务包括多个子任务;
分配模块,用于根据所述任务信息以及所述资源信息确定将各所述子任务分配至所述异构资源执行的至少两种分配方式,根据所述资源信息确定各所述分配方式对应的执行成本,根据所述任务信息确定执行各所述子任务所分配的资源所属的所述神经网络的层级,根据各资源所属的所述神经网络的层级,生成各所述子任务被执行时的通信成本,各所述子任务被执行时的通信成本为将各所述子任务的执行结果传输至下一层级的传输成本;
构建模块,用于根据各所述分配方式、各所述分配方式对应的执行成本以及各所述子任务被执行时的通信成本构建有向无环图,所述有向无环图包括将各所述子任务分配至所述异构资源执行时对应的分配路径;
处理模块,用于根据各所述分配路径中各所述子任务对应的执行成本以及通信成本,得到各分配路径对应的损失函数的值;
筛选模块,用于根据各分配路径对应的损失函数的值筛选出目标分配路径。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111297679.1A CN113742089B (zh) | 2021-11-04 | 2021-11-04 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
PCT/CN2022/090020 WO2023077750A1 (zh) | 2021-11-04 | 2022-04-28 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111297679.1A CN113742089B (zh) | 2021-11-04 | 2021-11-04 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113742089A CN113742089A (zh) | 2021-12-03 |
CN113742089B true CN113742089B (zh) | 2022-02-18 |
Family
ID=78727352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111297679.1A Active CN113742089B (zh) | 2021-11-04 | 2021-11-04 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113742089B (zh) |
WO (1) | WO2023077750A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742089B (zh) * | 2021-11-04 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
CN114860417B (zh) * | 2022-06-15 | 2023-05-02 | 中科物栖(北京)科技有限责任公司 | 多核神经网络处理器及用于该处理器多任务分配调度方法 |
CN116501503B (zh) * | 2023-06-27 | 2023-09-15 | 上海燧原科技有限公司 | 负载任务的架构映射方法、装置、计算机设备及介质 |
CN117648179A (zh) * | 2023-11-23 | 2024-03-05 | 北京菱云科技有限公司 | 一种资源分配方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711478A (zh) * | 2019-10-24 | 2021-04-27 | 珠海零边界集成电路有限公司 | 基于神经网络的任务处理方法、装置、服务器和存储介质 |
CN113420880A (zh) * | 2021-08-24 | 2021-09-21 | 苏州浪潮智能科技有限公司 | 网络模型训练方法、装置、电子设备及可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468452B (zh) * | 2014-09-04 | 2019-04-12 | 中国联合网络通信集团有限公司 | 一种资源池的分配方法及资源调度器 |
JP6470426B2 (ja) * | 2015-11-13 | 2019-02-13 | 日本電信電話株式会社 | リソース割当装置及びリソース割当方法 |
CN107015856A (zh) * | 2017-03-30 | 2017-08-04 | 青海大学 | 云环境下科学工作流中的任务调度方案生成方法及装置 |
US20200249998A1 (en) * | 2019-02-01 | 2020-08-06 | Alibaba Group Holding Limited | Scheduling computation graph heterogeneous computer system |
CN111142938B (zh) * | 2019-11-20 | 2023-07-07 | 深圳先进技术研究院 | 一种异构芯片的任务处理方法、任务处理装置及电子设备 |
CN111291930A (zh) * | 2020-01-21 | 2020-06-16 | 北京猎户星空科技有限公司 | 任务分配方法、装置以及计算设备、存储介质 |
CN112565082B (zh) * | 2020-12-25 | 2022-06-17 | 鹏城实验室 | 基于混合网络的服务链映射方法、智能终端及存储介质 |
CN112506669B (zh) * | 2021-01-29 | 2021-06-18 | 浙江大华技术股份有限公司 | 任务分配方法和装置、存储介质及电子设备 |
CN113742089B (zh) * | 2021-11-04 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 异构资源中神经网络计算任务的分配方法、装置和设备 |
-
2021
- 2021-11-04 CN CN202111297679.1A patent/CN113742089B/zh active Active
-
2022
- 2022-04-28 WO PCT/CN2022/090020 patent/WO2023077750A1/zh unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112711478A (zh) * | 2019-10-24 | 2021-04-27 | 珠海零边界集成电路有限公司 | 基于神经网络的任务处理方法、装置、服务器和存储介质 |
CN113420880A (zh) * | 2021-08-24 | 2021-09-21 | 苏州浪潮智能科技有限公司 | 网络模型训练方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113742089A (zh) | 2021-12-03 |
WO2023077750A1 (zh) | 2023-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113742089B (zh) | 异构资源中神经网络计算任务的分配方法、装置和设备 | |
CN110413389B (zh) | 一种资源不均衡Spark环境下的任务调度优化方法 | |
CN111427681A (zh) | 边缘计算中基于资源监控的实时任务匹配调度系统和方法 | |
CN105975342A (zh) | 基于改进布谷鸟搜索算法的云计算任务调度方法及系统 | |
Long et al. | Agent scheduling model for adaptive dynamic load balancing in agent-based distributed simulations | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
Ali et al. | A cost and energy efficient task scheduling technique to offload microservices based applications in mobile cloud computing | |
CN113037800B (zh) | 作业调度方法以及作业调度装置 | |
CN112101525A (zh) | 一种通过nas设计神经网络的方法、装置和系统 | |
Li et al. | An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters | |
KR20190054449A (ko) | 이종 클러스터 환경에서 신경망 트레이닝 가속화를 위한 연산 노드 배치 기법 | |
CN115934333A (zh) | 基于历史数据感知的云计算资源调度方法及调度系统 | |
CN112732444A (zh) | 一种面向分布式机器学习的数据划分方法 | |
Keerthika et al. | A multiconstrained grid scheduling algorithm with load balancing and fault tolerance | |
Sukhija et al. | Portfolio-based selection of robust dynamic loop scheduling algorithms using machine learning | |
CN114461368A (zh) | 一种基于协同果蝇算法的多目标云工作流调度方法 | |
CN117271101B (zh) | 一种算子融合方法、装置、电子设备及存储介质 | |
WO2021115082A1 (zh) | 作业调度方法以及作业调度装置 | |
CN110119399A (zh) | 基于机器学习的业务流程优化方法 | |
Pérez et al. | Parallel/distributed implementation of cellular training for generative adversarial neural networks | |
CN112187535B (zh) | 雾计算环境下服务器部署方法及装置 | |
Devagnanam et al. | Design and development of exponential lion algorithm for optimal allocation of cluster resources in cloud | |
Shojafar et al. | ALATO: an efficient intelligent algorithm for time optimization in an economic grid based on adaptive stochastic Petri net | |
Samikwa et al. | Disnet: Distributed micro-split deep learning in heterogeneous dynamic iot | |
Dandachi et al. | A robust monte-carlo-based deep learning strategy for virtual network embedding |
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 |