CN116594763A - 针对动态计算图提前调度的方法和装置 - Google Patents
针对动态计算图提前调度的方法和装置 Download PDFInfo
- Publication number
- CN116594763A CN116594763A CN202310383806.2A CN202310383806A CN116594763A CN 116594763 A CN116594763 A CN 116594763A CN 202310383806 A CN202310383806 A CN 202310383806A CN 116594763 A CN116594763 A CN 116594763A
- Authority
- CN
- China
- Prior art keywords
- dynamic
- deployment
- node
- graph
- nodes
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000013507 mapping Methods 0.000 claims abstract description 58
- 238000004364 calculation method Methods 0.000 claims abstract description 40
- 238000012549 training Methods 0.000 claims abstract description 39
- 238000010586 diagram Methods 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 abstract description 16
- 230000008569 process Effects 0.000 description 20
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- 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
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computational Mathematics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Biophysics (AREA)
- Mathematical Analysis (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种针对动态计算图提前调度的方法和装置。所述针对动态计算图提前调度的方法,包括:基于动态计算图对应的目标训练数据集和目标训练数据集中各样本在动态计算图中所对应的执行路径,构建部署图;部署图包括多个部署节点,部署节点内存储有与部署节点对应的动态节点的执行概率;将部署图和动态计算图映射于处理器;基于映射后的部署图和动态计算图,提前调度动态计算图中动态节点的计算资源。本申请的针对动态计算图提前调度的方法,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种针对动态计算图提前调度的方法和装置。
背景技术
计算图模型广泛应用于神经网络算法的描述,由计算节点和表示节点之间的数据依赖的边组成,包括静态图和动态计算图,其中,动态计算图为包含控制或随机执行流程的,执行过程会根据具体输入改变的计算图。相关技术中,主要是面向静态图的部署,然而对于动态计算图的部署,仍存调度效率低、部署效果差以及部署困难等问题。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种针对动态计算图提前调度的方法和装置,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率;且适用于动态计算图和静态图资源调度,具有广泛的应用范围和普适性。
第一方面,本申请提供了一种针对动态计算图提前调度的方法,该方法包括:
基于动态计算图对应的目标训练数据集和所述目标训练数据集中各样本在所述动态计算图中所对应的执行路径,构建部署图;所述部署图包括多个部署节点,所述部署节点内存储有与所述部署节点对应的动态节点的执行概率;
将所述部署图和所述动态计算图映射于处理器;
基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源。
根据本申请的针对动态计算图提前调度的方法,通过目标训练数据集确定动态计算图中各计算节点的执行概率,基于执行概率构造部署图,并在后续调度应用过程中,基于部署图提前调度下一计算节点所需的计算资源,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率。
根据本申请的一个实施例,所述基于动态计算图对应的目标训练数据集和所述目标训练数据集中各样本在所述动态计算图中所对应的执行路径,构建部署图,包括:
基于所述动态计算图中每一个动态节点,构建与所述动态节点相对应的部署节点;其中,所述部署节点用于监视所述动态计算图中的被监视节点,所述被监视节点为所述动态计算图中与所述部署节点相对应的动态节点之前的至少一个动态节点;
基于各所述样本的执行路径,确定各个所述部署节点对应的动态节点的执行概率;
基于所述部署节点和所述部署节点对应的动态节点的执行概率,确定所述部署图。
根据本申请的一个实施例,所述基于各所述样本的执行路径,确定各个所述部署节点对应的动态节点的执行概率,包括:
在所述样本在所述动态计算图中前向传播一次的情况下,所述部署图记录当前动态节点执行的次数;
将各所述动态节点执行的次数转化为在所述部署节点所监视的所述被监视节点执行的情况下,所述部署节点对应的动态节点执行的条件概率,基于所述条件概率确定各所述部署节点对应的动态节点的执行概率。
根据本申请的一个实施例,基于以下至少一项映射方式,将所述部署图和所述动态计算图映射于处理器,所述处理器包括众核架构,所述映射方式包括:
同映射,包括将所述部署节点和与所述部署节点对应的动态节点映射至所述众核架构中的同一计算单元;
前映射,包括将所述部署节点和所述部署节点对应的被监视节点映射至所述众核架构中的同一计算单元;
中心映射,包括将所述部署图的全部部署节点统一映射至所述众核架构中的至少一个计算单元;
随机映射,包括将所述部署节点和所述动态节点随机映射至所述众核架构。
根据本申请的一个实施例,所述多个部署节点中第一目标节点和第二目标节点之间存在连接通道,所述连接通道用于收发目标信息。
根据本申请的一个实施例,所述基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源,包括:
基于至少一个被监视节点的执行状态,分别确定监视所述至少一个被监视节点的部署节点所对应的动态节点的执行概率;所述执行状态包括执行或未执行;
在所述执行概率大于第一阈值的情况下,提前调度大于第一阈值的所述执行概率所对应的动态节点的计算资源。
根据本申请的一个实施例,所述基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源,包括:
基于目标带宽信息,确定提前调度的所述动态节点的目标数量;
提前调度所述动态计算图中所述目标数量的动态节点对应的计算资源。
第二方面,本申请提供了一种针对动态计算图提前调度的装置,该装置包括:
第一处理模块,用于基于动态计算图对应的目标训练数据集和所述目标训练数据集中各样本在所述动态计算图中所对应的执行路径,构建部署图;所述部署图包括多个部署节点,所述部署节点内存储有与所述部署节点对应的动态节点的执行概率;
第二处理模块,用于将所述部署图和所述动态计算图映射于处理器;
第三处理模块,用于基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源。
根据本申请的针对动态计算图提前调度的装置,通过目标训练数据集确定动态计算图中各计算节点的执行概率,基于执行概率构造部署图,并在后续调度应用过程中,基于部署图提前调度下一计算节点所需的计算资源,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率。
第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的针对动态计算图提前调度的方法。
第四方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的针对动态计算图提前调度的方法。
第五方面,本申请提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的针对动态计算图提前调度的方法。
第六方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的针对动态计算图提前调度的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:
通过目标训练数据集确定动态计算图中各计算节点的执行概率,基于执行概率构造部署图,并在后续调度应用过程中,基于部署图提前调度下一计算节点所需的计算资源,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率。
进一步的,通过将部署节点和与部署节点对应的动态节点映射至众核架构中的同一计算单元,可以使得每个动态计算图节点的调度逻辑在本核内执行,即一个核负责自身的计算任务的调度,不需要其他核参与,有效降低核之间交互的复杂度,从而提高计算效率,保证计算稳定性。
更进一步的,通过将部署节点和部署节点对应的被监视节点映射至众核架构中的同一计算单元,能够减少被监视节点状态在计算单元之间的传输,提高传输效率,以提高计算效率。
再进一步的,通过目标带宽信息,确定提前调度的动态节点的目标数量,可以使得资源调度符合带宽需求,以进一步解决带宽问题。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例提供的针对动态计算图提前调度的方法的流程示意图之一;
图2是本申请实施例提供的针对动态计算图提前调度的方法的原理示意图之一;
图3是本申请实施例提供的针对动态计算图提前调度的方法的原理示意图之二;
图4是本申请实施例提供的针对动态计算图提前调度的方法的流程示意图之二;
图5是本申请实施例提供的针对动态计算图提前调度的方法的原理示意图之三;
图6是本申请实施例提供的针对动态计算图提前调度的方法的原理示意图之四;
图7是本申请实施例提供的针对动态计算图提前调度的方法的流程示意图之三;
图8是本申请实施例提供的针对动态计算图提前调度的装置的结构示意图;
图9是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的针对动态计算图提前调度的方法、针对动态计算图提前调度的装置、电子设备和可读存储介质进行详细地说明。
其中,针对动态计算图提前调度的方法可应用于终端,具体可由,终端中的硬件或软件执行。
该终端包括但不限于具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话或平板电脑等便携式通信设备。还应当理解的是,在某些实施例中,该终端可以不是便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
以下各个实施例中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和控制杆的一个或多个其它物理用户接口设备。
本申请实施例提供的针对动态计算图提前调度的方法,该针对动态计算图提前调度的方法的执行主体可以为电子设备或者电子设备中能够实现该针对动态计算图提前调度的方法的功能模块或功能实体,本申请实施例提及的电子设备包括但不限于手机、平板电脑、电脑、相机和可穿戴设备等,下面以电子设备作为执行主体为例对本申请实施例提供的针对动态计算图提前调度的方法进行说明。
如图1所示,该针对动态计算图提前调度的方法包括:步骤110、步骤120和步骤130。
步骤110、基于动态计算图对应的目标训练数据集和目标训练数据集中各样本在动态计算图中所对应的执行路径,构建部署图;部署图包括多个部署节点,部署节点内存储有与部署节点对应的动态节点的执行概率;
在该步骤中,目标训练数据集为用于训练目标神经网络的训练集。其中,目标神经网络可表示为动态计算图,即目标训练数据集为用于训练动态计算图的训练集。
目标训练数据集中的数据可以为变化的数据或提前确定的数据。
可以理解的是,不同的目标神经网络或动态计算图,其对应的目标训练数据集可能不同。
动态计算图即为目标神经网络对应的图结构。
动态计算图中包括多个动态节点,动态节点对应于目标神经网络的网络节点。例如,每一个动态节点为一个计算节点,用于执行相应的计算操作。
图2和图3分别示例了部署图和动态计算图的结构示意图。如图2所示,动态计算图中的圆形表示计算节点,动态计算图中的三角形表示控制节点,控制节点用于控制、确定接下来执行动态计算图中的下一个节点。
通过各节点以及节点之间的边,可以完成一个输入数据在动态计算图中的执行路径。
部署图中包括多个部署节点,继续参考图2,部署图中的圆形表示部署节点。
部署节点用于监视并控制动态节点。
被部署节点所监视的计算节点即为该部署节点所对应的被监视节点。
执行概率为某一输入数据由某一计算节点执行的概率。
在实际执行过程中,不同样本在动态计算图中的执行路径相同或不同,其所跳转的计算节点也可能相同或不同,在本申请中,可以基于目标训练数据集中各样本在动态计算图中的实际执行路径,确定每个计算节点对应的执行概率。
然后将执行概率存储至对应的部署节点,以生成部署图。
在一些实施例中,步骤110可以包括:
基于动态计算图中每一个动态节点,构建与动态节点相对应的部署节点;其中,部署节点用于监视动态计算图中的被监视节点,被监视节点为动态计算图中与部署节点相对应的动态节点之前的至少一个动态节点;
基于各样本的执行路径,确定各个部署节点对应的动态节点的执行概率;
基于部署节点和部署节点对应的动态节点的执行概率,确定部署图。
在该实施例中,多个部署节点与多个计算节点一一对应。
在一些实施例中,部署节点用于监视与其对应的计算节点的前一层的节点,如图2所。
在该实施例中,该部署节点对应的部署图为一阶部署图。
在一些实施例中,部署节点用于监视与其对应的计算节点的前多层的节点,如图3所示。
在该实施例中,该部署节点对应的部署图为多阶部署图。
在一些实施例中,部署节点用于监视与其对应的计算节点的前一层中的全部或部分节点;或者,部署节点用于监视与其对应的计算节点的前多层中的部分层中的,并且,所监控的层中的节点可以为部分节点或全部节点。
对于每一个样本,将样本数据在动态计算图中传播一次,分别得到每一个样本在动态计算图中的执行路径,然后统计目标训练数据集中全部样本对应的执行路径,确定各计算节点对应的跳转至下一计算节点的执行概率,并将该执行概率存储于该计算节点对应的部署节点,生成部署图。
在一些实施例中,基于各样本的执行路径,确定各个部署节点对应的动态节点的执行概率,可以包括:
在样本在动态计算图中前向传播一次的情况下,部署图记录当前动态节点执行的次数;
将各动态节点执行的次数转化为在部署节点所监视的被监视节点执行的情况下,部署节点对应的动态节点执行的条件概率,基于条件概率确定各部署节点对应的动态节点的执行概率。
在该实施例中,对于目标训练数据集中的每一个样本,可在动态计算图中传播一次。
例如,如图4所示,在实际执行过程中,先获取动态计算图对应的目标训练数据集以初始化动态计算图对应的部署图。
在对目标训练数据集中的每一个样本,在样本在动态图动态计算图中前向传播一次的情况下,通过部署图记录被监视节点执行后,本计算节点执行的次数。
其中,次数统计可以基于被监视节点的联合执行情况确定。
即对于当前计算节点S和被监视节点N1和被监视节点N2,可以记录如下次数:
N1执行且S执行的次数,以(C(S|N1))表示;
N2执行且S执行的次数,以(C(S|N2))表示;
N1、N2都执行且S执行的次数,以(C(S|N1,N1))表示。
在一些实施例中,可以基于如下公式将次数转化为概率:
P(S|N1),P(S|N2),P(S|N1,N2)=convert(C(S|N1),C(S|N2),C(S|N1,N2))
其中,P(S|N1)为N1执行且S执行的概率;P(S|N2)为N2执行且S执行的概率;P(S|N1,N2)为N1、N2都执行且S执行的概率;C(S|N1)为N1执行且S执行的次数;C(S|N2)为N2执行且S执行的次数;C(S|N1,N2)为N1、N2都执行且S执行的次数,P(·)表示预测执行的概率;convert为转换函数。
基于以上公式,即可得到各动态节点的执行概率,并将该执行概率存储于与该动态节点对应的部署节点中。
在一些实施例中,多个部署节点中各部署节点之间无连接通道。
在一些实施例中,多个部署节点中第一目标节点和第二目标节点之间存在连接通道,连接通道用于收发目标信息。
第一目标节点和第二目标节点可以分别为一个或多个。
在该实施例中,第一目标节点和第二目标节点可以为多个部署节点中的任意节点,且第一目标节点和第二目标节点不同。
目标信息可以包括但不限于:被监视节点的执行状态以及与部署节点对应的动态节点的执行概率等。
在一些实施例中,多个部署节点中第一目标节点和第二目标节点之间的连接通道可以与第一目标节点对应的动态节点和第二目标节点对应的动态节点之间的连接通道相同;或者也可以不同。
连接通道用于进行目标信息的传递。
如第一目标节点通过连接通道将对应的被监视节点的执行状态发送给第二目标节点,或者将当前确定的执行概率发送给第二目标节点。
在一些实施例中,在第一目标节点与第二目标节点之间存在连接的情况下,第一目标节点可以接收第二目标节点发送的执行状态信息、执行概率信息,并且第一目标节点可将获取的执行状态信息和执行概率信息一并作为确定对应的动态节点是否执行的参考数据。例如,第一目标节点可以按照不同的权重,将部署图中对应的执行概率、执行状态信息进行加权计算得到最终该动态节点执行的概率值。
该方式在利用训练数据获取执行概率的基础上,第一目标节点可以结合其他节点(如第二目标节点)的执行状态信息,更加准确的判断对应的动态节点的执行概率。
步骤120、将部署图和动态计算图映射于处理器;
在该步骤中,处理器可以包括CPU、众核架构或其他处理器,本申请在此不作限定。
下面以众核架构为例,对步骤120的实现方式进行说明。
在一些实施例中,步骤120可以包括:基于以下至少一项映射方式,将部署图和动态计算图映射于处理器,处理器包括众核架构,映射方式包括:同映射、前映射、中心映射或随机映射。
在该实施例中,众核架构是为高度并行处理而设计的特殊类型的多核处理器,包含许多更简单、独立的处理器内核(从几十个内核到几千个或更多)。
通过将部署图和动态计算图映射于众核架构,可以满足带宽需求。
在实际执行过程中,可以基于实际需求,如硬件性能或带宽特征等选择最佳的映射方式,本申请在此不作限定。
下面分别对各种映射方式的实现方式进行具体说明。
在一些实施例中,同映射,包括将部署节点和与部署节点对应的动态节点映射至众核架构中的同一计算单元。
在该实施例中,如图5所示,部署图节点与对应的动态计算图节点映射至众核架构中的同一计算单元,其中Core表示计算单元或计算核。
根据本申请实施例提供的针对动态计算图提前调度的方法,通过将部署节点和与部署节点对应的动态节点映射至众核架构中的同一计算单元,可以使得每个动态计算图节点的调度逻辑在本核内执行,即一个核负责自身的计算任务的调度,不需要其他核参与,有效降低核之间交互的复杂度,从而提高计算效率,保证计算稳定性。
在一些实施例中,前映射,包括将部署节点和部署节点对应的被监视节点映射至众核架构中的同一计算单元。
在该实施例中,如图6所示,部署图节点与该部署图监视的被监视节点映射至众核架构中的同一计算单元,有部署节点基于被监视节点的运行状态确定下一次跳转的计算节点以及该计算节点对应的资源调度。
根据本申请实施例提供的针对动态计算图提前调度的方法,通过将部署节点和部署节点对应的被监视节点映射至众核架构中的同一计算单元,能够减少被监视节点状态在计算单元之间的传输,提高传输效率,以提高计算效率。
在一些实施例中,中心映射,包括将部署图的全部部署节点统一映射至众核架构中的至少一个计算单元。
在该实施例中,可以将部署图节点统一映射至众核架构中的一个或多个计算单元。
例如,可以将部署节点统一映射至CPU或者控制核;将动态计算图节点映射至众核。
需要说明的是,在一些实施例中,众核中的计算核无法完成控制功能。
在一些实施例中,随机映射,包括将部署节点和动态节点随机映射至众核架构。
在该实施例中,部署图节点的映射不跟随动态计算图节点的映射。
在实际执行过程中,例如,可以基于负载均衡信息将部署节点和动态节点进行映射。
又如,还可以随机将部署节点和动态节点映射至众核架构。
根据本申请实施例提供的针对动态计算图提前调度的方法,通过提供多种映射方式,可基于实际情况选择最佳的映射方式,灵活性高且具有较高的普适性。
步骤130、基于映射后的部署图和动态计算图,提前调度动态计算图中动态节点的计算资源。
在该步骤中,计算资源为动态计算图节点计算所需要的资源。
在一些实施例中,调度计算资源可以包括:准备计算环境、加载内存数据、构建路由通道、获取执行动态节点所需的指令、以及提前准备运行该动态节点的组件状态中的至少一种。
其中,提前准备运行该动态节点的组件状态包括但不限于配置相应寄存器等。
在实际执行过程中,如图7所示,由部署图中的部署节点通过监视与其对应的被监视节点的执行状态。
其中,执行状态包括执行和未执行。
然后部署节点通过获取的执行状态,查找或计算该被监视节点对应的下一节点对应的执行概率,并基于所获取的执行概率确定是否提前调度对应的计算节点的计算资源。
继续参考图7,在一些实施例中,步骤130可以包括:
基于至少一个被监视节点的执行状态,分别确定监视至少一个被监视节点的部署节点所对应的动态节点的执行概率;
在执行概率大于第一阈值的情况下,提前调度大于第一阈值的执行概率所对应的动态节点的计算资源。
在该实施例中,第一阈值为用于表征执行概率的程度的临界值。
第一阈值可以基于用户自定义,如设置为75%、90%或其他任意数值,本申请不作限定。
例如,在第一阈值设置为90%的情况下,对于当前被监视节点S,部署节点确定该被监视节点S对应的下一层计算节点A的执行概率为92%,该被监视节点S对应的下一层计算节点B的执行概率为8%,则认为跳转至下一层计算节点A的概率较大,则可以提前加载计算节点A对应的计算资源。
需要说明的是,在一些实施例中,满足提前调度的部署节点的数量可以为一个或多个,在实际执行过程中,可以将符合条件的1个或多个部署节点对应的计算节点进行提前调度,从而提高预测准确性。
根据本申请实施例提供的针对动态计算图提前调度的方法,通过设置第一阈值判断各计算节点对应的执行概率的大小,在超过第一阈值的情况下则提前加载该计算节点对应的计算资源,预测准确性高。
发明人在研发过程中发现,相关技术中,对于动态计算图的资源调度,无法实现资源的提前调度,往往需要耗费较长的时长,从而影响调度速率。
而在本申请中,通过目标训练数据集中各样本在动态计算图中的实际执行路径,确定动态计算图中各计算节点对应的执行概率,并将该执行概率存储于对应的部署图节点以得到部署图,以便于在后续调度应用过程中,能够基于部署图实时监视动态计算图中的各动态节点,并基于获取的执行概率提前调度下一计算节点所需的计算资源,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率。
除此之外,通过目标训练数据集确定各计算节点的执行概率,使得执行概率可以基于目标训练数据集的变化而对应变化,从而适用于快速变化的动态计算图,具有广泛的应用范围和普适性。
根据本申请实施例提供的针对动态计算图提前调度的方法,通过目标训练数据集确定动态计算图中各计算节点的执行概率,基于执行概率构造部署图,并在后续调度应用过程中,基于部署图提前调度下一计算节点所需的计算资源,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率。
在一些实施例中,步骤130还可以包括:
基于目标带宽信息,确定提前调度的动态节点的目标数量;
提前调度动态计算图中目标数量的动态节点对应的计算资源。
在该实施例中,目标带宽信息用于表征带宽需求。
目标数量可以为一个或多个。
目标数量的数值可以基于目标带宽信息的变化而变化。
在实际执行过程中,可以增加限制条件‘预加载、预调度’的带宽需求,以限制是一个或几个计算节点进行预调度。
根据本申请实施例提供的针对动态计算图提前调度的方法,通过目标带宽信息,确定提前调度的动态节点的目标数量,可以使得资源调度符合带宽需求,以进一步解决带宽问题。
本申请实施例提供的针对动态计算图提前调度的方法,执行主体可以为针对动态计算图提前调度的装置。本申请实施例中以针对动态计算图提前调度的装置执行针对动态计算图提前调度的方法为例,说明本申请实施例提供的针对动态计算图提前调度的装置。
本申请实施例还提供一种针对动态计算图提前调度的装置。
如图8所示,该针对动态计算图提前调度的装置包括:第一处理模块810、第二处理模块820和第三处理模块830。
第一处理模块810,用于基于动态计算图对应的目标训练数据集和目标训练数据集中各样本在动态计算图中所对应的执行路径,构建部署图;部署图包括多个部署节点,部署节点内存储有与部署节点对应的动态节点的执行概率;
第二处理模块820,用于将部署图和动态计算图映射于处理器;
第三处理模块830,用于基于映射后的部署图和动态计算图,提前调度动态计算图中动态节点的计算资源。
根据本申请实施例提供的针对动态计算图提前调度的装置,通过目标训练数据集确定动态计算图中各计算节点的执行概率,基于执行概率构造部署图,并在后续调度应用过程中,基于部署图提前调度下一计算节点所需的计算资源,能够实现资源调度的提前响应,节省大量响应时间,从而提高调度速率。
在一些实施例中,第一处理模块810,可以用于:
基于动态计算图中每一个动态节点,构建与动态节点相对应的部署节点;其中,部署节点用于监视动态计算图中的被监视节点,被监视节点为动态计算图中与部署节点相对应的动态节点之前的至少一个动态节点;
基于各样本的执行路径,确定各个部署节点对应的动态节点的执行概率;
基于部署节点和部署节点对应的动态节点的执行概率,确定部署图。
在一些实施例中,第一处理模块810,可以用于:
在样本在动态计算图中前向传播一次的情况下,部署图记录当前动态节点执行的次数;
将各动态节点执行的次数转化为在部署节点所监视的被监视节点执行的情况下,部署节点对应的动态节点执行的条件概率,基于条件概率确定各部署节点对应的动态节点的执行概率。
在一些实施例中,第二处理模块820,可以用于:
基于以下至少一项映射方式,将部署图和动态计算图映射于处理器,处理器包括众核架构,映射方式包括:
同映射,包括将部署节点和与部署节点对应的动态节点映射至众核架构中的同一计算单元;
前映射,包括将部署节点和部署节点对应的被监视节点映射至众核架构中的同一计算单元;
中心映射,包括将部署图的全部部署节点统一映射至众核架构中的至少一个计算单元;
随机映射,包括将部署节点和动态节点随机映射至众核架构。
在一些实施例中,第三处理模块830,还可以用于:
基于至少一个被监视节点的执行状态,分别确定监视至少一个被监视节点的部署节点所对应的动态节点的执行概率;
在执行概率大于第一阈值的情况下,提前调度大于第一阈值的执行概率所对应的动态节点的计算资源。
在一些实施例中,第三处理模块830,还可以用于:
基于目标带宽信息,确定提前调度的动态节点的目标数量;
提前调度动态计算图中目标数量的动态节点对应的计算资源。
本申请实施例中的针对动态计算图提前调度的装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digitalassistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的针对动态计算图提前调度的装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为IOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的针对动态计算图提前调度的装置能够实现图1至图7的方法实施例实现的各个过程,为避免重复,这里不再赘述。
在一些实施例中,如图9所示,本申请实施例还提供一种电子设备900,包括处理器901、存储器902及存储在存储器902上并可在处理器901上运行的计算机程序,该程序被处理器901执行时实现上述针对动态计算图提前调度的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
本申请实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述针对动态计算图提前调度的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述针对动态计算图提前调度的方法。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述针对动态计算图提前调度的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (10)
1.一种针对动态计算图提前调度的方法,其特征在于,包括:
基于动态计算图对应的目标训练数据集和所述目标训练数据集中各样本在所述动态计算图中所对应的执行路径,构建部署图;所述部署图包括多个部署节点,所述部署节点内存储有与所述部署节点对应的动态节点的执行概率;
将所述部署图和所述动态计算图映射于处理器;
基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源。
2.根据权利要求1所述的针对动态计算图提前调度的方法,其特征在于,所述基于动态计算图对应的目标训练数据集和所述目标训练数据集中各样本在所述动态计算图中所对应的执行路径,构建部署图,包括:
基于所述动态计算图中每一个动态节点,构建与所述动态节点相对应的部署节点;其中,所述部署节点用于监视所述动态计算图中的被监视节点,所述被监视节点为所述动态计算图中与所述部署节点相对应的动态节点之前的至少一个动态节点;
基于各所述样本的执行路径,确定各个所述部署节点对应的动态节点的执行概率;
基于所述部署节点和所述部署节点对应的动态节点的执行概率,确定所述部署图。
3.根据权利要求2所述的针对动态计算图提前调度的方法,其特征在于,所述基于各所述样本的执行路径,确定各个所述部署节点对应的动态节点的执行概率,包括:
在所述样本在所述动态计算图中前向传播一次的情况下,所述部署图记录当前动态节点执行的次数;
将各所述动态节点执行的次数转化为在所述部署节点所监视的所述被监视节点执行的情况下,所述部署节点对应的动态节点执行的条件概率,基于所述条件概率确定各所述部署节点对应的动态节点的执行概率。
4.根据权利要求1-3任一项所述的针对动态计算图提前调度的方法,其特征在于,基于以下至少一项映射方式,将所述部署图和所述动态计算图映射于处理器,所述处理器包括众核架构,所述映射方式包括:
同映射,包括将所述部署节点和与所述部署节点对应的动态节点映射至所述众核架构中的同一计算单元;
前映射,包括将所述部署节点和所述部署节点对应的被监视节点映射至所述众核架构中的同一计算单元;
中心映射,包括将所述部署图的全部部署节点统一映射至所述众核架构中的至少一个计算单元;
随机映射,包括将所述部署节点和所述动态节点随机映射至所述众核架构。
5.根据权利要求1-3任一项所述的针对动态计算图提前调度的方法,其特征在于,所述多个部署节点中第一目标节点和第二目标节点之间存在连接通道,所述连接通道用于收发目标信息。
6.根据权利要求1-3任一项所述的针对动态计算图提前调度的方法,其特征在于,所述基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源,包括:
基于至少一个被监视节点的执行状态,分别确定监视所述至少一个被监视节点的部署节点所对应的动态节点的执行概率;所述执行状态包括执行或未执行;
在所述执行概率大于第一阈值的情况下,提前调度大于第一阈值的所述执行概率所对应的动态节点的计算资源。
7.根据权利要求1-3任一项所述的针对动态计算图提前调度的方法,其特征在于,所述基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源,包括:
基于目标带宽信息,确定提前调度的所述动态节点的目标数量;
提前调度所述动态计算图中所述目标数量的动态节点对应的计算资源。
8.一种针对动态计算图提前调度的装置,其特征在于,包括:
第一处理模块,用于基于动态计算图对应的目标训练数据集和所述目标训练数据集中各样本在所述动态计算图中所对应的执行路径,构建部署图;所述部署图包括多个部署节点,所述部署节点内存储有与所述部署节点对应的动态节点的执行概率;
第二处理模块,用于将所述部署图和所述动态计算图映射于处理器;
第三处理模块,用于基于映射后的所述部署图和所述动态计算图,提前调度所述动态计算图中动态节点的计算资源。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述针对动态计算图提前调度的方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一项所述的针对动态计算图提前调度的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310383806.2A CN116594763A (zh) | 2023-04-11 | 2023-04-11 | 针对动态计算图提前调度的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310383806.2A CN116594763A (zh) | 2023-04-11 | 2023-04-11 | 针对动态计算图提前调度的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116594763A true CN116594763A (zh) | 2023-08-15 |
Family
ID=87594513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310383806.2A Pending CN116594763A (zh) | 2023-04-11 | 2023-04-11 | 针对动态计算图提前调度的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116594763A (zh) |
-
2023
- 2023-04-11 CN CN202310383806.2A patent/CN116594763A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | An efficient application partitioning algorithm in mobile environments | |
US20180203720A1 (en) | Techniques to manage virtual classes for statistical tests | |
US20120060167A1 (en) | Method and system of simulating a data center | |
CN113095474A (zh) | 深度学习模型的资源使用情况预测 | |
EP3221789A1 (en) | Method and system for code offloading in mobile computing | |
CN111522640A (zh) | 计算图的并行执行方法和设备 | |
CN103092751A (zh) | 一种云环境下基于用户行为模型的web应用性能测试系统 | |
WO2021259041A1 (zh) | Ai计算图的排序方法、装置、设备及存储介质 | |
CN109213587B (zh) | GPU平台下的多Stream并行DAG图任务映射策略 | |
Jha et al. | Multiobjective deployment of data analysis operations in heterogeneous IoT infrastructure | |
Maruf et al. | Extending resources for avoiding overloads of mixed‐criticality tasks in cyber‐physical systems | |
Barrameda et al. | A novel statistical cost model and an algorithm for efficient application offloading to clouds | |
Bhimani et al. | New performance modeling methods for parallel data processing applications | |
Goel et al. | Infer: Interference-aware estimation of runtime for concurrent cnn execution on dpus | |
Pasricha et al. | Data analytics enables energy-efficiency and robustness: from mobile to manycores, datacenters, and networks (special session paper) | |
KR20220073600A (ko) | 최적 파라미터 결정 방법 및 시스템 | |
CN113158435A (zh) | 基于集成学习的复杂系统仿真运行时间预测方法与设备 | |
CN116594763A (zh) | 针对动态计算图提前调度的方法和装置 | |
CN111159038A (zh) | 一种模拟cpu负载的方法及电子设备 | |
CN106874215B (zh) | 一种基于Spark算子的序列化存储优化方法 | |
CN112948114B (zh) | 边缘计算方法和边缘计算平台 | |
de Freitas Cunha et al. | An SMDP approach for Reinforcement Learning in HPC cluster schedulers | |
US9769025B2 (en) | Predicting the performance of a multi-stage communications network under load from multiple communicating servers | |
CN116594762A (zh) | 针对动态计算图提前调度的方法和装置 | |
CN114091807A (zh) | 多无人机任务分配及调度方法、装置、系统及存储介质 |
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 |