面向多芯粒加速计算的调度方法及装置

摘要: 本技术涉及人工智能芯片,特别是涉及一种面向多芯粒加速计算的调度方法及装置。背景技术:1、随着深度神经网络(dnn)模型和芯粒(chiplet)技术的发展,实现了...
面向多芯粒加速计算的调度方法及装置

本技术涉及人工智能芯片,特别是涉及一种面向多芯粒加速计算的调度方法及装置。

背景技术:

1、随着深度神经网络(dnn)模型和芯粒(chiplet)技术的发展,实现了将计算、存储、输入功能和输出功能拆分为多个可组合小芯片,并借助先进封装技术实现系统级集成。

2、但是,目前多芯粒深度神经网络加速器在进行流水线调度时存在资源浪费和时间浪费的情况,进而,导致流水线的执行成本较大。

技术实现思路

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、第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

38、对深度神经网络有向无环图中的流水线进行分割,得到至少一个候选分割方案;其中,所述候选分割方案中包含有所述流水线经过分割后的至少一个子流水线,以及各所述子流水线之间的依赖关系;

39、根据各所述候选分割方案中每一所述子流水线之间的依赖关系,以及深度神经网络的芯粒资源,对各所述候选分割方案中的子流水线进行成本分析,得到各所述候选分割方案对应的目标成本;

40、将所述目标成本最小的候选分割方案,作为最优分割方案,其实,所述最优分割方案用于实现对多芯粒加速计算的调度处理。

41、上述面向多芯粒加速计算的调度方法及装置,通过对深度神经网络有向无环图中的流水线进行分割,得到至少一个候选分割方案;其中,候选分割方案中包含有流水线经过分割后的至少一个子流水线,以及各子流水线之间的依赖关系;并根据各候选分割方案中每一子流水线之间的依赖关系,以及深度神经网络的芯粒资源,对各候选分割方案中的子流水线进行成本分析,得到各候选分割方案对应的目标成本;进而,将目标成本最小的候选分割方案,作为最优分割方案。根据上述内容可知,本技术通过对深度神经网络有向无环图中的流水线进行分割,得到至少一个候选分割方案,以此保证了分割后的子流水线具有更灵活的调度力度,也是的各个子流水线在执行过程中能够更早的释放芯粒资源,以便于芯粒资源更快的共其他就绪的子流水线使用,提高了芯粒资源的利用率;并且,通过对各候选分割方案中的子流水线进行成本分析,将目标成本最小的候选分割方案,作为最优分割方案,实现了针对流水线分割方案的进一步筛选,使得芯粒资源的利用率最大化。