CN115269166A - 算子图的时间分配方法、装置、计算机设备及存储介质 - Google Patents

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

Info

Publication number
CN115269166A
CN115269166A CN202110476902.2A CN202110476902A CN115269166A CN 115269166 A CN115269166 A CN 115269166A CN 202110476902 A CN202110476902 A CN 202110476902A CN 115269166 A CN115269166 A CN 115269166A
Authority
CN
China
Prior art keywords
operator graph
time period
graph
operator
operation time
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
Application number
CN202110476902.2A
Other languages
English (en)
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.)
Beijing Lynxi Technology Co Ltd
Original Assignee
Beijing Lynxi 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 Beijing Lynxi Technology Co Ltd filed Critical Beijing Lynxi Technology Co Ltd
Priority to CN202110476902.2A priority Critical patent/CN115269166A/zh
Priority to PCT/CN2021/114217 priority patent/WO2022042519A1/zh
Publication of CN115269166A publication Critical patent/CN115269166A/zh
Pending legal-status Critical Current

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例公开了一种算子图的时间分配方法、装置、计算机设备及存储介质。所述方法包括:在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。本发明实施例可以合理配置算子图的运行方式,提高核心资源利用率。

Description

算子图的时间分配方法、装置、计算机设备及存储介质
技术领域
本发明实施例涉及人工智能领域,尤其涉及一种算子图的时间分配方法、装置、计算机设备及存储介质。
背景技术
近年来,随着人工智能相关应用和技术的飞速发展,对计算能力和功耗效率的要求日益提高。相关技术中,存在对算子图的运行配置不合理的缺点。
发明内容
本发明实施例提供一种算子图的时间分配方法、装置、计算机设备及存储介质,可以合理配置算子图的运行方式,提高核心资源利用率。
第一方面,本发明实施例提供了一种算子图的时间分配方法,应用于众核系统,包括:
在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;
其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
第二方面,本发明实施例还提供了一种算子图的时间分配装置,配置于众核系统,包括:
第一算子图获取模块,用于在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
运行时间段划分模块,用于按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序所述处理器执行所述程序时实现如本发明实施例中任一所述的算子图的时间分配方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的算子图的时间分配方法。
本发明实施例通过在运行周期中为配置有运行需求信息的第一算子图分配运行时间段,并且第一算子图在分配的运行时间段中的运行数据,满足运行周期下的运行需求信息,提供了一种众核系统中算子图的时间分配新方式,在兼顾算子图的运行需求信息的情况下,合理配置众核系统的运行周期,提高时间资源的利用率,减少众核系统资源的浪费。
附图说明
图1是本发明实施例一中的一种算子图的时间分配方法的流程图;
图2是本发明实施例二中的一种算子图的时间分配装置的结构示意图;
图3是本发明实施例三中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1为本发明实施例一中的一种算子图的时间分配方法的流程图,本实施例可适用于适配算子图的运行需求信息为算子图分配资源的情况,该方法可以由本发明实施例提供的算子图的时间分配装置来执行,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中。如图1所示,本实施例的方法包括:
本发明任一实施例应用于众核系统,该众核系统包括可分配的核心资源。
其中,可分配的核心资源可以是指专用于分配给算子图的核心(Core)。其中,核心为可独立调度拥有完整计算能力的最小单元,核心具有自己的存储资源和计算资源。计算机设备的资源中除可分配的核心资源,还包括分配给非算子图的程序的核心资源,以运行其他程序。执行算子图的时间分配方法的计算机设备中包括众核系统,众核系统用于同时运行多个算子图。其中,众核(Many Core)是由大量(未来将会是成百上千个)以及多种类的核心,以预设方式连接在一起,具备高性能并行处理能力的核心集合。
S110,在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图。
算子图集合可以是指在众核系统中运行的算子图的集合。运行需求信息可以是指对应的算子图需要达到的运行性能的信息。运行需求信息可以由用户配置。示例性的,运行需求信息包括配置有运行需求信息的算子图的运行速度最小值和/或运行准确率最小值等。第一算子图是指算子图集合中配置有运行需求信息的算子图。配置有运行需求信息的算子图,表明该算子图的运行数据与运行需求信息匹配。未配置有运行需求信息的算子图的运行性能无限制无要求,可以分配任意大于零的核心资源运行。
其中,算子图集合包括至少一个算子图。算子图可以包括至少一个算子,在算子图包括至少两个算子时,在算子图中,前一算子的输出作为相邻后一算子的输入。算子可以是指卷积、加减乘除或矩阵加乘等算法。算子图用于实现特定功能,算子图可以是指高性能计算算法,算子图可以包括但不局限于AI算法、机器学习算法和通用科学计算算法,更具体的,例如,算子图为深度学习模型,又如,算子图为神经网络。待分配资源的算子图可以为多个,至少两个算子图可以是相互独立的算子图,或者是存在依赖关系的算子图,其中,存在依赖关系的两个算子图可以是指:第一个算子图的输出作为第二个算子图的输入。算子图运行需要资源,为算子图分配核心资源,以运行算子图,并计算输入数据,得到输出数据,从而实现特定功能。
可选的,算子图包括:神经网络模型或神经网络模型包括的至少一个网络。
其中,算子图可以是神经网络模型中的整体或部分。可以理解为,算子图用于实现完整特定功能,或者实现特定功能中的部分功能。例如,算子图可以是一个神经网络模型,或者是一个神经网络模型中的至少一个网络构成的网络集合。
在一些可选的实施例中,算子图可以包括图像检测网络和语音识别网络形成的模型,或者算子图可以仅包括图像检测网络,或者算子图可以仅包括语音识别网络。又如,算子图可以包括图像检测网络和物体识别网络形成的模型,或者算子图可以仅包括图像检测网络,或者算子图可以仅包括物体识别网络。
通过将算子图配置为模型整体或者模型包括的部分网络,可以丰富芯片可执行的算子图的应用场景,以及丰富算子图的业务模式,同时可以提高核心资源的利用率。
S120,按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
运行周期可以是指预设的众核系统运行的周期,众核系统会循环重复运行周期。其中,一个运行周期是指众核系统需要将算子图集合中全部算子图对应的计算任务执行完成一次的时间。运行数据用于描述当前算子图在当前处理的运行时间段内的运行性能。配置有运行需求信息的算子图的运行数据需要满足所配置的运行需求信息。运行时间段是指在运行周期中的一部分,运行时间段的时长小于运行周期。第一算子图在分配的运行时间段内载入到众核系统中运行,并在分配的运行时间段结束时,在众核系统中移除。运行时间段的划分,可以根据第一算子图的数量进行划分。示例性的,第一算子图的数量为8个,可以将运行周期划分为4个相同时长的运行时间段,每个运行时间段运行两个第一算子图。不同的第一算子图分配的时间段可以相同,也可以不同。
在一种可能的实现方式中,众核系统的片上存储不能一次性放下算子图集合包括的全部算子图,需要将算子图分批次放入众核系统中,以实现在众核系统中分时运行,而算子图在众核系统中运行的时间段即为运行时间段。片上存储可以是指众核系统中可分配的存储资源,或者是指芯片的存储器,用于存储算子图集合关联的数据。片上存储小于算子图集合的占用空间,表明芯片在同一时刻无法存储(或放下)算子图集合。片上存储小于算子图集合的占用空间,片上存储无法放下算子图集合,可以先加载该算子图集合的部分算子图,需要在部分算子图运行完成得到输出结果之后,将部分算子图移除片上存储,并将剩余算子图加载片上存储中,以运行剩余部分算子图,继续计算,以此类推,直至得到最终结果。
将运行周期划分为多个运行时间段的方式,可以是预先划分一个小于运行周期的时间段,作为当前划分的运行时间段,并针对每个第一算子图,将第一算子图放入到众核系统中运行该运行时间段,并采集运行数据,在运行数据满足运行需求信息的情况下,将该运行时间段确定为该第一算子图的运行时间段。在不满足运行需求信息的情况下,确定该第一算子图与该运行时间段不匹配。直至待分配的第一算子图全部判断是否运行于运行时间段之后,根据待分配的第一算子图的数量,在剩余运行周期中,继续划分下一个运行时间段,并继续判断待分配的第一算子图是否运行于当前划分的运行时间段,以此类推,直至全部第一算子图均分配完成,确定运行时间段划分完成。其中,待分配的第一算子图可以是指,在当前划分的运行时间段内,未分配运行时间段的第一算子图。
本发明实施例通过在运行周期中为配置有运行需求信息的第一算子图分配运行时间段,并且第一算子图在分配的运行时间段中的运行数据,满足运行周期下的运行需求信息,提供了一种众核系统中算子图的时间分配新方式,在兼顾算子图的运行需求信息的情况下,合理配置众核系统的运行周期,提高时间资源的利用率,减少众核系统资源的浪费。
可选的,所述按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段,包括:交替执行在运行周期内划分出一个运行时间段的操作,以及按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图的操作,直至为全部第一算子图在运行周期内分配匹配的运行时间段。
在一种可能的实现方式中,运行时间段是逐个确定的,在每划分一个运行时间段时,就检测待分配的第一算子图是否为目标第一算子图,也即检测待分配的第一算子图在运行时间段运行的运行数据是否满足配置的运行需求信息;从而交替执行划分运行时间段的操作和确定运行时间段内目标第一算子图的操作。
目标第一算子图是指在所划分运行时间段内运行的运行数据满足所配置的运行需求信息的第一算子图。目标第一算子图与当前划分的运行时间段匹配。
在一种可能的实现方式中,执行在运行周期内划分出一个运行时间段的操作之后,检测各第一算子图运行在该运行时间段得到的运行数据,是否满足运行需求信息,并在满足的情况下,将该第一算子图确定为该运行时间段匹配的目标第一算子图;在不满足的情况下,确定该第一算子图与运行时间段不匹配,也即确定该第一算子图不是该运行时间段匹配的目标第一算子图。在全部算子图与该运行时间段是否匹配的检测完成之后,划分下一个运行时间段,检测剩余第一算子图运行在该运行时间段得到的运行数据,是否满足运行需求信息,以此类推。
通过交替执行划分运行时间段的操作和确定运行时间段内目标第一算子图的操作,可以迅速准确在运行周期中划分运行时间段,并为每个运行时间段,在待分配的第一算子图中依次确定匹配的目标第一算子图,减少遗漏第一算子图,提高运行时间段的分配准确率,可以提高运行周期的利用率,并且,使每个第一算子图都能满足所配置的运行需求信息,从而合理配置众核系统的资源,提高众核系统的资源利用率。
可选的,按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图,包括:根据将当前待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及所述当前待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图。
其中,段内需求信息用于判断所划分运行时间段是否为第一算子图匹配的运行时间段,也即用于判断第一算子图是否为运行于所划分运行时间段内的目标第一算子图。段内需求信息与运行需求信息匹配,运行需求信息为在运行周期下的需求信息,段内需求信息是在所划分运行时间段下的需求信息。段内需求信息可以根据运行周期、所划分的运行时间段的时长和运行需求信息确定。示例性的,运行周期与所划分的运行时间段的时长的比值,与运行需求信息对应的数值之间的乘积,为段内需求信息对应的数值。
实际上,第一算子图的运行需求信息是指在整个运行周期下需要满足的需求信息,而第一算子图在分配的运行时间段内运行,在未分配的运行时间段内不运行,也就是说,第一算子图在分配的运行时间段内的运行数据,需要在未分配的运行时间段内同样满足一定的需求信息。相应的,可以将运行需求信息折合到所划分的运行时间段内,映射为段内需求信息,根据段内需求信息,与第一算子图的运行数据进行比较,检测第一算子图的运行数据是否满足段内需求信息,以检测第一算子图的运行数据是否满足运行周期下的运行需求信息。
通过将运行周期下的运行需求信息折合至运行时间段内的段内需求信息,并根据段内需求信息,检测第一算子图在运行时间段内的运行数据是否满足段内需求信息,以判断第一算子图是否与该运行时间段匹配,可以准确判断第一算子图运行于运行时间段内的运行数据是否满足运行周期下的运行需求信息,从而准确确定运行时间段匹配的目标第一算子图,提高运行时间段的分配准确率,而且能够精准满足各第一算子图配置的运行需求信息。
可选的,根据将当前待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及当前待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图,包括:在当前待分配的各所述第一算子图中,确定当前算子图;根据所述当前算子图的运行需求信息,所划分运行时间段内的时长和所述运行周期,确定所述当前算子图在所划分运行时间段内的段内需求信息;获取所述当前算子图在所划分运行时间段内的运行数据;在根据所述当前算子图的段内需求信息和所述运行数据,确定所述当前算子图满足性能条件时,确定所述当前算子图为目标第一算子图;返回执行在当前待分配的各所述第一算子图中,确定当前算子图的操作,直至满足结束分配条件。
在当前待分配的第一算子图中,选择一个第一算子图确定为当前算子图。示例性的,可以在当前待分配的第一算子图中,根据各第一算子图的优先级,确定当前算子图。示例性的,优先级可以是第一算子图是否为存在时序关系的算子图,以及存在时序关系的第一算子图所属的时序关系中,是否存在已分配运行时间段的第一算子图。优先级从高到低的顺序可以是,与已分配运行时间段的第一算子图存在时序关系的待分配的第一算子图、存在时序关系的各待分配的第一算子图和不存在时序关系的各待分配的第一算子图。存在时序关系的两个第一算子图在输入数据和/或输出数据存在依赖关系。
当前算子图的运行需求信息对应的数值,与当前算子图在所划分运行时间段内的段内需求信息对应的数值之间的比值,与运行周期与所划分运行时间段内的时长之间的比值对应,示例性的,前者与后者成反比。性能条件用于判断当前算子图的运行数据是否满足段内需求信息。结束分配条件用于判断当前待分配的第一算子图是否判断完成。示例性的,结束分配条件为当前待分配的第一算子图与运行时间段的匹配结果均已确定,不存在待分配的第一算子图。
通过循环逐个判断第一算子图是否为运行于运行时间段内的目标第一算子图,确定每个第一算子图与运行时间段的匹配关系,从而准确为各第一算子图分配运行时间段,避免遗漏第一算子图,同时,每个第一算子图都需要判断是否满足性能需求,可以在精准满足第一算子图的运行需求的情况下,分配运行时间段,提高运行时间段分配灵活性和控制精度。
可选的,存在时序关系的两个第一算子图分配的运行时间段相同或相邻。
时序关系包括串行时序关系和/或并行时序关系。存在串行时序关系的至少两个算子图,可以是指至少两个算子图对数据的依赖存在时间上的先后顺序,例如,第一个算子图的输入数据为第二个算子图的输出数据,这两个算子图存在串行时序关系。存在并行时序关系的至少两个算子图,可以是指至少两个算子图对同一数据的依赖是同时的,一个输入数据分别输入两个算子图进行计算,这两个算子图存在并行时序关系。对于有时序关系的算子图,数据沿着串行时序关系从前向后流动,在遇到并行时序关系时,将数据同时交给存在并行时序关系的所有算子图。
存在时序关系的两个算子图存在数据上的依赖,若存在时序关系的至少两个算子图运行于不同的运行时间段,需要保留上一运行时间段的中间数据直至下一个运行时间段或者更多运行时间段,这会导致需要存储大量的中间数据,占用过多的存储资源,造成存储资源浪费。从而,将存在时序关系的算子图放在同一运行时间段或者分别放在时序相邻的两个运行时间段中,可以减少中间数据的存储时间,及时释放中间数据的存储资源,提高存储资源的利用率。
需要说明的是,存在串行时序关系的两个算子图的串行时序关系与运行时间段的时序对应,例如,时序在前的算子图运行于时序在前的运行时间段,同时时序在后的算子图运行于时序在后的运行时间段。
通过将存在时序关系的算子图放在同一运行时间段或者分别放在时序相邻的两个运行时间段中,可以减少中间数据的存储时间,及时释放中间数据的存储资源,提高存储资源的利用率。
可选的,所述运行需求信息包括运行需求速度,所述段内需求信息包括段内需求速度;所述确定所述当前算子图在所划分运行时间段内的段内需求信息,包括:计算所述运行周期与所述所划分运行时间段对应的时长的比值;计算所述运行需求速度与所述比值的乘积,确定为段内需求速度。
运行数据为当前算子图在所划分运行时间段内的平均速度,运行需求信息为运行需求速度。段内需求信息为段内需求速度。当前算子图的平均速度为该算子图根据接收的随机数据计算得到输出数据的速度。运行需求信息可分为单张图片的运行需求信息和多张图片的运行需求信息,单张图片的运行需求信息中延时不可忽视,多张时可忽略不计,上述方案中的运行需求信息可以为一段时间内的运行需求信息,非单张。段内需求速度与运行需求速度的比值,与运行周期与所划分运行时间段对应的时长之间的比值相等。
通过配置运行数据的具体内容以及相应的计算方式,可以准确确定第一算子图的运行性能,使算子图朝向满足性能需求的方向进行分配运行时间段,可以满足多样化的性能需求,灵活配置算子图的运行方式,丰富算子图的应用场景。
可选的,所述确定所述当前算子图满足性能条件,包括:如果确定所述当前算子图的运行速度大于等于段内需求速度,则确定所述当前算子图满足性能条件。
当前算子图在所划分运行时间段内的运行数据为当前算子图的运行速度。如果确定当前算子图的运行速度大于等于段内需求速度,则确定当前算子图满足性能条件,也即满足在运行时间段内的运行数据满足运行需求信息,当前算子图是运行于运行时间段的目标第一算子图;如果确定当前算子图的运行速度小于段内需求速度,且确定当前算子图不满足性能条件,也即满足在运行时间段内的运行数据不满足运行需求信息,当前算子图不是运行于运行时间段的目标第一算子图。
通过根据当前算子图的实际运行速度,结合段内需求速度,检测当前算子图是否与运行时间段匹配,可以精细控制各算子图的运行周期,灵活配置分时复用核心资源,提高核心资源的利用率。
可选的,所述获取所述当前算子图在所述所划分运行时间段内的运行数据,包括:获取所述众核系统的可分配核心资源;获取所述所划分运行时间段内已确定的目标第一算子图对应的目标核心资源;根据所述可分配核心资源,和各所述目标第一算子图的目标核心资源,确定所述所划分运行时间段的剩余核心资源;采用所述剩余核心资源运行所述当前算子图,确定所述当前算子图在所述所划分运行时间段内的运行数据。
可分配的核心资源,为众核系统可以分配给算子图计算的核心。已确定的目标第一算子图可以是指已经确定的所划分时间段匹配的第一算子图,也即已经确定的在所划分时间段匹配的运行数据满足性能条件的第一算子图。已确定的目标第一算子图对应的目标核心资源,可以是指在所划分运行时间段内可分配的核心资源中,已经分配给所划分运行时间段的目标第一算子图的核心资源。所划分运行时间段的剩余核心资源,可以是指可分配的核心资源与已确定的目标第一算子图对应的目标核心资源的差值。剩余核心资源运行当前算子图,确定当前算子图在所划分运行时间段内的运行数据,可以是指以剩余可分配的全部核心资源运行当前算子图,确定的当前算子图的运行数据。若剩余核心资源运行当前算子图得到的运行数据都无法使当前算子图满足性能条件,表明众核系统在运行时间段无法使当前算子图满足性能条件,从而可以确定,当前算子图与运行时间段不匹配。
需要说明的是,剩余核心资源与当前算子图在运行时间段中最终分配的核心资源不同。剩余核心资源实际是为了判断所划分的时间段的众核系统是否还有能力满足当前算子图的运行需求信息。而当前算子图分配的核心资源可以是指在满足配置的运行需求信息的情况下,最低分配的核心资源,从而可以在满足当前算子图的运行需求的情况下,仍可以将剩余资源分配给其他算子图,提高核心资源的利用率。
通过计算剩余核心资源,并以剩余核心资源运行当前算子图,确定当前算子图的运行数据,可以准确判断所划分运行时间段内众核系统是否可以满足当前算子图的运行需求信息,精准评估众核系统的剩余计算能力,从而准确为各第一算子图分配符合需求的时间段,提供一种算子图的运行时间段精准分配方式。
可选的,所述算子图的时间分配方法,还包括:在确定所述算子图集合包括第二算子图,且目标运行时间段存在剩余核心资源时,为至少一个第二算子图分配所述目标运行时间段,其中,所述第二算子图未配置有运行需求信息。
未配置有运行需求信息的算子图的运行性能无限制无要求,可以分配任意大于零的核心资源运行。在为全部第一算子图的运行时间段分配完成之后,选择一个运行时间段确定为目标运行时间段,直至运行全部时间段都遍历完成。选择一个运行时间段的方式可以是按照时序依次选择。目标运行时间段存在剩余核心资源,剩余核心资源可以分配给任意第二算子图。示例性的,可以根据第二算子图的数量,确定分配方式。例如,如果剩余核心资源大于等于第二算子图的数量,则可以为全部第二算子图分配该目标运行时间段,或者可以选择部分第二算子图分配该目标运行时间段;如果剩余核心资源小于第二算子图的数量,则选择部分第二算子图分配该目标运行时间段。其中,选择部分第二算子图的方式可以是:根据优先级选择,优先级的顺序可以是:与已分配当前时间段或已分配时序相邻的前一时间段的算子图之间存在时序关系的待分配的第二算子图、从未分配时间段的第二算子图、存在时序关系的各待分配的第二算子图和不存在时序关系的各待分配的第二算子图。存在时序关系的两个第二算子图在输入数据和/或输出数据存在依赖关系。
通过在第一算子图分配完成之后,可以为各运行时间段内分配到第二算子图,尽可能全部利用各运行时间段内的核心资源,提高核心资源的利用率,减少核心资源的浪费。
可选的,所述在运行周期内划分出一个运行时间段,包括:在所述运行周期内,根据所述运行周期的时间起点以及预设时长,在所述运行周期内划分出首个运行时间段;或者将当前待分配的各第一算子图进行划分,确定划分形成的组数;根据所述运行周期和已划分的各运行时间段对应的时长,确定剩余时长;按照所述组数,对所述剩余时长进行划分,得到的分时长;根据所述运行周期中时序最后的运行时间段的终点以及所述分时长,在所述运行周期内划分出一个运行时间段。
运行周期的时间起点确定为首个运行时间段的起点,预设时长确定为首个运行时间段的时长,根据首个运行时间段的起点和首个运行时间段的时长,可以在运行周期中确定首个运行时间段。预设时长可以是根据各第一算子图的运行需求信息确定,或者,可以根据实验统计第一算子图的平均运行周期确定,再或者,可以计算运行周期与当前待分配的各第一算子图划分形成的组数之间的比值确定。
除了首个运行时间段以外,其他运行时间段的划分是通过组数和剩余时长,确定分时长,和时序最后的运行时间段的终点确定。
组数用于对剩余时长进行划分。组数可以是,根据预设组内第一算子图的数量,计算当前待分配的各第一算子图的数量与组内第一算子图的数量之间比值。示例性的,组内第一算子图的数量为2,当前待分配的各第一算子图的数量为8,组数为8/2=4。
计算运行周期和已划分的各运行时间段对应的时长之和的差值,确定为剩余时长。剩余时长与组数的比值,确定为分时长。如前例,组数为4,剩余时长为8分钟,则确定分时长为8/4=2分钟。
以已划分的各运行时间段中时序最后的运行时间段的终点,作为除首个时间段以外的运行时间段的起点,并根据分时长,在运行周期中,确定该除首个时间段以外的运行时间段。
通过提供了运行周期的划分方式,可以实时根据当前待分配的各第一算子图的数量,灵活调整运行时间段的时长,可以精细控制各第一算子图的运行时间段,合理配置众核系统的运行周期,提高时间资源的利用率和灵活性,减少众核系统资源的浪费。
实施例二
图2为本发明实施例二中的一种算子图的时间分配装置的示意图。实施例二是实现本发明上述实施例提供的算子图的时间分配方法的相应装置,该装置可采用软件和/或硬件的方式实现,并一般可集成计算机设备中等,具体是众核系统中。
第一算子图获取模块210,用于在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
运行时间段划分模块220,用于按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
本发明实施例通过在运行周期中为配置有运行需求信息的第一算子图分配运行时间段,并且第一算子图在分配的运行时间段中的运行数据,满足运行周期下的运行需求信息,提供了一种众核系统中算子图的时间分配新方式,在兼顾算子图的运行需求信息的情况下,合理配置众核系统的运行周期,提高时间资源的利用率,减少众核系统资源的浪费。
进一步的,所述运行时间段划分模块220,包括:循环分配时间段单元,用于交替执行在运行周期内划分出一个运行时间段的操作,以及按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图的操作,直至为全部第一算子图在运行周期内分配匹配的运行时间段。
进一步的,所述循环分配时间段单元,包括:运行需求信息折合计算子单元,用于根据将待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图。
进一步的,所述运行需求信息折合计算子单元,具体用于:按照待分配的各所述第一算子图的优先级,确定当前算子图;根据所述当前算子图的运行需求信息,所划分运行时间段内的时长和所述运行周期,确定所述当前算子图在所划分运行时间段内的段内需求信息;获取所述当前算子图在所划分运行时间段内内的运行数据;在根据所述当前算子图的段内需求信息和所述运行数据,确定所述当前算子图满足性能条件时,确定所述当前算子图为目标第一算子图;返回执行按照待分配的各所述第一算子图的优先级,确定当前算子图的操作,直至满足结束分配条件。
进一步的,所述运行需求信息包括运行需求速度,所述段内需求信息包括段内需求速度;所述运行需求信息折合计算子单元,具体用于:计算所述运行周期与所述所划分运行时间段对应的时长的比值;计算所述运行需求速度与所述比值的乘积,确定为段内需求速度。
进一步的,所述运行需求信息折合计算子单元,具体用于:如果确定所述当前算子图的运行速度大于等于段内需求速度,则确定所述当前算子图满足性能条件。
进一步的,所述运行需求信息折合计算子单元,具体用于:获取所述众核系统的可分配核心资源;获取所述所划分运行时间段内已确定的目标第一算子图对应的目标核心资源;根据所述可分配核心资源,和各所述目标第一算子图的目标核心资源,确定所述所划分运行时间段的剩余核心资源;采用所述剩余核心资源运行所述当前算子图,确定所述当前算子图在所述所划分运行时间段内的运行数据。
进一步的,所述算子图的时间分配装置,还包括:未配置需求算子图分配模块,用于在确定所述算子图集合包括第二算子图,且目标运行时间段存在剩余核心资源时,为至少一个第二算子图分配所述目标运行时间段,其中,所述第二算子图未配置有运行需求信息。
进一步的,存在时序关系的两个第一算子图分配的运行时间段相同或相邻。
进一步的,所述运行时间段划分模块220,包括:运行时间段划分单元,用于在所述运行周期内,根据所述运行周期的时间起点以及预设时长,在所述运行周期内划分出首个运行时间段;或者将当前待分配的各第一算子图进行划分,确定划分形成的组数;根据所述运行周期和已划分的各运行时间段对应的时长,确定剩余时长;按照所述组数,对所述剩余时长进行划分,得到的分时长;根据所述运行周期中时序最后的运行时间段的终点以及所述分时长,在所述运行周期内划分出一个运行时间段。
上述图像生成装置可执行本发明实施例任一所提供的算子图的时间分配方法,具备执行的图像生成方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三提供的一种计算机设备的结构示意图。图3示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图3显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。计算机设备12可以是挂接在总线上的设备。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘运动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘运动器,以及对可移动非易失性光盘(例如紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘运动器。在这些情况下,每个运动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如系统存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork,LAN),广域网(Wide Area Network,WAN)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图3中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备运动器、冗余处理单元、外部磁盘运动阵列、(Redundant Arrays of Inexpensive Disks,RAID)系统、磁带运动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的一种算子图的时间分配方法。
实施例四
本发明实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请所有发明实施例提供的算子图的时间分配方法:
也即,该程序被处理器执行时实现:在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、只读存储器(Read OnlyMemory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、无线电频率(RadioFrequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (13)

1.一种算子图的时间分配方法,其特征在于,配置于众核系统,所述方法包括:
在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;
其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
2.根据权利要求1所述的方法,其特征在于,所述按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段,包括:
交替执行在运行周期内划分出一个运行时间段的操作,以及按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图的操作,直至为全部第一算子图在运行周期内分配匹配的运行时间段。
3.根据权利要求2所述的方法,其特征在于,按照当前待分配的各第一算子图的运行需求信息,确定运行于所划分运行时间段内的各目标第一算子图,包括:
根据将当前待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及所述当前待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图。
4.根据权利要求3所述的方法,其特征在于,根据将当前待分配的第一算子图的运行需求信息折合至所划分运行时间段内后得到的段内需求信息,以及当前待分配的第一算子图在所划分运行时间段内的运行数据,确定运行于所划分运行时间段内的各目标第一算子图,包括:
在当前待分配的各所述第一算子图中,确定当前算子图;
根据所述当前算子图的运行需求信息,所划分运行时间段内的时长和所述运行周期,确定所述当前算子图在所划分运行时间段内的段内需求信息;
获取所述当前算子图在所划分运行时间段内的运行数据;
在根据所述当前算子图的段内需求信息和所述运行数据,确定所述当前算子图满足性能条件时,确定所述当前算子图为目标第一算子图;
返回执行在当前待分配的各所述第一算子图中,确定当前算子图的操作,直至满足结束分配条件。
5.根据权利要求4所述的方法,其特征在于,所述运行需求信息包括运行需求速度,所述段内需求信息包括段内需求速度;
所述确定所述当前算子图在所划分运行时间段内的段内需求信息,包括:
计算所述运行周期与所述所划分运行时间段对应的时长的比值;
计算所述运行需求速度与所述比值的乘积,确定为段内需求速度。
6.根据权利要求5所述的方法,其特征在于,所述确定所述当前算子图满足性能条件,包括:
如果确定所述当前算子图的运行速度大于等于段内需求速度,则确定所述当前算子图满足性能条件。
7.根据权利要求4所述的方法,其特征在于,所述获取所述当前算子图在所述所划分运行时间段内的运行数据,包括:
获取所述众核系统的可分配核心资源;
获取所述所划分运行时间段内已确定的目标第一算子图对应的目标核心资源;
根据所述可分配核心资源,和各所述目标第一算子图的目标核心资源,确定所述所划分运行时间段的剩余核心资源;
采用所述剩余核心资源运行所述当前算子图,确定所述当前算子图在所述所划分运行时间段内的运行数据。
8.根据权利要求1所述的方法,其特征在于,还包括:
在确定所述算子图集合包括第二算子图,且目标运行时间段存在剩余核心资源时,为至少一个第二算子图分配所述目标运行时间段,其中,所述第二算子图未配置有运行需求信息。
9.根据权利要求1所述的方法,其特征在于,存在时序关系的两个第一算子图分配的运行时间段相同或相邻。
10.根据权利要求2所述的方法,其特征在于,所述在运行周期内划分出一个运行时间段,包括:
在所述运行周期内,根据所述运行周期的时间起点以及预设时长,在所述运行周期内划分出首个运行时间段;或者
将当前待分配的各第一算子图进行划分,确定划分形成的组数;
根据所述运行周期和已划分的各运行时间段对应的时长,确定剩余时长;
按照所述组数,对所述剩余时长进行划分,得到的分时长;
根据所述运行周期中时序最后的运行时间段的终点以及所述分时长,在所述运行周期内划分出一个运行时间段。
11.一种算子图的时间分配装置,其特征在于,配置于众核系统,所述装置包括:
第一算子图获取模块,用于在待运行于众核系统的算子图集合中,获取配置有运行需求信息的第一算子图;
运行时间段划分模块,用于按照各所述第一算子图的运行需求信息,将运行周期划分为多个运行时间段,并为各所述第一算子图分配运行时间段;其中,所述第一算子图在分配的运行时间段内的运行数据,满足在所述运行周期下的运行需求信息。
12.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-10中任一所述的算子图的时间分配方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-10中任一所述的算子图的时间分配方法。
CN202110476902.2A 2020-08-27 2021-04-29 算子图的时间分配方法、装置、计算机设备及存储介质 Pending CN115269166A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110476902.2A CN115269166A (zh) 2021-04-29 2021-04-29 算子图的时间分配方法、装置、计算机设备及存储介质
PCT/CN2021/114217 WO2022042519A1 (zh) 2020-08-27 2021-08-24 资源分配方法和装置、计算机设备、计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110476902.2A CN115269166A (zh) 2021-04-29 2021-04-29 算子图的时间分配方法、装置、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN115269166A true CN115269166A (zh) 2022-11-01

Family

ID=83745372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110476902.2A Pending CN115269166A (zh) 2020-08-27 2021-04-29 算子图的时间分配方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN115269166A (zh)

Similar Documents

Publication Publication Date Title
CN110515739B (zh) 深度学习神经网络模型负载计算方法、装置、设备及介质
CN111427681B (zh) 边缘计算中基于资源监控的实时任务匹配调度系统和方法
CN111258744A (zh) 一种基于异构计算的任务处理方法及软硬件框架系统
CN109886859B (zh) 数据处理方法、系统、电子设备和计算机可读存储介质
CN110889439B (zh) 一种图像特征提取方法、装置及电子设备和存储介质
CN112465146B (zh) 一种量子与经典混合云平台以及任务执行方法
CN112068957A (zh) 资源分配方法、装置、计算机设备及存储介质
KR20140146272A (ko) 멀티코어 프로세서 기반의 모니터링 장치 및 그 방법
US11188348B2 (en) Hybrid computing device selection analysis
CN116467061B (zh) 一种任务执行的方法、装置、存储介质及电子设备
US8941674B2 (en) System and method for efficient resource management of a signal flow programmed digital signal processor code
US20160210171A1 (en) Scheduling in job execution
CN115827250A (zh) 一种数据存储方法、装置及设备
CN109634714B (zh) 一种智能调度的方法及装置
CN116069480B (zh) 一种处理器及计算设备
CN110825502B (zh) 神经网络处理器和用于神经网络处理器的任务调度方法
CN115269166A (zh) 算子图的时间分配方法、装置、计算机设备及存储介质
CN115016890A (zh) 虚拟机资源分配方法、装置、电子设备及存储介质
CN114283046A (zh) 基于icp算法的点云文件配准方法、装置及存储介质
CN115269165A (zh) 算子图资源分配方法、装置、计算机设备及存储介质
CN110083357B (zh) 界面构建方法、装置、服务器及存储介质
CN112988383A (zh) 一种资源分配方法、装置、设备以及存储介质
CN111260046B (zh) 运算方法、装置及相关产品
CN114764372A (zh) 数据处理方法、装置、电子设备和存储介质
CN115269163A (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