CN113742089B - 异构资源中神经网络计算任务的分配方法、装置和设备 - Google Patents

异构资源中神经网络计算任务的分配方法、装置和设备 Download PDF

Info

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
Application number
CN202111297679.1A
Other languages
English (en)
Other versions
CN113742089A (zh
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 Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111297679.1A priority Critical patent/CN113742089B/zh
Publication of CN113742089A publication Critical patent/CN113742089A/zh
Application granted granted Critical
Publication of CN113742089B publication Critical patent/CN113742089B/zh
Priority to PCT/CN2022/090020 priority patent/WO2023077750A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

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个子任务
Figure 202770DEST_PATH_IMAGE001
,···,
Figure 572441DEST_PATH_IMAGE002
组成,各子任务的执行遵守任务执行顺序。子任务
Figure 493123DEST_PATH_IMAGE003
的输出是子任务
Figure 419491DEST_PATH_IMAGE004
的输入,且有
Figure 391120DEST_PATH_IMAGE005
个数据会转移给任务
Figure 416845DEST_PATH_IMAGE004
。系统有
Figure 949458DEST_PATH_IMAGE006
个计算单元
Figure 600888DEST_PATH_IMAGE007
,···,
Figure 676291DEST_PATH_IMAGE008
,子任务
Figure 200813DEST_PATH_IMAGE009
可以在任意一个计算资源
Figure 124119DEST_PATH_IMAGE010
中执行,执行成本为
Figure 126710DEST_PATH_IMAGE011
。子任务与资源之间的映射关系为
Figure 56620DEST_PATH_IMAGE012
,这代表子任务
Figure 17622DEST_PATH_IMAGE009
被指派给资源
Figure 915040DEST_PATH_IMAGE014
执行。
其中,假设资源
Figure 721322DEST_PATH_IMAGE015
的运行速度为
Figure 568055DEST_PATH_IMAGE017
Figure 60479DEST_PATH_IMAGE018
为子任务标识,则执行成本为
Figure 320559DEST_PATH_IMAGE019
,因此,本申请根据
Figure 805898DEST_PATH_IMAGE019
确定各分配方式对应的执行成本。
上述的根据任务执行顺序确定执行各子任务所分配的资源所属的神经网络的层级,可以包括:
在当前子任务为第一个被执行的任务时,则执行该子任务的资源则为神经网络的第一层级,在当前子任务为第二个被执行的任务时,则执行该子任务的资源为神经网络的第二层级,以此类推,直至最后一个资源的所属神经网络的层级被确定。
进一步的,上述的神经网络的各层级之间传输数据的个数预先设定。假设
Figure 569455DEST_PATH_IMAGE020
表示从计算资源传输一单位数据的通信成本,子任务
Figure 996894DEST_PATH_IMAGE003
中共有
Figure 478691DEST_PATH_IMAGE021
个数据需要传输,则执行子任务
Figure 767721DEST_PATH_IMAGE003
的通信成本为
Figure 651363DEST_PATH_IMAGE022
Figure 751168DEST_PATH_IMAGE023
。本申请根据该表达式计算出各子任务被执行时的执行成本以及通信成本。
另一种实施方式中,本申请还可以计算出各分配路径对应的各执行成本之和以及通信成本之和。具体的,各分配路径对应的执行成本之和为:
Figure 720261DEST_PATH_IMAGE024
各分配路径对应的通信成本之和为:
Figure 344141DEST_PATH_IMAGE025
本申请基于执行成本以及通信成本之和最小化筛选出最优的目标分配路径,按照目标分配路径进行任务分配可以使得最终的任务处理成本最小,任务执行的时间最短,提升任务执行的效率。
在其中一个实施例中,上述的根据各分配方式以及各任务处理成本构建有向无环图,可以包括:
创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本;
根据任务执行顺序获取下一个子任务标识;
创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本;
创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本;
当所述下一个子任务不是最后一个子任务时,返回所述根据所述任务执行顺序获取下一个子任务标识的步骤。
请参考图3,提供了一个实施例中,上述的根据各分配方式以及各任务处理成本构建有向无环图步骤的细化步骤流程示意图。如图3所示,在其中一个实施例中,上述的根据各分配方式以及各任务处理成本构建有向无环图,可以包括:
S31、创建当前节点,当前节点为当前子任务分配至当前资源执行的任务执行操作对应的节点,当前节点的权重为当前子任务由当前资源执行时的执行成本;
S32、判断当前子任务是否为最后一个子任务;
S33、若是,以当前节点为结束节点,流程结束;
S34、否则,根据任务执行顺序获取下一个子任务标识;
S35、创建下一个节点,下一个节点为下一个子任务标识对应的子任务分配至下一个资源执行的任务执行操作对应的节点,下一个节点的权重为下一个子任务由下一个资源执行时的执行成本;
S36、创建当前节点与下一个节点之间的边,边的权重为当前子任务由当前资源执行时的通信成本;
S37、判断下一个子任务是否为最后一个子任务,若下一个任务不是最后一个任务,返回根据任务执行顺序获取下一个子任务标识的步骤。
S38、若下一个任务为最后一个任务,以下一个任务为结束节点,流程结束。
本申请中,上述的有向无环图包括多个节点以及多个边。其中,上述的节点用于表征子任务被资源执行时的计算操作。上述的边用于表征子任务被资源执行时产生的输出结果需要传输至下一个资源的数据移动操作。
本申请构建了一个有向无环图
Figure 551131DEST_PATH_IMAGE026
其中,节点集合为
Figure 117111DEST_PATH_IMAGE027
边集合为
Figure 448866DEST_PATH_IMAGE028
,其中,
Figure 204332DEST_PATH_IMAGE030
代表第
Figure 423086DEST_PATH_IMAGE030
个资源,即共有
Figure DEST_PATH_IMAGE031
个节点。也就是说,有
Figure 645120DEST_PATH_IMAGE032
组节点,每个节点对应一个子任务,每组有
Figure 588805DEST_PATH_IMAGE033
个节点,每个节点对应一个资源。进一步,我们将第
Figure 272597DEST_PATH_IMAGE034
个任务组中的每个节点连接到第
Figure 985338DEST_PATH_IMAGE035
个节点组中的每个节点。
在构造有向无环图之后,需要给有向图中的节点和边赋权重。节点
Figure 581535DEST_PATH_IMAGE036
的权重为
Figure 12517DEST_PATH_IMAGE037
,即代表正在执行的子任务
Figure 735884DEST_PATH_IMAGE038
在计算资源
Figure 568711DEST_PATH_IMAGE039
上进行运算,且节点的权重
Figure 335810DEST_PATH_IMAGE040
代表执行成本。边
Figure 254087DEST_PATH_IMAGE041
的权重为
Figure 279681DEST_PATH_IMAGE042
,该权重代表通信成本,代表第
Figure 701435DEST_PATH_IMAGE044
个子任务与第
Figure 639435DEST_PATH_IMAGE045
个子任务之间的通讯代价,且它们分别在资源
Figure 779429DEST_PATH_IMAGE044
Figure 110179DEST_PATH_IMAGE047
上计算。
请参考图4,一个实施例中,本申请提供有向无环图的示意图。如图4所示,该有向无环图中包括起始节点41、节点43、节点43的权重42、节点45、节点43与节点45之间的边44、边44的权重47以及结束节点46。
起始节点41为S,节点43的权重42等于
Figure 652019DEST_PATH_IMAGE048
,该权重代表子任务
Figure 823237DEST_PATH_IMAGE049
被分配至资源
Figure 653790DEST_PATH_IMAGE050
执行时的执行成本。边44的权重47等于
Figure 817924DEST_PATH_IMAGE051
,该权重代表节点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):
Figure 89636DEST_PATH_IMAGE052
(1-1)
其中,上述的C代表损失函数。
上述的
Figure 759652DEST_PATH_IMAGE053
代表各个子任务执行时的执行成本之和,或者可以理解为上述的有向无环图中一条分配路径中各子任务被执行时所产生的执行成本之和。
上述的
Figure 500337DEST_PATH_IMAGE054
,
Figure 281211DEST_PATH_IMAGE055
代表上述的有向无环图中一条分配路径中各子任务被执行时所产生的通信成本之和。
由表达式(1-1)可知,损失函数的值等于分配路径中各子任务对应的执行成本之和加上各通信成本之和。各分配路径中的各节点的权重等于子任务对应的执行成本,各边的权重等于子任务对应的通信成本。则通过确定各分配路径中的各节点的权重以及各边的权重的总和,可以得到各分配路径对应的损失函数的值。
在其中一个实施例中,上述的方法还可以包括:
将各节点进行松弛操作,得到各节点对应的新增边,新增边的权重为对应的节点的权重;
上述的根据各分配路径中各子任务对应的任务处理成本,得到各分配路径对应的损失函数的值,可以包括:
确定各分配路径中的各边以及各新增边的权重的总和,得到各分配路径对应的损失函数的值。
本申请中,将各节点进行松弛操作,可以将每个节点转换成两个节点,并得到一条新增边,新增边的权重等于对应转换前的节点的权重,使得各节点的权重拓展成边的权重。当将各节点进行松弛操作之后后续计算各分配路径的损失函数的值时,仅需计算各边的权重之和即可,使得更好的适配最短路径算法。
请参考图5,一个实施例中,提供了一种对节点进行松弛操作之后的有向无环图的示意图。如图5所示,对节点进行松弛操作后的有向无环图中包括起始节点51、松弛后的新增节点52以及53、新增节点52与节点53之间的新增边54、新增边54的权重55、松弛后的新增节点56以点57,还包括新增节点56与57之间的新增边58、新增边58的权重59以及结束节点60。新增边54的权重为松弛之前对应的原节点的权重。新增边58的权重为松弛前对应的原节点的权重。本申请通过松弛操作将原各节点扩展成两个节点以及新增边,将原节点的权重赋予新增边,以使得将节点的权重转换成边的权重,以便更好的计算损失函数值。
在其中一个实施例中,上述的根据各分配路径对应的损失函数的值筛选出目标分配路径,可以包括:
筛选出损失函数的值最小的分配路径为目标分配路径。
本申请中,构造了有向无环图后,可以按照广度优先算法计算图中最短路径。具体的,从顶点出发,发现所有可到达的节点,并记录各分配路径上边的权重,直到搜索到终点则停止搜索。得到计算任务经过神经网络各层计算后的任务处理成本的总和,任务处理成本的总和最小的分配路径即为目标分配路径。
本申请中,异构计算资源中神经网络的训练过程可以看做最小化损失函数
Figure 673010DEST_PATH_IMAGE056
的过程,具体如下:
Figure 513927DEST_PATH_IMAGE057
(1-2)
Figure 240443DEST_PATH_IMAGE058
(1-3)
Figure 825008DEST_PATH_IMAGE059
(1-4)
上述的表达式(1-2)代表起始层神经网络对应的损失函数的值。上述的表达式(1-3)代表第i层神经网络对应的损失函数的值,上述的表达式(1-4)代表第N层神经网络对应的损失函数的值。
基于上述神经网络的训练原理,本申请可以以最小化损失函数的值为优化目的从各分配路径中筛选出最优的目标路径,即筛选出损失函数的值最小的分配路径即为目标分配路径。
一个实施例中,上述的方法还可以包括:
根据目标分配路径执行任务调度;
或者,当接收到调度服务器发送的目标分配路径的获取请求时,向调度服务器发送目标分配路径,以便调度服务器根据目标分配路径执行任务调度。
一个实施例中,上述的异构资源中神经网络计算任务的分配方法也可以通过以下步骤来实现:
步骤1:初始化异构系统,获得计算系统中可用资源种类及个数
Figure 71313DEST_PATH_IMAGE060
步骤2:输入当前计算任务,随机取某批数据作为当前计算任务用于计算有向无环图上权重。
步骤3:构造任务-资源分配图即上述的有向无环图,首先从神经网络层数
Figure 83131DEST_PATH_IMAGE061
步骤4:为计算任务中的各子任务分配计算资源为
Figure 532829DEST_PATH_IMAGE062
,计算神经网络中第
Figure 921085DEST_PATH_IMAGE064
层执行时间代价为
Figure 21897DEST_PATH_IMAGE065
步骤5:判断是否为最后一层,不是则继续,是则转至步骤8;
步骤6:计算批数据移动至计算资源的通信代价
Figure DEST_PATH_IMAGE066
步骤7:判断
Figure 860408DEST_PATH_IMAGE064
是否为最后一层,不是则执行
Figure DEST_PATH_IMAGE067
,并跳转至步骤4,是则继续;
步骤8:松弛各任务-资源分配图中各节点
Figure DEST_PATH_IMAGE068
,扩展为个节点
Figure DEST_PATH_IMAGE069
,且节点间权重为
Figure DEST_PATH_IMAGE070
步骤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中任一项所述的方法的步骤。
CN202111297679.1A 2021-11-04 2021-11-04 异构资源中神经网络计算任务的分配方法、装置和设备 Active CN113742089B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 苏州浪潮智能科技有限公司 异构资源中神经网络计算任务的分配方法、装置和设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
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