本发明涉及人工智能领域智能计算,特别涉及一种多模态的计算任务动态调度方法、装置、设备及介质。
背景技术:
1、面向高性能人工智能硬件加速器,开展多任务调度策略的研究,挖掘智能计算任务自身特征并设计实现更加优化合理的任务放置与调度方法,一直是ai(artificialintelligence,人工智能)加速器硬件设计领域的研究重点之一。通用的任务调度策略往往采用简单固定的划分模式,即对不同模态的任务进行固定的资源划分,任务之间互不干扰,而这类方法往往会导致资源利用不够充分。任务调度策略往往具有自身的独特性,在特定的应用领域下,通用的调度策略并不能挖掘智能计算任务的特征,无法实现系统资源利用率和任务性能的最大化。
2、由上可见,如何提高计算资源的利用率,高效地完成不同模态的计算任务,从而实现任务性能的最大化以及计算负载均衡,提高计算任务的执行效率是本领域有待解决的问题。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种多模态的计算任务动态调度方法、装置、设备及介质,能够提高计算资源的利用率,高效地完成不同模态的计算任务,从而实现任务性能的最大化以及计算负载均衡,提高计算任务的执行效率。其具体方案如下:
2、第一方面,本技术公开了一种多模态的计算任务动态调度方法,包括:
3、根据待调度的多个计算任务对应的计算模态、并行粒度以及执行时间确定所需的计算内核数量以及在每个计算内核上执行的时间片数量;
4、基于所述计算内核数量和所述时间片数量构建资源申请量;
5、利用簇内调度器并基于预设规划图构建算法和所述资源申请量构建任务调度规划图;
6、采用调度规划算法对所述任务调度规划图进行动态计算,以得到对多模态的各所述计算任务进行动态调度的动态调度顺序。
7、可选的,所述根据待调度的多个计算任务对应的计算模态、并行粒度以及执行时间确定所需的计算内核数量以及在每个计算内核上执行的时间片数量,包括:
8、采用时间片申请策略并根据待调度的多个计算任务对应的所述计算模态、所述并行粒度以及所述执行时间确定所需的所述计算内核数量以及在每个计算内核上执行的所述时间片数量。
9、可选的,确定在每个计算内核上执行的所述时间片数量,包括:
10、利用预设的时间片数据计算公式计算在每个计算内核上执行的所述时间片数量;所述时间片数据计算公式为:
11、
12、其中,为在第i个计算内核上执行的所述时间片数量,为计算任务在第i个计算内核上计算的结束时间,为计算任务在第i个计算内核上计算的开始时间,ts为一个时间片的时长,为向上取整。
13、可选的,所述资源申请量为:
14、
15、其中,rj为第j个计算任务的资源申请量,nc,j为第j个计算任务申请计算内核的数量,为第j个计算任务申请第1个计算内核上时间片数量,为第j个计算任务申请第2个计算内核上时间片数量,为第j个计算任务申请第1个计算内核上执行的起始时间相对于任务执行起始时间向后偏移了时间片的数量,为第j个计算任务申请第2个计算内核上执行的起始时间相对于任务执行起始时间向后偏移了时间片的数量。
16、可选的,所述利用簇内调度器并基于预设规划图构建算法和所述资源申请量构建任务调度规划图,包括:
17、对贪婪算法进行改进,以得到改进后的所述贪婪算法;
18、基于改进后的所述贪婪算法和pierre dellacherie算法,利用所述簇内调度器并基于预设规划图构建算法和所述资源申请量构建所述任务调度规划图。
19、可选的,所述采用调度规划算法对所述任务调度规划图进行动态计算,以得到对多模态的各所述计算任务进行动态调度的动态调度顺序,包括:
20、采用调度规划算法对任务调度规划图进行动态计算,并判断所有的计算任务是否已经完成全部调度;
21、若所有的所述计算任务已经完成全部调度,则结束动态计算的流程,得到对多模态的各所述计算任务进行动态调度的动态调度顺序。
22、可选的,所述判断所有的计算任务是否已经完成全部调度之后,还包括:
23、若所有的所述计算任务未完成全部调度,则获取下一个计算任务的下一个资源申请量,并判断当前计算任务与所述下一个计算任务之间是否存在关联性;
24、若当前计算任务与所述下一个计算任务之间存在关联性,则对当前调度顺序进行更新,并跳转至所述判断所有的计算任务是否已经完成全部调度的步骤,若所有的所述计算任务已经完成全部调度,则基于更新后的所述当前调度顺序生成所述动态调度顺序。
25、第二方面,本技术公开了一种多模态的计算任务动态调度装置,包括:
26、数量确定模块,用于根据待调度的多个计算任务对应的计算模态、并行粒度以及执行时间确定所需的计算内核数量以及在每个计算内核上执行的时间片数量;
27、资源申请量构建模块,用于基于所述计算内核数量和所述时间片数量构建资源申请量;
28、规划图构建模块,用于利用簇内调度器并基于预设规划图构建算法和所述资源申请量构建任务调度规划图;
29、动态调度顺序确定模块,用于采用调度规划算法对所述任务调度规划图进行动态计算,以得到对多模态的各所述计算任务进行动态调度的动态调度顺序。
30、第三方面,本技术公开了一种电子设备,包括:
31、存储器,用于保存计算机程序;
32、处理器,用于执行所述计算机程序,以实现前述的多模态的计算任务动态调度方法。
33、第四方面,本技术公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的多模态的计算任务动态调度方法的步骤。
34、可见,本技术提供了一种多模态的计算任务动态调度方法,包括根据待调度的多个计算任务对应的计算模态、并行粒度以及执行时间确定所需的计算内核数量以及在每个计算内核上执行的时间片数量;基于所述计算内核数量和所述时间片数量构建资源申请量;利用簇内调度器并基于预设规划图构建算法和所述资源申请量构建任务调度规划图;采用调度规划算法对所述任务调度规划图进行动态计算,以得到对多模态的各所述计算任务进行动态调度的动态调度顺序。本技术根据多个计算任务的计算模态、并行粒度以及执行时间确定计算内核数量以及在每个计算内核上执行的时间片数量,即采用计算任务时间片申请策略,使得计算任务在等待数据准备就绪时,无需长时间占用计算资源,能够更好地提高计算硬件的利用率,通过构建的资源申请量和预设规划图构建算法构建任务调度规划图,采用调度规划算法对任务调度规划图进行动态计算,所以能够支持多模态计算任务在多个计算内核上的并行调度,可充分适应计算应用中潜在的并行计算特征,提高计算任务的执行效率,并且构建调度规划图,能够充分开发计算资源的可用性,最大限度地挖掘计算资源的利用率,有效实现计算负载均衡,最终得到对多模态的各计算任务进行动态调度的动态调度顺序,确保了计算任务之间的有序执行,并且可以弹性调整计算任务之间的调度顺序,提高计算任务的执行效率。
1.一种多模态的计算任务动态调度方法,其特征在于,包括:
2.根据权利要求1所述的多模态的计算任务动态调度方法,其特征在于,所述根据待调度的多个计算任务对应的计算模态、并行粒度以及执行时间确定所需的计算内核数量以及在每个计算内核上执行的时间片数量,包括:
3.根据权利要求2所述的多模态的计算任务动态调度方法,其特征在于,确定在每个计算内核上执行的所述时间片数量,包括:
4.根据权利要求1所述的多模态的计算任务动态调度方法,其特征在于,所述资源申请量为:
5.根据权利要求1所述的多模态的计算任务动态调度方法,其特征在于,所述利用簇内调度器并基于预设规划图构建算法和所述资源申请量构建任务调度规划图,包括:
6.根据权利要求1至5任一项所述的多模态的计算任务动态调度方法,其特征在于,所述采用调度规划算法对所述任务调度规划图进行动态计算,以得到对多模态的各所述计算任务进行动态调度的动态调度顺序,包括:
7.根据权利要求6所述的多模态的计算任务动态调度方法,其特征在于,所述判断所有的计算任务是否已经完成全部调度之后,还包括:
8.一种多模态的计算任务动态调度装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的多模态的计算任务动态调度方法。