技术新讯 > 计算推算,计数设备的制造及其应用技术 > 任务调度方法、装置及系统与流程  >  正文

任务调度方法、装置及系统与流程

  • 国知局
  • 2024-07-31 22:36:53

本技术涉及计算机,尤其涉及一种任务调度方法、装置及系统。

背景技术:

1、随着新业务的不断涌现,设备中集成的功能模块数量越来越多。多个功能模块之间可以进行协同计算,以提高业务的完成效率。在这种计算场景中,需要在某个任务处理完成后,通知依赖该某个任务的任务所属的功能模块开始处理相应的任务,该过程称为多个功能模块之间的任务(task)调度。

2、相关技术中,通过软件调度方式对多个功能模块之间的任务进行调度。软件调度方式指的各个功能模块之间避免用户态的进程之间的通信,直接在各个功能模块的驱动层进行接口互调。

3、但是在驱动层进行接口互调存在调度延迟,无法保证良好的调度性能。

技术实现思路

1、本技术提供一种任务调度方法、装置及系统,解决了相关技术中无法保证良好的调度性能的问题,能够减小任务调度耗时,在提高了调度性能的同时提高了业务处理性能。

2、第一方面,本技术提供一种任务调度方法,应用于调度器(也可称为硬件调度加速器),所述方法包括:确定依赖信息,所述依赖信息用于指示多个任务之间的依赖关系以及所述多个任务分别所属的功能模块;接收至少一个第一信号,所述第一信号用于指示所述多个任务中对应的第一任务被所属的所述功能模块处理完成;基于对所述依赖信息的解析结果,发送至少一个第二信号,所述第二信号用于指示所述多个任务中对应的第二任务被所属的所述功能模块开始处理,所述依赖信息中所述第二任务依赖所述至少一个第一信号分别对应的所述第一任务。

3、多个任务属于同一业务且任意两个存在依赖关系的任务所属的功能模块不同。任一任务所依赖的任务均被所属的功能模块处理完成后,该任一任务可以开始被所属的功能模块处理。

4、其有益效果是调度器在收到任一任务所依赖的任务的完成信号时能够基于依赖信息快速通知该任一任务所属的功能模块进行任务处理,通过硬件信号实现了各个功能模块之间的快速任务调度,相较于软件调度方式减小了调度耗时,在提高了调度性能的同时提高了业务处理性能,从而有效适用于数据切片场景(例如时延敏感的业务场景)的任务调度。

5、相关技术中,由中央处理器(central processing unit,cpu)进行任务调度。但是当任务的粒度较小,调度过程频率较高时,对于cpu的打断频率也较高,导致调度的性能较差且功耗较高。而本技术实施例中通过单独的调度器进行任务调度,不会影响cpu的处理过程,从而提高了调度性能减小了调度功耗。

6、相关技术还提供了一种硬件调度方式。硬件调度方式是将任意两个协同计算的功能模块通过硬线连接,之后通过硬件信号进行任务调度。但是该方式是私有的硬件方案,需要根据应用场景进行连接方案的定制,导致应用广泛性较差。且软硬件之间强耦合,两个功能模块之间的调度所需的信令格式以及交互信息需要提前确定,若后期需要修改,则功能模块的芯片设计和软件驱动均需要修改,导致修改代价较大且灵活性较差。

7、而本技术实施例中,调度器和多个功能模块建立有硬件连接,属于公有的硬件方案,无需根据应用场景进行连接方案的定制,应用广泛性较好。并且无需软件参与调度,不需要进行软硬件强耦合,修改代价较小且灵活性较高。

8、相关技术还提供了一种gpu和npu内部的硬件调度器,分别用于对gpu内部和npu内部的任务进行调度。但是这种硬件调度器只适用于功能模块内部的任务调度,不能用于不同功能模块之间的任务调度。而本技术中的调度器用于进行不同功能模块之间的任务调度。

9、在一种可能的实现方式中,所述确定依赖信息,包括:获取所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块;根据所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,得到所述依赖信息,所述依赖信息包括:所述多个任务分别对应的信号之间的依赖关系,所述任务对应的信号包括:所述任务的触发信号和/或所述任务的完成信号;其中,所述第一信号为对应的所述第一任务的完成信号,所述第二信号为对应的所述第二任务的触发信号。

10、可选地,任务对应的信号可以为事件(event)信号,触发信号为触发event信号,完成信号为完成event信号。依赖信息可以包括event-规则(rule),一条rule表示至少一个触发event信号和至少一个完成event信号之间的依赖关系。当调度器接收到一条rule中被依赖的所有触发event信号后,则会根据这条rule向对应的功能模块发送对应的完成event信号。

