CN116974767A - 一种任务调度系统、方法、装置、设备及介质 - Google Patents
一种任务调度系统、方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116974767A CN116974767A CN202310998074.8A CN202310998074A CN116974767A CN 116974767 A CN116974767 A CN 116974767A CN 202310998074 A CN202310998074 A CN 202310998074A CN 116974767 A CN116974767 A CN 116974767A
- Authority
- CN
- China
- Prior art keywords
- task
- target
- heterogeneous
- instruction
- subtask
- 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 50
- 238000012544 monitoring process Methods 0.000 claims abstract description 4
- 238000007726 management method Methods 0.000 claims description 79
- 238000004364 calculation method Methods 0.000 claims description 38
- 238000013500 data storage Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 abstract description 20
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及计算机技术领域,尤其涉及一种任务调度系统、方法、装置、设备及介质。系统包括:任务预取组件、硬件调度器、硬件资源管理组件、指令调度组件、指令包分发组件以及至少一个异构单元;任务预取组件,用于监测任务队列,将任务队列中的待处理任务存储至硬件调度器的本地存储空间;硬件调度器,用于将目标任务拆分为多个目标子任务;确定各目标子任务的可用异构单元;将异构单元申请请求发送至硬件资源管理组件;若接收到申请成功提示信息,则将生成的指令发送至指令调度组件,将任务指令包发送至指令包分发组件。本发明实施例可以自动根据任务信息和异构单元的资源状态,合理地、准确地将每个子任务分配给可用的异构单元进行处理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种任务调度系统、方法、装置、设备及介质。
背景技术
通常情况下,芯片中设置有多个用于执行计算指令的异构单元。芯片中设置的异构单元包括但不限于:预设数量的计算引擎、数据引擎、通用处理器以及图像视频处理单元。芯片中会产生大量的计算任务。在芯片的使用过程中,需要对芯片中产生的计算任务进行调度,通过异构单元执行计算任务中的计算指令。
相关技术中,常用的任务调度方案为:通过芯片中的调度软件,将计算任务拆分为多个可以单独处理的子任务,然后将每个子任务分别分配给一个异构单元,通过异构单元执行子任务中的计算指令。但是在调度过程中,调度软件经常会出现调度延迟的现象,而且调度软件无法根据各个异构单元的资源状态合理地、准确地将每个子任务分别分配给一个可用的异构单元进行处理,导致资源利用率和调度效率较低,严重影响芯片的计算能力。
发明内容
本发明提供了一种任务调度系统、方法、装置、设备及介质,以解决相关技术中的任务调度方案的资源利用率和调度效率较低,严重影响芯片的计算能力的问题。
根据本发明的一方面,提供了一种任务调度系统,包括:任务预取组件、硬件调度器、硬件资源管理组件、指令调度组件、指令包分发组件、至少一个异构单元;
其中,所述任务预取组件,用于监测任务队列,将所述任务队列中的待处理任务存储至所述硬件调度器的本地存储空间;
所述硬件调度器,用于在从所述待处理任务中获取到在从所述待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;从所述硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元;将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件;在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至所述指令调度组件;在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至所述指令包分发组件;
所述硬件资源管理组件,用于对各所述异构单元的资源状态进行管理;在接收到与各所述目标子任务的可用异构单元对应的异构单元申请请求之后,根据各所述异构单元的资源状态,反馈申请成功提示信息或申请失败提示信息至所述硬件调度器;
所述指令调度组件,用于在接收到各所述目标子任务对应的异构单元预准备指令和异构单元启动指令之后,根据各所述目标子任务对应的异构单元预准备指令进行数据搬运,根据各所述目标子任务对应的异构单元启动指令控制各所述目标子任务的可用异构单元启动;在各所述目标子任务的可用异构单元启动之后,将指令完成提示信息反馈至所述硬件调度器;
所述指令包分发组件,用于在接收到与各所述目标子任务对应的任务指令包之后,将与各所述目标子任务对应的任务指令包发送至各所述目标子任务的可用异构单元;
各所述目标子任务的可用异构单元,用于在接收到任务指令包之后,执行所述任务指令包。
根据本发明的另一方面,提供了一种任务调度方法,应用于如本发明任一实施例所述的任务调度系统中的硬件调度器中,包括:
在从待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;
从硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元;
将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件;
在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;
将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件;
在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件。
根据本发明的另一方面,提供了一种任务调度装置,包括:
任务拆分模块,用于在从待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;
调度决策模块,用于从硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元;
资源申请模块,用于将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件;
信息生成模块,用于在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;
指令发送模块,用于将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件;
指令包发送模块,用于在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;
以及与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的任务调度方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的任务调度方法。
本发明实施例的技术方案中,通过硬件调度器,在从待处理任务中获取到可拆分的目标任务之后,根据目标任务的任务信息,将目标任务拆分为多个目标子任务;然后通过硬件调度器从硬件资源管理组件中获取各异构单元的资源状态,根据各目标子任务的任务信息、以及各异构单元的资源状态,确定各目标子任务的可用异构单元,将与各目标子任务的可用异构单元对应的异构单元申请请求发送至硬件资源管理组件;在接收到硬件资源管理组件反馈的申请成功提示信息之后,根据各目标子任务的任务信息、各目标子任务的可用异构单元,生成与各目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;将与各目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件,以使指令调度组件根据各目标子任务对应的异构单元预准备指令进行数据搬运,根据各目标子任务对应的异构单元启动指令控制各目标子任务的可用异构单元启动;在接收到指令调度组件反馈的指令完成提示信息之后,将与各目标子任务对应的任务指令包发送至指令包分发组件,以使指令包分发组件将与各目标子任务对应的任务指令包发送至各目标子任务的可用异构单元,各目标子任务的可用异构单元执行任务指令包,从而对各目标子任务进行处理,完成各目标子任务,解决了相关技术中的任务调度方案的资源利用率和调度效率较低,严重影响芯片的计算能力的问题,取到了可以将芯片中产生的计算任务拆分为多个可以单独处理的子任务,自动根据任务信息和芯片中的各个异构单元的资源状态,合理地、准确地将每个子任务分别分配给一个可用的异构单元进行处理,提高芯片的任务调度过程的资源利用率和调度效率,提高芯片的计算能力的有益效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种任务调度系统的结构示意图。
图2为本发明实施例二提供的一种任务调度方法的流程图。
图3为本发明实施例三提供的一种任务调度装置的结构示意图。
图4为实现本发明实施例的任务调度方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“目标”、“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包含”、“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供的一种任务调度系统的结构示意图。本实施例可适用于对计算任务进行调度的情况。如图1所示,该任务调度系统具体可以包括:任务预取组件101、硬件调度器102、硬件资源管理组件103、指令调度组件104、指令包分发组件105以及至少一个异构单元106,下面对其结构和功能进行说明。
其中,所述任务预取组件101,用于监测任务队列,将所述任务队列中的待处理任务存储至所述硬件调度器102的本地存储空间。
所述硬件调度器102,用于在从所述待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;从所述硬件资源管理组件103中获取各所述异构单元106的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元106的资源状态,确定各所述目标子任务的可用异构单元;将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件103;在接收到所述硬件资源管理组件103反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至所述指令调度组件104;在接收到所述指令调度组件104反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至所述指令包分发组件105。
所述硬件资源管理组件103,用于对各所述异构单元106的资源状态进行管理;在接收到与各所述目标子任务的可用异构单元对应的异构单元申请请求之后,根据各所述异构单元106的资源状态,反馈申请成功提示信息或申请失败提示信息至所述硬件调度器102。
所述指令调度组件104,用于在接收到各所述目标子任务对应的异构单元预准备指令和异构单元启动指令之后,根据各所述目标子任务对应的异构单元预准备指令进行数据搬运,根据各所述目标子任务对应的异构单元启动指令控制各所述目标子任务的可用异构单元启动;在各所述目标子任务的可用异构单元启动之后,将指令完成提示信息反馈至所述硬件调度器102。
所述指令包分发组件105,用于在接收到与各所述目标子任务对应的任务指令包之后,将与各所述目标子任务对应的任务指令包发送至各所述目标子任务的可用异构单元。
各所述目标子任务的可用异构单元,用于在接收到任务指令包之后,执行所述任务指令包。
可选的,任务预取组件101监测任务队列,将所述任务队列中的待处理任务存储至所述硬件调度器102的本地存储空间。硬件调度器102是芯片中设置的用于对计算任务进行调度的硬件组件。硬件调度器102按照任务存储时间的先后顺序,依次从本地存储空间存储的待处理任务中的各个计算任务中获取一个计算任务进行调度。任务存储时间可以是计算任务存储至本地存储空间的时间。硬件调度器102在从本地存储空间存储的待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务。然后硬件调度器102从硬件资源管理组件103中获取各所述异构单元106的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元106的资源状态,确定各所述目标子任务的可用异构单元。硬件调度器102将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至硬件资源管理组件103。硬件资源管理组件103在接收到与各所述目标子任务的可用异构单元对应的异构单元申请请求之后,根据各所述异构单元106的资源状态,反馈申请成功提示信息或申请失败提示信息至硬件调度器102。硬件调度器102在接收到所述硬件资源管理组件103反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包。硬件调度器102将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件104。指令调度组件104在接收到各所述目标子任务对应的异构单元预准备指令和异构单元启动指令之后,根据各所述目标子任务对应的异构单元预准备指令进行数据搬运,根据各所述目标子任务对应的异构单元启动指令控制各所述目标子任务的可用异构单元启动。指令调度组件104在各所述目标子任务的可用异构单元启动之后,将指令完成提示信息反馈至硬件调度器102。硬件调度器102在接收到所述指令调度组件104反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件105。指令包分发组件105在接收到与各所述目标子任务对应的任务指令包之后,将与各所述目标子任务对应的任务指令包发送至各所述目标子任务的可用异构单元。各所述目标子任务的可用异构单元在接收到任务指令包之后,执行所述任务指令包,从而对各所述目标子任务进行处理,完成各所述目标子任务。
可选的,任务预取组件101是芯片中设置的用于监测任务队列,将所述任务队列中的待处理任务存储至所述硬件调度器102的本地存储空间的组件。任务队列是芯片中设置的用于存储待处理任务的队列。待处理任务是未处理的一个或多个计算任务。硬件调度器102的本地存储空间是用于存储硬件调度器102需要使用的数据的存储空间。任务预取组件101可以监测任务队列中是否存在待处理任务,在检测到任务队列中存在待处理任务之后,将所述任务队列中的待处理任务存储至所述硬件调度器102的本地存储空间,以使硬件调度器102可以从本地存储空间存储的待处理任务中获取未处理的各个计算任务,对未处理的各个计算任务进行调度。
可选的,任务预取组件101可以采用硬件队列同步单元做任务预取。在任务下发通路上,任务预取组件101通过监测任务队列的读写指针,监测是否有未处理的新计算任务,将未处理的新计算任务搬移至硬件调度器102的本地存储空间中,以减少任务调度系统获取业务软件下发的任务的延迟。在任务调度系统内也可以设置有多条硬件通路用于将本地存储空间中存储的信息预取至缓存空间,并做一致性维护,进一步减少任务获取延迟。任务调度系统中存在多个异构单元之间的任务下发和结果返回通路。通用处理器和异构单元可以将需要下发的任务以及要接收的返回结果存储在远端存储单元中。任务调度系统可以通过读写该存储单元中的内容获取任务并返回结果。但是该通路需要经过多级总线,读写延迟较高。为了减少任务命令获取和结果返回延迟,提升调度系统效率,采用硬件队列同步单元做任务预取。
可选的,各所述异构单元106是芯片中设置的用于执行计算指令的多个异构单元。各所述异构单元106可以包括预设数量的计算引擎、数据引擎、通用处理器以及图像视频处理单元。异构单元106可以为计算引擎、数据引擎、通用处理器或图像视频处理单元。相应的,异构单元106的类型为计算引擎、数据引擎、通用处理器或图像视频处理单元。异构单元106的标识信息是用于唯一标识异构单元106的信息。异构单元106的标识信息可以是异构单元106对应的数字编号。
可选的,可拆分的目标任务是能够拆分为多个可以单独处理的子任务的计算任务。可拆分的目标任务可以是芯片中的业务软件存储至任务队列的。芯片中的业务软件是芯片中设置的用于实现指定业务功能的软件。业务软件在运行过程中生成可拆分的目标任务,然后将可拆分的目标任务和目标任务的任务信息存储至任务队列,以使硬件调度器102在获取到可拆分的目标任务之后,将可拆分的目标任务拆分为多个可以单独处理的子任务,根据每个子任务的任务信息和各个异构单元的资源状态将每个子任务分别分配给一个可用的异构单元进行处理,从而完成可拆分的目标任务。
可选的,可拆分的目标任务包含多组可以单独执行的计算指令。每一组计算指令包含一个或多个计算指令。每一组计算指令可以单独由一个指定类型的异构单元执行。目标任务的任务信息包含各组计算指令的标识信息、优先级信息、异构单元类型以及数据存储地址。各组计算指令的标识信息是用于唯一标识各组计算指令的信息。各组计算指令的标识信息可以是各组计算指令对应的数字编号。各组计算指令的优先级信息可以是用于表征各组计算指令的重要程度的数值。各组计算指令的异构单元类型是用于执行各组计算指令的异构单元的类型。各组计算指令的异构单元类型可以为计算引擎、数据引擎、通用处理器或图像视频处理单元。各组计算指令的数据存储地址是在执行各组计算指令的过程中需要使用的数据的存储地址。
可选的,硬件调度器102根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务,包括:硬件调度器102根据所述目标任务的任务信息中的各组计算指令的标识信息,确定目标任务中的各组计算指令,将每一组计算指令确定为一个目标子任务,得到多个目标子任务,从而将目标任务拆分为多个目标子任务。每一个目标子任务即为一个可以单独处理的子任务。硬件调度器102将各组计算指令的标识信息、优先级信息、异构单元类型以及数据存储地址确定为各个目标子任务的任务信息。
可选的,硬件资源管理组件103是芯片中设置的用于对各所述异构单元106的资源状态进行管理,根据与各所述异构单元106对应的异构单元申请请求或异构单元归还请求对硬件资源管理组件103中存储的各所述异构单元106的资源状态进行更新的硬件组件。
可选的,硬件资源管理组件103中存储有各所述异构单元106的资源状态。异构单元106的资源状态是用于表征异构单元106是否在执行计算指令的信息。异构单元106的资源状态为空闲或工作。异构单元106的资源状态为空闲,表明异构单元106没有在执行计算指令。异构单元106的资源状态为工作,表明异构单元106正在执行计算指令。硬件调度器102与硬件资源管理组件103建立了通信连接,可以基于建立的通信连接进行信息交互。硬件调度器102可以从硬件资源管理组件103中获取各所述异构单元106的资源状态。
可选的,硬件调度器102从硬件资源管理组件103中获取各所述异构单元106的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元106的资源状态,确定各所述目标子任务的可用异构单元,包括:硬件调度器102根据各所述异构单元106的资源状态,确定各所述异构单元106中的各个空闲异构单元;硬件调度器102根据各所述目标子任务的任务信息,确定各所述目标子任务的异构单元类型;硬件调度器102根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
可选的,硬件调度器102根据各所述异构单元106的资源状态,确定各所述异构单元106中的各个空闲异构单元,包括:硬件调度器102将各所述异构单元106中的资源状态为空闲的异构单元确定为空闲异构单元,从而确定各所述异构单元106中的各个空闲异构单元。空闲异构单元是没有在执行计算指令的异构单元106。
可选的,硬件调度器102根据各所述目标子任务的任务信息,确定各所述目标子任务的异构单元类型,包括:硬件调度器102从各所述目标子任务的任务信息中,提取各所述目标子任务的异构单元类型。
可选的,硬件调度器102根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元,包括:硬件调度器102根据各所述目标子任务的优先级信息,对各所述目标子任务进行排序,然后依次根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
可选的,各组计算指令的优先级信息可以是用于表征各组计算指令的重要程度的数值。硬件调度器102按照优先级信息从高到低,对各所述目标子任务进行排序,然后从排在第一位的目标子任务开始,依次根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
可选的,针对每一个目标子任务执行下述操作:在剩余的各个空闲异构单元中,查询类型与目标子任务的异构单元类型相同的空闲异构单元;在类型与目标子任务的异构单元类型相同的空闲异构单元中随机获取一个空闲异构单元,作为目标子任务的可用异构单元。剩余的各个空闲异构单元是还没有确定为其他目标子任务的可用异构单元的所有空闲异构单元。目标子任务的可用异构单元是用于执行目标子任务中包含的计算指令的异构单元106。
可选的,与指定异构单元对应的异构单元申请请求是用于请求使用指定异构单元执行计算指令的请求。硬件调度器102中存储有异构单元申请请求模板。异构单元申请请求模板是用于生成与指定异构单元对应的异构单元申请请求的模板。异构单元申请请求模板是没有包含指定异构单元的标识信息的异构单元申请请求。将指定异构单元的标识信息添加至异构单元申请请求模板中的标识信息添加位置之后,可以得到与指定异构单元对应的异构单元申请请求。异构单元申请请求模板中的标识信息添加位置是异构单元申请请求模板中的用于添加指定异构单元的标识信息的位置。
可选的,硬件调度器102将与各所述目标子任务的可用异构单元的标识信息添加至异构单元申请请求模板中的标识信息添加位置之后,得到与各所述目标子任务的可用异构单元对应的异构单元申请请求,然后将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至硬件资源管理组件103。
可选的,硬件资源管理组件103在接收到与各所述目标子任务的可用异构单元对应的异构单元申请请求之后,根据各所述异构单元106的资源状态,反馈申请成功提示信息或申请失败提示信息至硬件调度器102。
可选的,根据各所述异构单元106的资源状态,反馈申请成功提示信息或申请失败提示信息至硬件调度器102,包括:判断硬件资源管理组件103中存储的各所述目标子任务的可用异构单元的资源状态是否是空闲;若各所述目标子任务的可用异构单元的资源状态都是空闲,表明各所述目标子任务的可用异构单元都可以用于执行新的计算指令,即硬件调度器102请求使用的异构单元可以用于执行新的计算指令,则反馈申请成功提示信息至硬件调度器102,并将硬件资源管理组件103中存储的各所述目标子任务的可用异构单元的资源状态更新为工作;若各所述目标子任务的可用异构单元中存在资源状态为工作的可用异构单元,表明各所述目标子任务的可用异构单元中存在不可以用于执行新的计算指令的异构单元,即硬件调度器102请求使用的异构单元无法用于执行新的计算指令,则反馈申请失败提示信息至硬件调度器102。申请成功提示信息是硬件资源管理组件103中设置的用于提示硬件调度器102请求使用的异构单元可以用于执行新的计算指令的信息。申请失败提示信息是硬件资源管理组件103中设置的用于提示硬件调度器102请求使用的异构单元无法用于执行新的计算指令的信息。
可选的,硬件调度器102在接收到所述硬件资源管理组件103反馈的申请成功提示信息之后,确定各所述目标子任务的可用异构单元都可以用于执行新的计算指令,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包。
可选的,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包,包括:针对每一个目标子任务执行下述操作:根据目标子任务的任务信息,确定所述目标子任务的数据存储地址;根据所述数据存储地址和所述目标子任务的可用异构单元的缓存区域的地址,生成与所述目标子任务对应的异构单元预准备指令;其中,所述异构单元预准备指令用于指示所述指令调度组件执行将所述目标子任务的原始数据从所述数据存储地址搬运至所述目标子任务的可用异构单元的缓存区域的操作;根据所述目标子任务的可用异构单元的标识信息,生成与所述目标子任务对应的异构单元启动指令;其中,所述异构单元启动指令用于指示所述指令调度组件执行控制所述目标子任务的可用异构单元启动的操作;根据所述目标子任务包含的计算指令,生成与所述目标子任务对应的任务指令包。
可选的,根据目标子任务的任务信息,确定所述目标子任务的数据存储地址,包括:从目标子任务的任务信息中,提取所述目标子任务的数据存储地址。
可选的,指令调度组件104是芯片中设置的用于根据硬件调度器102的指令,搬运异构单元106执行计算指令时需要使用的数据,控制异构单元106的启动和关闭的组件。指令调度组件104分别与硬件调度器102、各所述异构单元106建立了通信连接,可以基于建立的通信连接进行信息交互。
可选的,与目标子任务对应的异构单元预准备指令是用于指示指令调度组件104执行将目标子任务的原始数据从目标子任务的数据存储地址搬运至目标子任务的可用异构单元的缓存区域的操作的指令。目标子任务的原始数据是在执行目标子任务中的计算指令的过程中需要使用的数据。目标子任务的数据存储地址是在执行目标子任务中的计算指令的过程中需要使用的数据的存储地址。异构单元的缓存区域是用于缓存异构单元需要使用的数据的区域。硬件调度器102中存储有异构单元预准备指令模板。异构单元预准备指令模板是用于生成与目标子任务对应的异构单元预准备指令的模板。异构单元预准备指令模板是没有包含目标子任务的数据存储地址和目标子任务的可用异构单元的缓存区域的地址的异构单元预准备指令。将目标子任务的数据存储地址添加至异构单元预准备指令模板中的数据存储地址添加位置,将目标子任务的可用异构单元的缓存区域的地址添加至异构单元预准备指令模板中的区域地址添加位置之后,可以得到与目标子任务对应的异构单元预准备指令。数据存储地址添加位置是异构单元预准备指令模板中的用于添加目标子任务的数据存储地址的位置。区域地址添加位置是异构单元预准备指令模板中的用于添加目标子任务的可用异构单元的缓存区域的地址的位置。
可选的,根据所述数据存储地址和所述目标子任务的可用异构单元的缓存区域的地址,生成与所述目标子任务对应的异构单元预准备指令,包括:将目标子任务的数据存储地址添加至异构单元预准备指令模板中的数据存储地址添加位置,将目标子任务的可用异构单元的缓存区域的地址添加至异构单元预准备指令模板中的区域地址添加位置,得到与目标子任务对应的异构单元预准备指令。
可选的,与目标子任务对应的异构单元启动指令是用于指示指令调度组件104执行控制目标子任务的可用异构单元启动的操作的指令。硬件调度器102中存储有异构单元启动指令模板。异构单元启动指令模板是用于生成与目标子任务对应的异构单元启动指令的模板。异构单元启动指令模板是没有包含目标子任务的可用异构单元的标识信息的异构单元启动指令。将目标子任务的可用异构单元的标识信息添加至异构单元启动指令模板中的标识信息添加位置之后,可以得到与目标子任务对应的异构单元启动指令。标识信息添加位置是异构单元启动指令模板中的用于添加目标子任务的可用异构单元的标识信息的位置。
可选的,根据所述目标子任务的可用异构单元的标识信息,生成与所述目标子任务对应的异构单元启动指令,包括:将目标子任务的可用异构单元的标识信息添加至异构单元启动指令模板中的标识信息添加位置,得到与目标子任务对应的异构单元启动指令。
可选的,根据所述目标子任务包含的计算指令,生成与所述目标子任务对应的任务指令包,包括:通过打包模块,对目标子任务包含的计算指令进行打包,得到与所述目标子任务对应的任务指令包。与所述目标子任务对应的任务指令包是由目标子任务包含的所有计算指令构成的数据包。打包模块是硬件调度器102中设置的用于对数据进行打包的组件。硬件调度器102可以通过打包模块对目标子任务包含的所有计算指令进行打包,得到一个数据包。该数据包即为与所述目标子任务对应的任务指令包。
可选的,硬件调度器102将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件104。指令调度组件104在接收到各所述目标子任务对应的异构单元预准备指令和异构单元启动指令之后,根据各所述目标子任务对应的异构单元预准备指令进行数据搬运,根据各所述目标子任务对应的异构单元启动指令控制各所述目标子任务的可用异构单元启动。
可选的,在接收到各所述目标子任务对应的异构单元预准备指令和异构单元启动指令之后,指令调度组件104分别执行将各所述目标子任务的原始数据从各所述目标子任务的数据存储地址搬运至各所述目标子任务的可用异构单元的缓存区域的操作,然后分别执行控制各所述目标子任务的可用异构单元启动的操作。
可选的,将目标子任务的原始数据从目标子任务的数据存储地址搬运至目标子任务的可用异构单元的缓存区域,包括:从目标子任务的数据存储地址获取目标子任务的原始数据;将目标子任务的原始数据存储至目标子任务的可用异构单元的缓存区域。
可选的,控制目标子任务的可用异构单元启动,包括:发送启动指令至目标子任务的可用异构单元。启动指令是用于指示异构单元106启动的指令。若目标子任务的可用异构单元处于关闭状态,则目标子任务的可用异构单元在接收到启动指令之后启动,然后在启动完成之后,将启动提示信息反馈至指令调度组件104。若目标子任务的可用异构单元已处于启动状态,则目标子任务的可用异构单元在接收到启动指令之后,直接将启动提示信息反馈至指令调度组件104。启动提示信息是用于提示异构单元106已经启动的信息。
可选的,指令调度组件104在接收到各所述目标子任务的可用异构单元反馈的启动提示信息之后,确定各所述目标子任务的可用异构单元启动,将指令完成提示信息反馈至硬件调度器102。指令完成提示信息是用于提示指令调度组件104已完成硬件调度器102发送的异构单元预准备指令和异构单元启动指令的信息。
可选的,硬件调度器102在接收到所述指令调度组件104反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件105。
可选的,指令包分发组件105是芯片中设置的用于将硬件调度器102发送的任务指令包分发至对应的异构单元106的组件。指令包分发组件105分别与硬件调度器102、各所述异构单元106建立了通信连接,可以基于建立的通信连接进行信息交互。
可选的,硬件调度器102将与各所述目标子任务对应的任务指令包和各所述目标子任务的可用异构单元的标识信息发送至指令包分发组件105。针对每一个目标子任务,指令包分发组件105根据目标子任务的可用异构单元的标识信息,确定目标子任务的可用异构单元,然后将目标子任务对应的任务指令包发送至目标子任务的可用异构单元。
可选的,各所述目标子任务的可用异构单元在接收到任务指令包之后,执行所述任务指令包,从而对各所述目标子任务进行处理,完成各所述目标子任务。执行目标子任务对应的任务指令包,包括:提取目标子任务对应的任务指令包中的各个计算指令,分别执行各个计算指令;在各个计算指令都执行完成之后,确定目标子任务对应的任务指令包执行完成,完成目标子任务。
可选的,各所述目标子任务的可用异构单元还用于:在执行完成所述任务指令包之后,将任务完成提示信息发送至所述指令包分发组件105;所述指令包分发组件105还用于:在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将各所述目标子任务的可用异构单元发送的任务完成提示信息发送至所述硬件调度器102;所述硬件调度器102还用于:在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将与各所述目标子任务的可用异构单元对应的异构单元归还请求发送至所述硬件资源管理组件103。
可选的,所述硬件资源管理组件103还用于:在接收到与各所述目标子任务的可用异构单元对应的异构单元归还请求之后,更新与各所述目标子任务的可用异构单元的资源状态。
可选的,任务完成提示信息是用于提示可用异构单元执行完成目标子任务的信息。各所述目标子任务的可用异构单元在执行完成所述任务指令包之后,将任务完成提示信息发送至指令包分发组件105。指令包分发组件105在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将各所述目标子任务的可用异构单元发送的任务完成提示信息发送至硬件调度器102。硬件调度器102还用于在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,确定所有可用异构单元执行完成所对应的目标子任务,即所有目标子任务已经完成,目标任务已经完成,然后将与各所述目标子任务的可用异构单元对应的异构单元归还请求发送至所述硬件资源管理组件103。硬件资源管理组件103在接收到与各所述目标子任务的可用异构单元对应的异构单元归还请求之后,更新与各所述目标子任务的可用异构单元的资源状态。
可选的,与指定异构单元对应的异构单元归还请求是用于请求停止使用指定异构单元执行计算指令的请求。硬件调度器102中存储有异构单元归还请求模板。异构单元归还请求模板是用于生成与指定异构单元对应的异构单元归还请求的模板。异构单元归还请求模板是没有包含指定异构单元的标识信息的异构单元归还请求。将指定异构单元的标识信息添加至异构单元归还请求模板中的标识信息添加位置之后,可以得到与指定异构单元对应的异构单元归还请求。异构单元归还请求模板中的标识信息添加位置是异构单元归还请求模板中的用于添加指定异构单元的标识信息的位置。
可选的,硬件调度器102将与各所述目标子任务的可用异构单元的标识信息添加至异构单元归还请求模板中的标识信息添加位置之后,得到与各所述目标子任务的可用异构单元对应的异构单元归还请求,然后将与各所述目标子任务的可用异构单元对应的异构单元归还请求发送至硬件资源管理组件103。
可选的,硬件资源管理组件103在接收到与各所述目标子任务的可用异构单元对应的异构单元归还请求之后,确定各所述目标子任务的可用异构单元已经不再执行计算指令,可以用于执行新的计算指令,将硬件资源管理组件103中存储的各所述目标子任务的可用异构单元的资源状态更新为空闲。
可选的,硬件调度器102在接收到所述硬件资源管理组件103反馈的申请失败提示信息之后,重新执行从硬件资源管理组件103中获取各所述异构单元106的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元106的资源状态,确定各所述目标子任务的可用异构单元,将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至硬件资源管理组件103的操作,直至接收到所述硬件资源管理组件103反馈的申请成功提示信息。
本发明实施例的技术方案中,通过硬件调度器,在从待处理任务中获取到可拆分的目标任务之后,根据目标任务的任务信息,将目标任务拆分为多个目标子任务;然后通过硬件调度器从硬件资源管理组件中获取各异构单元的资源状态,根据各目标子任务的任务信息、以及各异构单元的资源状态,确定各目标子任务的可用异构单元,将与各目标子任务的可用异构单元对应的异构单元申请请求发送至硬件资源管理组件;在接收到硬件资源管理组件反馈的申请成功提示信息之后,根据各目标子任务的任务信息、各目标子任务的可用异构单元,生成与各目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;将与各目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件,以使指令调度组件根据各目标子任务对应的异构单元预准备指令进行数据搬运,根据各目标子任务对应的异构单元启动指令控制各目标子任务的可用异构单元启动;在接收到指令调度组件反馈的指令完成提示信息之后,将与各目标子任务对应的任务指令包发送至指令包分发组件,以使指令包分发组件将与各目标子任务对应的任务指令包发送至各目标子任务的可用异构单元,各目标子任务的可用异构单元执行任务指令包,从而对各目标子任务进行处理,完成各目标子任务,解决了相关技术中的任务调度方案的资源利用率和调度效率较低,严重影响芯片的计算能力的问题,取到了可以将芯片中产生的计算任务拆分为多个可以单独处理的子任务,自动根据任务信息和芯片中的各个异构单元的资源状态,合理地、准确地将每个子任务分别分配给一个可用的异构单元进行处理,提高芯片的任务调度过程的资源利用率和调度效率,提高芯片的计算能力的有益效果。
实施例二
图2为本发明实施例二提供的一种任务调度方法的流程图。本实施例可适用于对计算任务进行调度的情况。该方法可以应用于本发明上述实施例提供的任务调度系统中的硬件调度器中。如图2所示,本实施例的方法具体包括:
步骤201、在从待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务。
可选的,任务预取组件监测任务队列,将所述任务队列中的待处理任务存储至所述硬件调度器的本地存储空间。硬件调度器按照任务存储时间的先后顺序,依次从本地存储空间存储的待处理任务中的各个计算任务中获取一个计算任务进行调度。硬件调度器在从本地存储空间存储的待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务。
可选的,硬件调度器根据所述目标任务的任务信息中的各组计算指令的标识信息,确定目标任务中的各组计算指令,将每一组计算指令确定为一个目标子任务,得到多个目标子任务,从而将目标任务拆分为多个目标子任务。每一个目标子任务即为一个可以单独处理的子任务。硬件调度器将各组计算指令的标识信息、优先级信息、异构单元类型以及数据存储地址确定为各个目标子任务的任务信息。
步骤202、从硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元。
可选的,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元,包括:根据各所述异构单元的资源状态,确定各所述异构单元中的各个空闲异构单元;根据各所述目标子任务的任务信息,确定各所述目标子任务的异构单元类型;根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
可选的,根据各所述异构单元的资源状态,确定各所述异构单元中的各个空闲异构单元,包括:将各所述异构单元中的资源状态为空闲的异构单元确定为空闲异构单元,从而确定各所述异构单元中的各个空闲异构单元。
可选的,硬件调度器根据各所述目标子任务的任务信息,确定各所述目标子任务的异构单元类型,包括:从各所述目标子任务的任务信息中,提取各所述目标子任务的异构单元类型。
可选的,根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元,包括:根据各所述目标子任务的优先级信息,对各所述目标子任务进行排序,然后依次根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
可选的,按照优先级信息从高到低,对各所述目标子任务进行排序,然后从排在第一位的目标子任务开始,依次根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
可选的,针对每一个目标子任务执行下述操作:在剩余的各个空闲异构单元中,查询类型与目标子任务的异构单元类型相同的空闲异构单元;在类型与目标子任务的异构单元类型相同的空闲异构单元中随机获取一个空闲异构单元,作为目标子任务的可用异构单元。剩余的各个空闲异构单元是还没有确定为其他目标子任务的可用异构单元的所有空闲异构单元。目标子任务的可用异构单元是用于执行目标子任务中包含的计算指令的异构单元。
步骤203、将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件。
步骤204、在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包。
可选的,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包,包括:针对每一个目标子任务执行下述操作:根据目标子任务的任务信息,确定所述目标子任务的数据存储地址;根据所述数据存储地址和所述目标子任务的可用异构单元的缓存区域的地址,生成与所述目标子任务对应的异构单元预准备指令;其中,所述异构单元预准备指令用于指示所述指令调度组件执行将所述目标子任务的原始数据从所述数据存储地址搬运至所述目标子任务的可用异构单元的缓存区域的操作;根据所述目标子任务的可用异构单元的标识信息,生成与所述目标子任务对应的异构单元启动指令;其中,所述异构单元启动指令用于指示所述指令调度组件执行控制所述目标子任务的可用异构单元启动的操作;根据所述目标子任务包含的计算指令,生成与所述目标子任务对应的任务指令包。
步骤205、将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件。
步骤206、在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件。
可选的,在将与各所述目标子任务对应的任务指令包发送至指令包分发组件之后,还包括:在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将与各所述目标子任务的可用异构单元对应的异构单元归还请求发送至所述硬件资源管理组件。
本发明实施例的技术方案,通过在从待处理任务中获取到可拆分的目标任务之后,根据目标任务的任务信息,将目标任务拆分为多个目标子任务;然后从硬件资源管理组件中获取各异构单元的资源状态,根据各目标子任务的任务信息、以及各异构单元的资源状态,确定各目标子任务的可用异构单元;将与各目标子任务的可用异构单元对应的异构单元申请请求发送至硬件资源管理组件;在接收到硬件资源管理组件反馈的申请成功提示信息之后,根据各目标子任务的任务信息、各目标子任务的可用异构单元,生成与各目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;将与各目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件;在接收到指令调度组件反馈的指令完成提示信息之后,将与各目标子任务对应的任务指令包发送至指令包分发组件,解决了相关技术中的任务调度方案的资源利用率和调度效率较低,严重影响芯片的计算能力的问题,取到了可以将芯片中产生的计算任务拆分为多个可以单独处理的子任务,自动根据任务信息和芯片中的各个异构单元的资源状态,合理地、准确地将每个子任务分别分配给一个可用的异构单元进行处理,提高芯片的任务调度过程的资源利用率和调度效率,提高芯片的计算能力的有益效果。
实施例三
图3为本发明实施例三提供的一种任务调度装置的结构示意图。所述装置可以配置于本发明上述实施例提供的任务调度系统中的硬件调度器中。如图3所示,所述装置包括:任务拆分模块301、调度决策模块302、资源申请模块303、信息生成模块304、指令发送模块305以及指令包发送模块306。
其中,任务拆分模块301,用于在从待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;调度决策模块302,用于从硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元;资源申请模块303,用于将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件;信息生成模块304,用于在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;指令发送模块305,用于将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件;指令包发送模块306,用于在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件。
本发明实施例的技术方案,通过在从待处理任务中获取到可拆分的目标任务之后,根据目标任务的任务信息,将目标任务拆分为多个目标子任务;然后从硬件资源管理组件中获取各异构单元的资源状态,根据各目标子任务的任务信息、以及各异构单元的资源状态,确定各目标子任务的可用异构单元;将与各目标子任务的可用异构单元对应的异构单元申请请求发送至硬件资源管理组件;在接收到硬件资源管理组件反馈的申请成功提示信息之后,根据各目标子任务的任务信息、各目标子任务的可用异构单元,生成与各目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;将与各目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件;在接收到指令调度组件反馈的指令完成提示信息之后,将与各目标子任务对应的任务指令包发送至指令包分发组件,解决了相关技术中的任务调度方案的资源利用率和调度效率较低,严重影响芯片的计算能力的问题,取到了可以将芯片中产生的计算任务拆分为多个可以单独处理的子任务,自动根据任务信息和芯片中的各个异构单元的资源状态,合理地、准确地将每个子任务分别分配给一个可用的异构单元进行处理,提高芯片的任务调度过程的资源利用率和调度效率,提高芯片的计算能力的有益效果。
在本发明实施例的一个可选实施方式中,可选的,任务调度装置还包括:资源归还模块,用于在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将与各所述目标子任务的可用异构单元对应的异构单元归还请求发送至所述硬件资源管理组件。
在本发明实施例的一个可选实施方式中,可选的,调度决策模块302在执行根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元的操作时,具体用于:根据各所述异构单元的资源状态,确定各所述异构单元中的各个空闲异构单元;根据各所述目标子任务的任务信息,确定各所述目标子任务的异构单元类型;根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
在本发明实施例的一个可选实施方式中,可选的,信息生成模块304在执行根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元的操作时,具体用于:针对每一个目标子任务执行下述操作:根据目标子任务的任务信息,确定所述目标子任务的数据存储地址;根据所述数据存储地址和所述目标子任务的可用异构单元的缓存区域的地址,生成与所述目标子任务对应的异构单元预准备指令;其中,所述异构单元预准备指令用于指示所述指令调度组件执行将所述目标子任务的原始数据从所述数据存储地址搬运至所述目标子任务的可用异构单元的缓存区域的操作;根据所述目标子任务的可用异构单元的标识信息,生成与所述目标子任务对应的异构单元启动指令;其中,所述异构单元启动指令用于指示所述指令调度组件执行控制所述目标子任务的可用异构单元启动的操作;根据所述目标子任务包含的计算指令,生成与所述目标子任务对应的任务指令包。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
上述任务调度装置可执行本发明任意实施例所提供的任务调度方法,具备执行任务调度方法相应的功能模块和有益效果。
实施例四
图4示出了可以用来实现本发明实施例的任务调度方法的电子设备10的结构示意图。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18构建到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如任务调度方法。
在一些实施例中,任务调度方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序构建到RAM 13并由处理器11执行时,可以执行上文描述的任务调度方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行任务调度方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的任务调度方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种任务调度系统,其特征在于,包括:任务预取组件、硬件调度器、硬件资源管理组件、指令调度组件、指令包分发组件以及至少一个异构单元;
其中,所述任务预取组件,用于监测任务队列,将所述任务队列中的待处理任务存储至所述硬件调度器的本地存储空间;
所述硬件调度器,用于在从所述待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;从所述硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元;将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件;在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至所述指令调度组件;在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至所述指令包分发组件;
所述硬件资源管理组件,用于对各所述异构单元的资源状态进行管理;在接收到与各所述目标子任务的可用异构单元对应的异构单元申请请求之后,根据各所述异构单元的资源状态,反馈申请成功提示信息或申请失败提示信息至所述硬件调度器;
所述指令调度组件,用于在接收到各所述目标子任务对应的异构单元预准备指令和异构单元启动指令之后,根据各所述目标子任务对应的异构单元预准备指令进行数据搬运,根据各所述目标子任务对应的异构单元启动指令控制各所述目标子任务的可用异构单元启动;在各所述目标子任务的可用异构单元启动之后,将指令完成提示信息反馈至所述硬件调度器;
所述指令包分发组件,用于在接收到与各所述目标子任务对应的任务指令包之后,将与各所述目标子任务对应的任务指令包发送至各所述目标子任务的可用异构单元;
各所述目标子任务的可用异构单元,用于在接收到任务指令包之后,执行所述任务指令包。
2.根据权利要求1所述的任务调度系统,其特征在于,各所述目标子任务的可用异构单元还用于:在执行完成所述任务指令包之后,将任务完成提示信息发送至所述指令包分发组件;
所述指令包分发组件还用于:在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将各所述目标子任务的可用异构单元发送的任务完成提示信息发送至所述硬件调度器;
所述硬件调度器还用于:在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将与各所述目标子任务的可用异构单元对应的异构单元归还请求发送至所述硬件资源管理组件。
3.根据权利要求2所述的任务调度系统,其特征在于,所述硬件资源管理组件还用于:在接收到与各所述目标子任务的可用异构单元对应的异构单元归还请求之后,更新与各所述目标子任务的可用异构单元的资源状态。
4.一种任务调度方法,应用于如权利要求1所述的任务调度系统中的硬件调度器中,其特征在于,包括:
在从待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;
从硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元;
将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件;
在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;
将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件;
在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件。
5.根据权利要求4所述的任务调度方法,其特征在于,在将与各所述目标子任务对应的任务指令包发送至指令包分发组件之后,还包括:
在接收到各所述目标子任务的可用异构单元发送的任务完成提示信息之后,将与各所述目标子任务的可用异构单元对应的异构单元归还请求发送至所述硬件资源管理组件。
6.根据权利要求4所述的任务调度方法,其特征在于,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元,包括:
根据各所述异构单元的资源状态,确定各所述异构单元中的各个空闲异构单元;
根据各所述目标子任务的任务信息,确定各所述目标子任务的异构单元类型;
根据各所述目标子任务的优先级信息和异构单元类型,在各个空闲异构单元中确定各所述目标子任务的可用异构单元。
7.根据权利要求4所述的任务调度方法,其特征在于,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包,包括:
针对每一个目标子任务执行下述操作:
根据目标子任务的任务信息,确定所述目标子任务的数据存储地址;
根据所述数据存储地址和所述目标子任务的可用异构单元的缓存区域的地址,生成与所述目标子任务对应的异构单元预准备指令;其中,所述异构单元预准备指令用于指示所述指令调度组件执行将所述目标子任务的原始数据从所述数据存储地址搬运至所述目标子任务的可用异构单元的缓存区域的操作;
根据所述目标子任务的可用异构单元的标识信息,生成与所述目标子任务对应的异构单元启动指令;其中,所述异构单元启动指令用于指示所述指令调度组件执行控制所述目标子任务的可用异构单元启动的操作;
根据所述目标子任务包含的计算指令,生成与所述目标子任务对应的任务指令包。
8.一种任务调度装置,配置于如权利要求1所述的任务调度系统中的硬件调度器中,其特征在于,包括:
任务拆分模块,用于在从待处理任务中获取到可拆分的目标任务之后,根据所述目标任务的任务信息,将所述目标任务拆分为多个目标子任务;
调度决策模块,用于从硬件资源管理组件中获取各所述异构单元的资源状态,根据各所述目标子任务的任务信息、以及各所述异构单元的资源状态,确定各所述目标子任务的可用异构单元;
资源申请模块,用于将与各所述目标子任务的可用异构单元对应的异构单元申请请求发送至所述硬件资源管理组件;
信息生成模块,用于在接收到所述硬件资源管理组件反馈的申请成功提示信息之后,根据各所述目标子任务的任务信息、各所述目标子任务的可用异构单元,生成与各所述目标子任务对应的异构单元预准备指令、异构单元启动指令以及任务指令包;
指令发送模块,用于将与各所述目标子任务对应的异构单元预准备指令和异构单元启动指令发送至指令调度组件;
指令包发送模块,用于在接收到所述指令调度组件反馈的指令完成提示信息之后,将与各所述目标子任务对应的任务指令包发送至指令包分发组件。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;
以及与所述至少一个处理器网络通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求4-7中任一项所述的任务调度方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求4-7中任一项所述的任务调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310998074.8A CN116974767A (zh) | 2023-08-08 | 2023-08-08 | 一种任务调度系统、方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310998074.8A CN116974767A (zh) | 2023-08-08 | 2023-08-08 | 一种任务调度系统、方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116974767A true CN116974767A (zh) | 2023-10-31 |
Family
ID=88484882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310998074.8A Pending CN116974767A (zh) | 2023-08-08 | 2023-08-08 | 一种任务调度系统、方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116974767A (zh) |
-
2023
- 2023-08-08 CN CN202310998074.8A patent/CN116974767A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020211579A1 (zh) | 一种基于分布式批量处理系统的处理方法、装置及系统 | |
CN112486648A (zh) | 任务调度方法、装置、系统、电子设备和存储介质 | |
CN106843170B (zh) | 基于令牌的任务调度方法 | |
CN112559182B (zh) | 资源分配方法、装置、设备及存储介质 | |
CN113849312B (zh) | 数据处理任务的分配方法、装置、电子设备及存储介质 | |
CN109766172B (zh) | 一种异步任务调度方法以及装置 | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
CN101968750A (zh) | 计算机系统及其工作方法 | |
CN113641457A (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
CN115840631B (zh) | 基于raft的高可用分布式任务调度方法和设备 | |
CN107682391B (zh) | 电子装置、服务器分配控制方法和计算机可读存储介质 | |
EP4113299A2 (en) | Task processing method and device, and electronic device | |
US20180039520A1 (en) | Methods and Nodes for Scheduling Data Processing | |
CN115658311A (zh) | 一种资源的调度方法、装置、设备和介质 | |
CN115454972A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114816709A (zh) | 任务调度方法、装置、服务器及可读存储介质 | |
CN114579323A (zh) | 一种线程处理方法、装置、设备及介质 | |
CN113986534A (zh) | 任务调度方法、装置、计算机设备和计算机可读存储介质 | |
CN112860401A (zh) | 任务调度方法、装置、电子设备和存储介质 | |
CN116303132A (zh) | 一种数据缓存方法、装置、设备以及存储介质 | |
CN116974767A (zh) | 一种任务调度系统、方法、装置、设备及介质 | |
JP2008225641A (ja) | コンピュータシステム、割り込み制御方法及びプログラム | |
CN116048791B (zh) | 一种测试节点的调控方法、装置、电子设备以及存储介质 | |
CN117762600A (zh) | 执行任务的方法、相关装置及计算机程序产品 | |
CN117519940A (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 | ||
CB02 | Change of applicant information |
Country or region after: China Address after: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Applicant after: Shanghai Suiyuan Technology Co.,Ltd. Address before: Room a-522, 188 Yesheng Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Applicant before: SHANGHAI ENFLAME TECHNOLOGY Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information |