一种任务调度系统、方法、装置和电子设备与流程
- 国知局
- 2024-11-18 18:15:07
本发明涉及计算机,更具体地,涉及一种任务调度系统、方法、装置和电子设备。
背景技术:
1、计算机处理器,例如gpu(graphics processing unit,图形处理器)、gpgpu(general purpose graphics processing unit,通用图形处理器)等,包含了大量的计算核心,一个较大的任务(task)会被分解成多个子任务(sub-task),并分配给不同的计算核心处理,多个较小的任务也可以一起提交的计算机处理器,由不通过的计算核心并行处理。因此,如何实现计算机处理器的高效任务调度是充分发挥计算机处理器算力的关键。
技术实现思路
1、有鉴于此,本发明实施例提供一种任务调度系统、方法、装置和电子设备,以通过第一引擎和第二引擎基于初始调度命令和任务节点之间的依赖关系提高单个第一缓存单元的并行度,且使得在任务命令可被执行时被调度执行避免了不同任务命令的相互阻塞,进而提高了任务调度效率。
2、第一方面,本发明实施例提供一种任务调度系统,所述任务调度系统包括至少一个任务调度模组,所述任务调度模组包括:
3、第一缓存单元,用于缓存初始调度命令,所述初始调度命令用于触发至少一个任务;
4、第一引擎,与所述第一缓存区通信连接,用于存储所述初始调度命令对应的至少一个任务节点的信息,所述任务节点的信息包括所述任务节点的依赖关系;
5、第二引擎,与所述第一引擎通信连接,用于缓存从所述第一引擎接收到的可执行任务节点信息,并将所述可执行任务节点发送至执行引擎进行处理。
6、可选的,所述第一缓存单元包括:
7、访存模块,与预定存储单元通信连接,用于根据配置信息向所述预定存储单元发送任务调度请求,所述预定存储单元用于存储待执行任务对应的任务节点信息;
8、命令缓存模块,与预定存储单元通信连接,用于缓存所述预定存储单元反馈的至少一个初始调度命令;
9、命令解码器,与所述命令缓存模块和所述第一引擎通信连接,用于从所述命令缓存模块中读取所述初始调度命令并发送至所述第一引擎。
10、可选的,所述第一缓存单元为线性环形缓存单元。
11、可选的,所述第一引擎包括节点缓存模块,所述节点缓存模块用于缓存所述初始调度命令或任务节点信息。
12、可选的,所述节点缓存模块包括多个缓存分区,所述缓存分区用于缓存对应的任务节点树中的至少一个任务节点信息,所述任务节点树包括具有依赖关系的多个任务节点。
13、可选的,所述第一引擎还包括:
14、信息接收模块,与所述第一缓存单元、所述第二引擎和预定存储单元通信连接,用于接收所述第一缓存单元发送的所述初始调度命令、所述第二引擎反馈的已执行的任务节点信息,并从所述预定存储单元读取未执行的任务节点信息;
15、任务解析模块,与所述节点缓存模块和所述第二引擎通信连接,用于从所述节点缓存模块获取未执行的任务节点信息,并在所述任务节点信息包括当前可执行的任务执行命令时将所述任务节点信息发送至所述第二引擎。
16、可选的,所述任务解析模块还用于向所述预定存储单元发送任务读取请求,以使得所述预定存储单元向所述信息接收模块反馈对应的所述未执行的任务节点信息。
17、可选的,所述缓存分区中的任务节点信息根据所述第二引擎反馈的已执行任务节点信息和所述任务节点树更新。
18、可选的,所述节点缓存模块包括:
19、第一存储区,用于存储任务节点的控制信息;
20、第二存储区,用于存储任务节点的信息。
21、可选的,所述第二引擎包括:
22、第一任务缓存模块,与所述第一引擎和执行引擎通信连接,用于接收第一引擎发送的任务节点对应的任务执行命令;
23、第二任务缓存模块,与所述第一引擎和执行引擎通信连接,用于缓存并更新接收到的任务节点信息。
24、可选的,不同的所述任务调度模组之间采用栅栏同步机制。
25、第二方面,本发明实施例提供一种任务调度方法,所述方法包括:
26、从第一缓存单元中读取至少一个初始调度命令,所述初始调度命令用于触发至少一个任务;
27、根据所述初始调度命令遍历对应的任务节点树,在对应的缓存分区缓存所述任务节点树中的至少一个任务节点信息,所述任务节点树包括具有依赖关系的多个任务节点;
28、对所述任务节点信息进行解析,获取可执行任务节点;
29、将所述可执行任务节点派发至执行引擎进行执行。
30、可选的,所述缓存分区缓存的任务节点信息包括根节点信息、叶子节点信息、和/或主干节点信息,所述根节点信息为所述初始调度命令对应的节点信息或已执行任务节点信息。
31、可选的,所述根据所述初始调度命令遍历对应的任务节点树,在对应的缓存分区缓存所述任务节点树中的至少一个任务节点信息包括:
32、响应于所述初始调度命令或从所述任务节点树遍历到的任务节点申请到对应的缓存分区,将所述初始调度命令或遍历到的所述任务节点作为根节点缓存至所述对应的缓存分区。
33、可选的,所述根据所述初始调度命令遍历对应的任务节点树,在对应的缓存分区缓存所述任务节点树中的至少一个任务节点信息包括:
34、响应于所述缓存分区中的任务节点信息表征任务已执行,根据所述已执行的任务节点的依赖关系遍历对应的所述任务节点树,从获取任务节点树中获取对应的任务节点信息并更新所述缓存分区。
35、可选的,所述对所述任务节点信息进行解析,获取可执行任务节点包括:
36、将申请到所述缓存分区的根节点确定为所述可执行任务节点;和/或
37、将携带有任务命令且依赖值为0的叶子节点确定为所述可执行任务节点,所述依赖值用于表征对应的任务节点所依赖的未执行任务节点数量;和/或
38、将分支数小于等于缓存分区中的空闲参数的主干节点确定为所述可执行节点,所述空闲参数根据所述缓存分区中的空闲位置确定。
39、可选的,所述对所述任务节点信息进行解析,获取可执行任务节点包括:
40、响应于所述缓存分区中包括多个主干节点,且所述主干节点的分支数大于所述空闲参数,创建至少一个所述主干节点对应的空任务节点,所述空任务节点指向对应的所述主干节点;
41、将所述空任务节点确定为所述可执行任务节点。
42、第三方面,本发明实施例提供一种任务调度装置,所述装置包括:
43、第一读取单元,被配置为从第一缓存单元中读取至少一个初始调度命令,所述初始调度命令用于触发至少一个任务;
44、遍历单元,被配置为根据所述初始调度命令遍历对应的任务节点树,在对应的缓存分区缓存所述任务节点树中的至少一个任务节点信息,所述任务节点树包括具有依赖关系的多个任务节点;
45、解析单元,被配置为对所述任务节点信息进行解析,获取可执行任务节点;
46、派发单元,被配置为将所述可执行任务节点派发至执行引擎进行执行。
47、第四方面,本发明实施例提供一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器采用如上所述的任务调度系统执行任务调度。
48、第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
49、第六方面,本发明实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上所述的方法。
50、本发明实施例的任务调度系统包括至少一个任务调度模组,任务调度模组包括用于缓存初始调度命令的第一缓存单元,用于存储初始调度命令对应的至少一个任务节点的信息的第一引擎和用于缓存从第一引擎接收到的可执行任务节点信息并将可执行任务节点发送至执行引擎进行处理的第二引擎。其中,初始调度命令用于触发至少一个任务,任务节点的信息包括所述任务节点的依赖关系。由此,本发明实施例的任务调度系统可以通过第一引擎和第二引擎基于初始调度命令和任务节点之间的依赖关系提高了单个第一缓存单元的并行度,且使得在任务命令可被执行时被调度执行避免了不同任务命令的相互阻塞,进而提高了任务调度效率。
本文地址:https://www.jishuxx.com/zhuanli/20241118/327798.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。