11、在一种可能的实现方式中,所述获取所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,包括:通过硬件抽象层hal获取所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块;其中,所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块是通过所述功能模块的应用程序接口api或者所述调度器的api生成的。

12、在一种可能的实现方式中,所述根据所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,得到所述依赖信息,包括:通过硬件抽象层hal根据所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,得到所述依赖信息;通过hal向驱动层发送第一控制指令;通过所述驱动层基于所述第一控制指令,将所述依赖信息配置到所述调度器的硬件中。

13、在一种可能的实现方式中,所述方法还包括:向所述任务所属的功能模块发送所述任务的信号标识;其中,所述第一信号的标识为对应的所述第一任务的所述信号标识,所述第二信号的标识为对应的所述第二任务的所述信号标识。

14、需要说明的是,多个任务中可能存在相同类型的多个任务以及不同类型的多个任务。不同类型的任务的信号标识不同,相同类型的多个任务在不同时序被处理,因此相同类型的多个任务的信号标识可以相同或者不同。例如在同一业务中,若需要循环处理多次同一类型任务,该同一类型任务的信号标识可以保持不变,也可以在每次处理该任务时分配不同的信号标识,本技术实施例对此不做限定。

15、在一种可能的实现方式中,所述向所述任务所属的功能模块发送所述任务的信号标识,包括:通过硬件抽象层hal,向所述任务所属的功能模块的hal发送所述任务的信号标识;其中,所述功能模块用于通过自身的hal生成自身的所述任务,通过自身的所述hal确定自身的所述任务与接收到的所述信号标识的对应关系,通过自身的所述hal向自身的驱动层发送第二控制指令,通过自身的所述驱动层基于所述第二控制指令将自身的所述任务以及所述对应关系配置到所述功能模块的硬件中。

16、第二方面,本技术提供一种任务调度方法,应用于第一功能模块,所述方法包括:获取多个任务中自身的所述任务的信号标识;当自身的所述任务中的第一任务处理完成时,基于所述第一任务的信号标识向调度器发送第一信号;其中,所述第一信号用于使得所述调度器基于对依赖信息的解析结果,发送至少一个第二信号,所述第二信号用于指示所述多个任务中对应的第二任务被所属的功能模块开始处理,所述依赖信息用于指示所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,所述依赖信息中所述第二任务依赖所述至少一个第一信号分别对应的所述第一任务。

17、在一种可能的实现方式中,所述获取多个任务中自身的所述任务的信号标识,包括:通过硬件抽象层hal接收自身的所述任务的信号标识;通过hal生成自身的所述任务;通过所述hal确定自身的所述任务与接收到的所述信号标识的对应关系;通过所述hal向驱动层发送第二控制指令;通过所述驱动层基于所述第二控制指令,将自身的所述任务以及所述对应关系配置到硬件中。

18、第三方面,本技术提供一种任务调度方法,应用于第一功能模块,所述方法包括:获取多个任务中自身的所述任务的信号标识;接收调度器发送的第一信号;基于自身的所述任务的信号标识以及所述第一信号,开始处理自身的所述任务中的第一任务;其中,所述第一信号是所述调度器在接收到至少一个第二信号时,基于对依赖信息的解析结果发送的,所述第二信号用于指示所述多个任务中对应的第二任务被所属的功能模块处理完成,所述依赖信息用于指示所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,所述依赖信息中所述第一任务依赖所述至少一个第二信号分别对应的所述第二任务。

19、第四方面,本技术提供一种任务调度装置,应用于调度器,所述装置包括:处理模块,用于确定依赖信息,所述依赖信息用于指示多个任务之间的依赖关系以及所述多个任务分别所属的功能模块;收发模块,用于接收至少一个第一信号,所述第一信号用于指示所述多个任务中对应的第一任务被所属的所述功能模块处理完成;所述收发模块,还用于基于对所述依赖信息的解析结果,发送至少一个第二信号,所述第二信号用于指示所述多个任务中对应的第二任务被所属的所述功能模块开始处理,所述依赖信息中所述第二任务依赖所述至少一个第一信号分别对应的所述第一任务。

20、在一种可能的实现方式中,所述处理模块,具体用于:获取所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块;根据所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,得到所述依赖信息,所述依赖信息包括:所述多个任务分别对应的信号之间的依赖关系,所述任务对应的信号包括:所述任务的触发信号和/或所述任务的完成信号;其中,所述第一信号为对应的所述第一任务的完成信号,所述第二信号为对应的所述第二任务的触发信号。

21、在一种可能的实现方式中,所述处理模块,具体用于:通过硬件抽象层hal获取所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块;其中,所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块是通过所述功能模块的应用程序接口api或者所述调度器的api生成的。

