算子图的时间分配方法、装置、计算机设备及存储介质与流程

文档序号:31994028发布日期:2022-11-02 00:35阅读:56来源:国知局
算子图的时间分配方法、装置、计算机设备及存储介质与流程

1.本发明实施例涉及人工智能领域,尤其涉及一种算子图的时间分配方法、装置、计算机设备及存储介质。


背景技术:

2.近年来,随着人工智能相关应用和技术的飞速发展,对计算能力和功耗效率的要求日益提高。相关技术中,存在对算子图的运行配置不合理的缺点。


技术实现要素:

3.本发明实施例提供一种算子图的时间分配方法、装置、计算机设备及存储介质,可以合理配置算子图的运行方式,提高核心资源利用率。
4.第一方面,本发明实施例提供了一种算子图的时间分配方法,应用于众核系统,包括:
5.在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
6.按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;
7.其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
8.第二方面,本发明实施例还提供了一种算子图的时间分配装置,配置于众核系统,包括:
9.第一算子图获取模块,用于在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
10.运行时间段划分模块,用于按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
11.第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的算子图的时间分配方法。
12.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的算子图的时间分配方法。
13.本发明实施例通过在运行周期中为配置有运行需求信息的第一算子图分配运行时间段,并且第一算子图在分配的运行时间段中的运行数据,满足运行周期下的运行需求信息,提供了一种众核系统中算子图的时间分配新方式,在兼顾算子图的运行需求信息的情况下,合理配置众核系统的运行周期,提高时间资源的利用率,减少众核系统资源的浪费。
附图说明
14.图1是本发明实施例一中的一种算子图的时间分配方法的流程图;
15.图2是本发明实施例二中的一种算子图的时间分配装置的结构示意图;
16.图3是本发明实施例三中的一种计算机设备的结构示意图。
具体实施方式
17.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
18.图1为本发明实施例一中的一种算子图的时间分配方法的流程图,本实施例可适用于适配算子图的运行需求信息为算子图分配资源的情况,该方法可以由本发明实施例提供的算子图的时间分配装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中。如图1所示,本实施例的方法包括:
19.本发明任一实施例应用于众核系统,该众核系统包括可分配的核心资源。
20.其中,可分配的核心资源可以是指专用于分配给算子图的核心(core)。其中,核心为可独立调度拥有完整计算能力的最小单元,核心具有自己的存储资源和计算资源。计算机设备的资源中除可分配的核心资源,还包括分配给非算子图的程序的核心资源,以运行其他程序。执行算子图的时间分配方法的计算机设备中包括众核系统,众核系统用于同时运行多个算子图。其中,众核(many core)是由大量(未来将会是成百上千个)以及多种类的核心,以预设方式连接在一起,具备高性能并行处理能力的核心集合。
21.s110,在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图。
22.算子图集合可以是指在众核系统中运行的算子图的集合。运行需求信息可以是指对应的算子图需要达到的运行性能的信息。运行需求信息可以由用户配置。示例性的,运行需求信息包括配置有运行需求信息的算子图的运行速度最小值和/或运行准确率最小值等。第一算子图是指算子图集合中配置有运行需求信息的算子图。配置有运行需求信息的算子图,表明该算子图的运行数据与运行需求信息匹配。未配置有运行需求信息的算子图的运行性能无限制无要求,可以分配任意大于零的核心资源运行。
23.其中,算子图集合包括至少一个算子图。算子图可以包括至少一个算子,在算子图包括至少两个算子时,在算子图中,前一算子的输出作为相邻后一算子的输入。算子可以是指卷积、加减乘除或矩阵加乘等算法。算子图用于实现特定功能,算子图可以是指高性能计算算法,算子图可以包括但不局限于ai算法、机器学习算法和通用科学计算算法,更具体的,例如,算子图为深度学习模型,又如,算子图为神经网络。待分配资源的算子图可以为多个,至少两个算子图可以是相互独立的算子图,或者是存在依赖关系的算子图,其中,存在依赖关系的两个算子图可以是指:第一个算子图的输出作为第二个算子图的输入。算子图运行需要资源,为算子图分配核心资源,以运行算子图,并计算输入数据,得到输出数据,从而实现特定功能。
24.可选的,算子图包括:神经网络模型或神经网络模型包括的至少一个网络。
25.其中,算子图可以是神经网络模型中的整体或部分。可以理解为,算子图用于实现
完整特定功能,或者实现特定功能中的部分功能。例如,算子图可以是一个神经网络模型,或者是一个神经网络模型中的至少一个网络构成的网络集合。
26.在一些可选的实施例中,算子图可以包括图像检测网络和语音识别网络形成的模型,或者算子图可以仅包括图像检测网络,或者算子图可以仅包括语音识别网络。又如,算子图可以包括图像检测网络和物体识别网络形成的模型,或者算子图可以仅包括图像检测网络,或者算子图可以仅包括物体识别网络。
27.通过将算子图配置为模型整体或者模型包括的部分网络,可以丰富芯片可执行的算子图的应用场景,以及丰富算子图的业务模式,同时可以提高核心资源的利用率。
28.s120,按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
29.运行周期可以是指预设的众核系统运行的周期,众核系统会循环重复运行周期。其中,一个运行周期是指众核系统需要将算子图集合中全部算子图对应的计算任务执行完成一次的时间。运行数据用于描述当前算子图在当前处理的运行时间段内的运行性能。配置有运行需求信息的算子图的运行数据需要满足所配置的运行需求信息。运行时间段是指在运行周期中的一部分,运行时间段的时长小于运行周期。第一算子图在分配的运行时间段内载入到众核系统中运行,并在分配的运行时间段结束时,在众核系统中移除。运行时间段的划分,可以根据第一算子图的数量进行划分。示例性的,第一算子图的数量为8个,可以将运行周期划分为4个相同时长的运行时间段,每个运行时间段运行两个第一算子图。不同的第一算子图分配的时间段可以相同,也可以不同。
30.在一种可能的实现方式中,众核系统的片上存储不能一次性放下算子图集合包括的全部算子图,需要将算子图分批次放入众核系统中,以实现在众核系统中分时运行,而算子图在众核系统中运行的时间段即为运行时间段。片上存储可以是指众核系统中可分配的存储资源,或者是指芯片的存储器,用于存储算子图集合关联的数据。片上存储小于算子图集合的占用空间,表明芯片在同一时刻无法存储(或放下)算子图集合。片上存储小于算子图集合的占用空间,片上存储无法放下算子图集合,可以先加载该算子图集合的部分算子图,需要在部分算子图运行完成得到输出结果之后,将部分算子图移除片上存储,并将剩余算子图加载片上存储中,以运行剩余部分算子图,继续计算,以此类推,直至得到最终结果。
31.将运行周期划分为多个运行时间段的方式,可以是预先划分一个小于运行周期的时间段,作为当前划分的运行时间段,并针对每个第一算子图,将第一算子图放入到众核系统中运行该运行时间段,并采集运行数据,在运行数据满足运行需求信息的情况下,将该运行时间段确定为该第一算子图的运行时间段。在不满足运行需求信息的情况下,确定该第一算子图与该运行时间段不匹配。直至待分配的第一算子图全部判断是否运行于运行时间段之后,根据待分配的第一算子图的数量,在剩余运行周期中,继续划分下一个运行时间段,并继续判断待分配的第一算子图是否运行于当前划分的运行时间段,以此类推,直至全部第一算子图均分配完成,确定运行时间段划分完成。其中,待分配的第一算子图可以是指,在当前划分的运行时间段内,未分配运行时间段的第一算子图。
32.本发明实施例通过在运行周期中为配置有运行需求信息的第一算子图分配运行时间段,并且第一算子图在分配的运行时间段中的运行数据,满足运行周期下的运行需求
信息,提供了一种众核系统中算子图的时间分配新方式,在兼顾算子图的运行需求信息的情况下,合理配置众核系统的运行周期,提高时间资源的利用率,减少众核系统资源的浪费。
33.可选的,所述按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段,包括:交替执行在运行周期内划分出一个运行时间段的操作,以及按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图的操作,直至为全部第一算子图在运行周期内分配匹配的运行时间段。
34.在一种可能的实现方式中,运行时间段是逐个确定的,在每划分一个运行时间段时,就检测待分配的第一算子图是否为目标第一算子图,也即检测待分配的第一算子图在运行时间段运行的运行数据是否满足配置的运行需求信息;从而交替执行划分运行时间段的操作和确定运行时间段内目标第一算子图的操作。
35.目标第一算子图是指在所划分运行时间段内运行的运行数据满足所配置的运行需求信息的第一算子图。目标第一算子图与当前划分的运行时间段匹配。
36.在一种可能的实现方式中,执行在运行周期内划分出一个运行时间段的操作之后,检测各第一算子图运行在该运行时间段得到的运行数据,是否满足运行需求信息,并在满足的情况下,将该第一算子图确定为该运行时间段匹配的目标第一算子图;在不满足的情况下,确定该第一算子图与运行时间段不匹配,也即确定该第一算子图不是该运行时间段匹配的目标第一算子图。在全部算子图与该运行时间段是否匹配的检测完成之后,划分下一个运行时间段,检测剩余第一算子图运行在该运行时间段得到的运行数据,是否满足运行需求信息,以此类推。
37.通过交替执行划分运行时间段的操作和确定运行时间段内目标第一算子图的操作,可以迅速准确在运行周期中划分运行时间段,并为每个运行时间段,在待分配的第一算子图中依次确定匹配的目标第一算子图,减少遗漏第一算子图,提高运行时间段的分配准确率,可以提高运行周期的利用率,并且,使每个第一算子图都能满足所配置的运行需求信息,从而合理配置众核系统的资源,提高众核系统的资源利用率。
38.可选的,按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图,包括:根据将当前待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及所述当前待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图。
39.其中,段内需求信息用于判断所划分运行时间段是否为第一算子图匹配的运行时间段,也即用于判断第一算子图是否为运行于所划分运行时间段内的目标第一算子图。段内需求信息与运行需求信息匹配,运行需求信息为在运行周期下的需求信息,段内需求信息是在所划分运行时间段下的需求信息。段内需求信息可以根据运行周期、所划分的运行时间段的时长和运行需求信息确定。示例性的,运行周期与所划分的运行时间段的时长的比值,与运行需求信息对应的数值之间的乘积,为段内需求信息对应的数值。
40.实际上,第一算子图的运行需求信息是指在整个运行周期下需要满足的需求信息,而第一算子图在分配的运行时间段内运行,在未分配的运行时间段内不运行,也就是说,第一算子图在分配的运行时间段内的运行数据,需要在未分配的运行时间段内同样满
足一定的需求信息。相应的,可以将运行需求信息折合到所划分的运行时间段内,映射为段内需求信息,根据段内需求信息,与第一算子图的运行数据进行比较,检测第一算子图的运行数据是否满足段内需求信息,以检测第一算子图的运行数据是否满足运行周期下的运行需求信息。
41.通过将运行周期下的运行需求信息折合至运行时间段内的段内需求信息,并根据段内需求信息,检测第一算子图在运行时间段内的运行数据是否满足段内需求信息,以判断第一算子图是否与该运行时间段匹配,可以准确判断第一算子图运行于运行时间段内的运行数据是否满足运行周期下的运行需求信息,从而准确确定运行时间段匹配的目标第一算子图,提高运行时间段的分配准确率,而且能够精准满足各第一算子图配置的运行需求信息。
42.可选的,根据将当前待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及当前待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图,包括:在当前待分配的各所述第一算子图中,确定当前算子图;根据所述当前算子图的运行需求信息,所划分运行时间段内的时长和所述运行周期,确定所述当前算子图在所划分运行时间段内的段内需求信息;获取所述当前算子图在所划分运行时间段内的运行数据;在根据所述当前算子图的段内需求信息和所述运行数据,确定所述当前算子图满足性能条件时,确定所述当前算子图为目标第一算子图;返回执行在当前待分配的各所述第一算子图中,确定当前算子图的操作,直至满足结束分配条件。
43.在当前待分配的第一算子图中,选择一个第一算子图确定为当前算子图。示例性的,可以在当前待分配的第一算子图中,根据各第一算子图的优先级,确定当前算子图。示例性的,优先级可以是第一算子图是否为存在时序关系的算子图,以及存在时序关系的第一算子图所属的时序关系中,是否存在已分配运行时间段的第一算子图。优先级从高到低的顺序可以是,与已分配运行时间段的第一算子图存在时序关系的待分配的第一算子图、存在时序关系的各待分配的第一算子图和不存在时序关系的各待分配的第一算子图。存在时序关系的两个第一算子图在输入数据和/或输出数据存在依赖关系。
44.当前算子图的运行需求信息对应的数值,与当前算子图在所划分运行时间段内的段内需求信息对应的数值之间的比值,与运行周期与所划分运行时间段内的时长之间的比值对应,示例性的,前者与后者成反比。性能条件用于判断当前算子图的运行数据是否满足段内需求信息。结束分配条件用于判断当前待分配的第一算子图是否判断完成。示例性的,结束分配条件为当前待分配的第一算子图与运行时间段的匹配结果均已确定,不存在待分配的第一算子图。
45.通过循环逐个判断第一算子图是否为运行于运行时间段内的目标第一算子图,确定每个第一算子图与运行时间段的匹配关系,从而准确为各第一算子图分配运行时间段,避免遗漏第一算子图,同时,每个第一算子图都需要判断是否满足性能需求,可以在精准满足第一算子图的运行需求的情况下,分配运行时间段,提高运行时间段分配灵活性和控制精度。
46.可选的,存在时序关系的两个第一算子图分配的运行时间段相同或相邻。
47.时序关系包括串行时序关系和/或并行时序关系。存在串行时序关系的至少两个
算子图,可以是指至少两个算子图对数据的依赖存在时间上的先后顺序,例如,第一个算子图的输入数据为第二个算子图的输出数据,这两个算子图存在串行时序关系。存在并行时序关系的至少两个算子图,可以是指至少两个算子图对同一数据的依赖是同时的,一个输入数据分别输入两个算子图进行计算,这两个算子图存在并行时序关系。对于有时序关系的算子图,数据沿着串行时序关系从前向后流动,在遇到并行时序关系时,将数据同时交给存在并行时序关系的所有算子图。
48.存在时序关系的两个算子图存在数据上的依赖,若存在时序关系的至少两个算子图运行于不同的运行时间段,需要保留上一运行时间段的中间数据直至下一个运行时间段或者更多运行时间段,这会导致需要存储大量的中间数据,占用过多的存储资源,造成存储资源浪费。从而,将存在时序关系的算子图放在同一运行时间段或者分别放在时序相邻的两个运行时间段中,可以减少中间数据的存储时间,及时释放中间数据的存储资源,提高存储资源的利用率。
49.需要说明的是,存在串行时序关系的两个算子图的串行时序关系与运行时间段的时序对应,例如,时序在前的算子图运行于时序在前的运行时间段,同时时序在后的算子图运行于时序在后的运行时间段。
50.通过将存在时序关系的算子图放在同一运行时间段或者分别放在时序相邻的两个运行时间段中,可以减少中间数据的存储时间,及时释放中间数据的存储资源,提高存储资源的利用率。
51.可选的,所述运行需求信息包括运行需求速度,所述段内需求信息包括段内需求速度;所述确定所述当前算子图在所划分运行时间段内的段内需求信息,包括:计算所述运行周期与所述所划分运行时间段对应的时长的比值;计算所述运行需求速度与所述比值的乘积,确定为段内需求速度。
52.运行数据为当前算子图在所划分运行时间段内的平均速度,运行需求信息为运行需求速度。段内需求信息为段内需求速度。当前算子图的平均速度为该算子图根据接收的随机数据计算得到输出数据的速度。运行需求信息可分为单张图片的运行需求信息和多张图片的运行需求信息,单张图片的运行需求信息中延时不可忽视,多张时可忽略不计,上述方案中的运行需求信息可以为一段时间内的运行需求信息,非单张。段内需求速度与运行需求速度的比值,与运行周期与所划分运行时间段对应的时长之间的比值相等。
53.通过配置运行数据的具体内容以及相应的计算方式,可以准确确定第一算子图的运行性能,使算子图朝向满足性能需求的方向进行分配运行时间段,可以满足多样化的性能需求,灵活配置算子图的运行方式,丰富算子图的应用场景。
54.可选的,所述确定所述当前算子图满足性能条件,包括:如果确定所述当前算子图的运行速度大于等于段内需求速度,则确定所述当前算子图满足性能条件。
55.当前算子图在所划分运行时间段内的运行数据为当前算子图的运行速度。如果确定当前算子图的运行速度大于等于段内需求速度,则确定当前算子图满足性能条件,也即满足在运行时间段内的运行数据满足运行需求信息,当前算子图是运行于运行时间段的目标第一算子图;如果确定当前算子图的运行速度小于段内需求速度,且确定当前算子图不满足性能条件,也即满足在运行时间段内的运行数据不满足运行需求信息,当前算子图不是运行于运行时间段的目标第一算子图。
56.通过根据当前算子图的实际运行速度,结合段内需求速度,检测当前算子图是否与运行时间段匹配,可以精细控制各算子图的运行周期,灵活配置分时复用核心资源,提高核心资源的利用率。
57.可选的,所述获取所述当前算子图在所述所划分运行时间段内的运行数据,包括:获取所述众核系统的可分配核心资源;获取所述所划分运行时间段内已确定的目标第一算子图对应的目标核心资源;根据所述可分配核心资源,和各所述目标第一算子图的目标核心资源,确定所述所划分运行时间段的剩余核心资源;采用所述剩余核心资源运行所述当前算子图,确定所述当前算子图在所述所划分运行时间段内的运行数据。
58.可分配的核心资源,为众核系统可以分配给算子图计算的核心。已确定的目标第一算子图可以是指已经确定的所划分时间段匹配的第一算子图,也即已经确定的在所划分时间段匹配的运行数据满足性能条件的第一算子图。已确定的目标第一算子图对应的目标核心资源,可以是指在所划分运行时间段内可分配的核心资源中,已经分配给所划分运行时间段的目标第一算子图的核心资源。所划分运行时间段的剩余核心资源,可以是指可分配的核心资源与已确定的目标第一算子图对应的目标核心资源的差值。剩余核心资源运行当前算子图,确定当前算子图在所划分运行时间段内的运行数据,可以是指以剩余可分配的全部核心资源运行当前算子图,确定的当前算子图的运行数据。若剩余核心资源运行当前算子图得到的运行数据都无法使当前算子图满足性能条件,表明众核系统在运行时间段无法使当前算子图满足性能条件,从而可以确定,当前算子图与运行时间段不匹配。
59.需要说明的是,剩余核心资源与当前算子图在运行时间段中最终分配的核心资源不同。剩余核心资源实际是为了判断所划分的时间段的众核系统是否还有能力满足当前算子图的运行需求信息。而当前算子图分配的核心资源可以是指在满足配置的运行需求信息的情况下,最低分配的核心资源,从而可以在满足当前算子图的运行需求的情况下,仍可以将剩余资源分配给其他算子图,提高核心资源的利用率。
60.通过计算剩余核心资源,并以剩余核心资源运行当前算子图,确定当前算子图的运行数据,可以准确判断所划分运行时间段内众核系统是否可以满足当前算子图的运行需求信息,精准评估众核系统的剩余计算能力,从而准确为各第一算子图分配符合需求的时间段,提供一种算子图的运行时间段精准分配方式。
61.可选的,所述算子图的时间分配方法,还包括:在确定所述算子图集合包括第二算子图,且目标运行时间段存在剩余核心资源时,为至少一个第二算子图分配所述目标运行时间段,其中,所述第二算子图未配置有运行需求信息。
62.未配置有运行需求信息的算子图的运行性能无限制无要求,可以分配任意大于零的核心资源运行。在为全部第一算子图的运行时间段分配完成之后,选择一个运行时间段确定为目标运行时间段,直至运行全部时间段都遍历完成。选择一个运行时间段的方式可以是按照时序依次选择。目标运行时间段存在剩余核心资源,剩余核心资源可以分配给任意第二算子图。示例性的,可以根据第二算子图的数量,确定分配方式。例如,如果剩余核心资源大于等于第二算子图的数量,则可以为全部第二算子图分配该目标运行时间段,或者可以选择部分第二算子图分配该目标运行时间段;如果剩余核心资源小于第二算子图的数量,则选择部分第二算子图分配该目标运行时间段。其中,选择部分第二算子图的方式可以是:根据优先级选择,优先级的顺序可以是:与已分配当前时间段或已分配时序相邻的前一
时间段的算子图之间存在时序关系的待分配的第二算子图、从未分配时间段的第二算子图、存在时序关系的各待分配的第二算子图和不存在时序关系的各待分配的第二算子图。存在时序关系的两个第二算子图在输入数据和/或输出数据存在依赖关系。
63.通过在第一算子图分配完成之后,可以为各运行时间段内分配到第二算子图,尽可能全部利用各运行时间段内的核心资源,提高核心资源的利用率,减少核心资源的浪费。
64.可选的,所述在运行周期内划分出一个运行时间段,包括:在所述运行周期内,根据所述运行周期的时间起点以及预设时长,在所述运行周期内划分出首个运行时间段;或者将当前待分配的各第一算子图进行划分,确定划分形成的组数;根据所述运行周期和已划分的各运行时间段对应的时长,确定剩余时长;按照所述组数,对所述剩余时长进行划分,得到的分时长;根据所述运行周期中时序最后的运行时间段的终点以及所述分时长,在所述运行周期内划分出一个运行时间段。
65.运行周期的时间起点确定为首个运行时间段的起点,预设时长确定为首个运行时间段的时长,根据首个运行时间段的起点和首个运行时间段的时长,可以在运行周期中确定首个运行时间段。预设时长可以是根据各第一算子图的运行需求信息确定,或者,可以根据实验统计第一算子图的平均运行周期确定,再或者,可以计算运行周期与当前待分配的各第一算子图划分形成的组数之间的比值确定。
66.除了首个运行时间段以外,其他运行时间段的划分是通过组数和剩余时长,确定分时长,和时序最后的运行时间段的终点确定。
67.组数用于对剩余时长进行划分。组数可以是,根据预设组内第一算子图的数量,计算当前待分配的各第一算子图的数量与组内第一算子图的数量之间比值。示例性的,组内第一算子图的数量为2,当前待分配的各第一算子图的数量为8,组数为8/2=4。
68.计算运行周期和已划分的各运行时间段对应的时长之和的差值,确定为剩余时长。剩余时长与组数的比值,确定为分时长。如前例,组数为4,剩余时长为8分钟,则确定分时长为8/4=2分钟。
69.以已划分的各运行时间段中时序最后的运行时间段的终点,作为除首个时间段以外的运行时间段的起点,并根据分时长,在运行周期中,确定该除首个时间段以外的运行时间段。
70.通过提供了运行周期的划分方式,可以实时根据当前待分配的各第一算子图的数量,灵活调整运行时间段的时长,可以精细控制各第一算子图的运行时间段,合理配置众核系统的运行周期,提高时间资源的利用率和灵活性,减少众核系统资源的浪费。
71.实施例二
72.图2为本发明实施例二中的一种算子图的时间分配装置的示意图。实施例二是实现本发明上述实施例提供的算子图的时间分配方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中等,具体是众核系统中。
73.第一算子图获取模块210,用于在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
74.运行时间段划分模块220,用于按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
75.本发明实施例通过在运行周期中为配置有运行需求信息的第一算子图分配运行时间段,并且第一算子图在分配的运行时间段中的运行数据,满足运行周期下的运行需求信息,提供了一种众核系统中算子图的时间分配新方式,在兼顾算子图的运行需求信息的情况下,合理配置众核系统的运行周期,提高时间资源的利用率,减少众核系统资源的浪费。
76.进一步的,所述运行时间段划分模块220,包括:循环分配时间段单元,用于交替执行在运行周期内划分出一个运行时间段的操作,以及按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图的操作,直至为全部第一算子图在运行周期内分配匹配的运行时间段。
77.进一步的,所述循环分配时间段单元,包括:运行需求信息折合计算子单元,用于根据将待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图。
78.进一步的,所述运行需求信息折合计算子单元,具体用于:按照待分配的各所述第一算子图的优先级,确定当前算子图;根据所述当前算子图的运行需求信息,所划分运行时间段内的时长和所述运行周期,确定所述当前算子图在所划分运行时间段内的段内需求信息;获取所述当前算子图在所划分运行时间段内内的运行数据;在根据所述当前算子图的段内需求信息和所述运行数据,确定所述当前算子图满足性能条件时,确定所述当前算子图为目标第一算子图;返回执行按照待分配的各所述第一算子图的优先级,确定当前算子图的操作,直至满足结束分配条件。
79.进一步的,所述运行需求信息包括运行需求速度,所述段内需求信息包括段内需求速度;所述运行需求信息折合计算子单元,具体用于:计算所述运行周期与所述所划分运行时间段对应的时长的比值;计算所述运行需求速度与所述比值的乘积,确定为段内需求速度。
80.进一步的,所述运行需求信息折合计算子单元,具体用于:如果确定所述当前算子图的运行速度大于等于段内需求速度,则确定所述当前算子图满足性能条件。
81.进一步的,所述运行需求信息折合计算子单元,具体用于:获取所述众核系统的可分配核心资源;获取所述所划分运行时间段内已确定的目标第一算子图对应的目标核心资源;根据所述可分配核心资源,和各所述目标第一算子图的目标核心资源,确定所述所划分运行时间段的剩余核心资源;采用所述剩余核心资源运行所述当前算子图,确定所述当前算子图在所述所划分运行时间段内的运行数据。
82.进一步的,所述算子图的时间分配装置,还包括:未配置需求算子图分配模块,用于在确定所述算子图集合包括第二算子图,且目标运行时间段存在剩余核心资源时,为至少一个第二算子图分配所述目标运行时间段,其中,所述第二算子图未配置有运行需求信息。
83.进一步的,存在时序关系的两个第一算子图分配的运行时间段相同或相邻。
84.进一步的,所述运行时间段划分模块220,包括:运行时间段划分单元,用于在所述运行周期内,根据所述运行周期的时间起点以及预设时长,在所述运行周期内划分出首个运行时间段;或者将当前待分配的各第一算子图进行划分,确定划分形成的组数;根据所述
network,lan),广域网(wide area network,wan)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图3中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备运动器、冗余处理单元、外部磁盘运动阵列、(redundant arrays of inexpensive disks,raid)系统、磁带运动器以及数据备份存储系统等。
94.处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的一种算子图的时间分配方法。
95.实施例四
96.本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本技术所有发明实施例提供的算子图的时间分配方法:
97.也即,该程序被处理器执行时实现:在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
98.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、ram、只读存储器(read only memory,rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式cd-rom、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
99.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
100.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(radiofrequency,rf)等等,或者上述的任意合适的组合。
101.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括lan或wan——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
102.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1