22、在一种可能的实现方式中,所述处理模块,具体用于:通过硬件抽象层hal根据所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,得到所述依赖信息;通过hal向驱动层发送第一控制指令;通过所述驱动层基于所述第一控制指令,将所述依赖信息配置到所述调度器的硬件中。

23、在一种可能的实现方式中,所述收发模块,还用于向所述任务所属的功能模块发送所述任务的信号标识;其中,所述第一信号的标识为对应的所述第一任务的所述信号标识,所述第二信号的标识为对应的所述第二任务的所述信号标识。

24、在一种可能的实现方式中,所述收发模块,具体用于:通过硬件抽象层hal,向所述任务所属的功能模块的hal发送所述任务的信号标识;其中,所述功能模块用于通过自身的hal生成自身的所述任务,通过自身的所述hal确定自身的所述任务与接收到的所述信号标识的对应关系,通过自身的所述hal向自身的驱动层发送第二控制指令,通过自身的所述驱动层基于所述第二控制指令将自身的所述任务以及所述对应关系配置到所述功能模块的硬件中。

25、第五方面,本技术提供一种任务调度装置,应用于第一功能模块,所述装置包括:处理模块,用于获取多个任务中自身的所述任务的信号标识;收发模块,用于当自身的所述任务中的第一任务处理完成时,基于所述第一任务的信号标识向调度器发送第一信号;其中,所述第一信号用于使得所述调度器基于对依赖信息的解析结果,发送至少一个第二信号,所述第二信号用于指示所述多个任务中对应的第二任务被所属的功能模块开始处理,所述依赖信息用于指示所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,所述依赖信息中所述第二任务依赖所述至少一个第一信号分别对应的所述第一任务。

26、在一种可能的实现方式中,所述处理模块,具体用于:通过硬件抽象层hal接收自身的所述任务的信号标识;通过hal生成自身的所述任务;通过所述hal确定自身的所述任务与接收到的所述信号标识的对应关系;通过所述hal向驱动层发送第二控制指令;通过所述驱动层基于所述第二控制指令,将自身的所述任务以及所述对应关系配置到硬件中。

27、第六方面,本技术提供一种任务调度装置,其特征在于,应用于第一功能模块,所述装置包括:处理模块,用于获取多个任务中自身的所述任务的信号标识;收发模块,用于接收调度器发送的第一信号;所述处理模块,还用于基于自身的所述任务的信号标识以及所述第一信号,开始处理自身的所述任务中的第一任务;其中,所述第一信号是所述调度器在接收到至少一个第二信号时,基于对依赖信息的解析结果发送的,所述第二信号用于指示所述多个任务中对应的第二任务被所属的功能模块处理完成,所述依赖信息用于指示所述多个任务之间的依赖关系以及所述多个任务分别所属的功能模块,所述依赖信息中所述第一任务依赖所述至少一个第二信号分别对应的所述第二任务。

28、第七方面,本技术提供一种任务调度装置,所述装置包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序或指令;当所述一个或多个计算机程序或指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一项所述的方法。

29、第八方面,本技术提供一种任务调度装置,所述装置包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序或指令;当所述一个或多个计算机程序或指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面中任一项所述的方法。

30、第九方面,本技术提供一种任务调度装置,所述装置包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序或指令;当所述一个或多个计算机程序或指令被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第三方面中任一项所述的方法。

31、第十方面,本技术提供一种任务调度装置,包括,处理器,用于执行如第一方面中任一项所述的方法。

32、第十一方面,本技术提供一种任务调度装置,包括,处理器,用于执行如第二方面中任一项所述的方法。

33、第十二方面,本技术提供一种任务调度装置,包括,处理器,用于执行如第三方面中任一项所述的方法。

34、第十三方面,本技术提供一种计算机可读存储介质,包括计算机程序或指令,所述计算机程序或指令在计算机上被执行时,使得所述计算机执行第一方面至第三方面中任一项所述的方法。

35、第十四方面,本技术提供一种芯片,包括:输入接口、输出接口、至少一个处理器。可选地,该芯片还包括存储器。该至少一个处理器用于执行该存储器中的代码,当该至少一个处理器执行该代码时,该芯片实现上述第一方面至第三方面中任一项所述的方法。

36、可选地,上述芯片还可以为集成电路。

37、第十五方面,本技术提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现第一方面至第三方面中任一项所述的方法。

38、第十六方面,本技术提供一种任务调度系统,所述系统包括:调度器和多个功能模块,所述多个功能模块与所述调度器建立有硬件连接;所述调度器包括上述第四、七和十方面中任一项所述的装置,所述功能模块包括上述第五、八和十一方面中任一项所述的装置或者上述第六、九和十二方面中任一项所述的装置。

本文地址:https://www.jishuxx.com/zhuanli/20240731/193850.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。