面向异构分组矩阵乘法的动态自适应批级调度方法及系统

摘要: 本发明属于计算机,具体涉及一种面向异构分组矩阵乘法的动态自适应批级调度方法及系统。背景技术:1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,并不必然构成...
面向异构分组矩阵乘法的动态自适应批级调度方法及系统

本发明属于计算机,具体涉及一种面向异构分组矩阵乘法的动态自适应批级调度方法及系统。

背景技术:

1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,并不必然构成在先技术。

2、通用矩阵乘法(general matrix multiplication,gemm)是科学计算、深度学习训练与推理、高性能仿真和大规模数据处理中的基础算子。随着gpu中tensor core、共享内存和大规模并行流式多处理器(sm)的发展,单个大规模且规则的gemm已经能够通过成熟数学库获得较高吞吐。然而,在多专家模型(mixture-of-experts,moe)、小批量推理、图计算、稀疏路由以及多任务科学计算等场景中,系统往往需要在一次计算阶段内执行大量相互独立但尺寸不同的矩阵乘法。这类任务通常被组织为面向异构分组通用矩阵乘法(groupedgeneral matrix multiplication,grouped gemm),即将多个gemm问题合并到一次或少数几次gpu内核发射中完成,以降低启动开销并提高并行资源利用率。

3、现有grouped gemm方案通常关注每个gemm任务自身的局部最优策略。例如,针对某个矩阵形状选择较大的分块(tile)以提高数据复用,或者沿k维度进行切分以增加可调度工作单元。这些方法在任务规模接近、矩阵形状较规则或组内任务数量较小时能够取得较好效果。

4、然而,在执行异构grouped gemm时,现有方法主要依据单个gemm任务的尺寸、k维深度或局部数据复用收益选择执行策略。该类局部策略在小规模、规则任务批中通常可行,但当任务批包含大量不同尺寸、不同形态和不同计算强度的gemm时,局部策略聚合后会产生新的批级失衡。首先,现有调度方法若只关注k维深度或已生成tile的局部调度,可能无法识别任务尺寸维度较大而导致输出tile数量较多的结构性主导任务,从而使这些任务在执行后期形成尾部瓶颈。其次,不同gemm任务独立选择的分块策略在批级聚合后,可能导致共享内存和寄存器等片上资源压力增加,当多个任务独立选择较大策略tile时,虽然单任务复用率提高,但共享内存占用增大,每个sm上可同时驻留的线程块数量降低,总可调度线程块数量不足以充分覆盖gpu的并行驻留能力,导致sm空闲和吞吐下降。

技术实现思路

1、本发明的目的是克服上述现有技术中存在的不足,提供一种面向异构分组矩阵乘法的动态自适应批级调度方法及系统。

2、为了实现上述目的,本发明是通过如下的技术方案来实现:

3、第一方面,本发明的技术方案提供了面向异构分组矩阵乘法的动态自适应批级调度方法,包括:

4、构建异构分组通用矩阵乘法任务批,并建立候选分块策略集合;

5、构建任务批结构性不均衡判据,若判据成立,则启动任务排序;基于任务批构建最高尺度等级候选集合,并基于任务的形态类别进行排序;确定覆盖候选集合的最小连续窗口,将候选集合中的关键任务提升到该窗口前端,同时保持窗口内其他任务的相对顺序不变,输出重排后的任务批;

6、基于重排后的任务批,从候选分块策略集合选取任务的初始分块策略并计算有界调制因子;基于目标内核的硬件信息、有界调制因子及当前策略集合产生的线程块数量构建供给不足判据,若判据成立,则启动资源感知策略调优,采用一阶降级策略调整任务批中部分任务的执行策略,直至供给不足判据不成立,输出调优后的分块策略集合;

7、将重排后的任务批和调优后的分块策略集合发送至目标内核执行矩阵计算任务。

8、在至少一个实施例中,构建任务批结构性不均衡判据,具体包括:

9、基于各通用矩阵乘法任务输出矩阵在行方向和列方向的规模以及归约维度计算该任务的任务体量;

10、基于当前分组通用矩阵乘法任务批中的所有任务体量计算任务批的平均体量、体量标准差和最大体量;

11、基于任务批的最大体量和平均体量计算任务批的头部突出度,基于体量标准差和平均体量计算任务批的离散程度;

12、基于任务批的头部突出度、离散程度以及基于任务批中任务数量确定的触发阈值构建任务批结构性不均衡判据。

13、在至少一个实施例中,基于任务批构建最高尺度等级候选集合,并基于任务的形态类别进行排序,具体包括:

14、基于任务体量占任务批最大体量的比例确定各任务的尺度等级,基于任务输出矩阵在行方向和列方向的规模比确定任务的形态类别;

15、选取当前任务批中处于最高尺度等级的一组任务形成最高尺度等级候选集合;

16、对候选集合中的各任务按照其形态类别的优先级进行排序,若多个任务形态类别相同,则任务体量越大的任务优先级越高。

17、在至少一个实施例中,形态类别包括平衡型、高瘦型、宽扁型和中等偏斜型;

18、对候选集合中的各任务按照其形态类别的优先级进行排序,包括:形态类别为高瘦型和宽扁型的任务具有相同最高优先级,中等偏斜型次之,平衡型再次之。

19、在至少一个实施例中,基于重排后的任务批,从候选分块策略集合选取任务的初始分块策略并计算有界调制因子,具体包括:

20、基于重排后的任务批中的各任务的矩阵规模和矩阵形态,从候选分块策略集合中为各任务选取初始分块策略;

21、基于初始分块策略的分块规模、步长及数据类型字节数,采用双缓冲机制计算各任务的共享内存占用估计,并基于当前任务批中的任务数量计算任务批的平均共享内存压力;

22、基于目标gpu单个流式多处理器可用共享内存容量,将平均共享内存压力归一化并裁剪为有界调制因子。

23、在至少一个实施例中,基于目标内核的硬件信息、有界调制因子及当前策略集合产生的线程块数量构建供给不足判据,若判据成立,则启动资源感知策略调优,具体包括:

24、查询当前分组通用矩阵乘法内核的属性信息,在确认满足基本执行约束后,获取在当前内核发射配置下每个流式多处理器最多能够同时驻留的线程块数量;

25、基于目标gpu的流式多处理器数量、有界调制因子、当前内核发射配置下每个流式多处理器最多能够同时驻留的线程块数量以及当前策略集合产生的线程块供给总量构建批级供给风险指标;

26、基于批级供给风险指标构建资源供给不足判据,若批级供给风险指标大于1,资源供给不足判据成立,启动资源感知策略调优;若批级供给风险指标不大于1,资源供给不足判据不成立,保留现有策略集合。

27、在至少一个实施例中,基于目标gpu的流式多处理器数量、有界调制因子、当前内核发射配置下每个流式多处理器最多能够同时驻留的线程块数量以及当前策略集合产生的线程块供给总量构建批级供给风险指标,具体包括:

28、基于目标gpu的流式多处理器数量、当前内核发射配置下每个流式多处理器最多能够同时驻留的线程块数量以及有界调制因子计算经共享内存压力调制后的硬件驻留线程块需求;

29、基于各任务在二维输出平面上的分块数量与任务沿深度维度的分裂因子计算各任务在当前策略下产生的线程块供给近似值,求和得到当前任务批在当前策略集合下能够产生的总线程块供给;

30、基于经共享内存压力调制后的硬件驻留线程块需求与当前任务批在当前策略集合下能够产生的总线程块供给的比值构建批级供给风险指标。

31、在至少一个实施例中,采用一阶降级策略调整任务批中部分任务的执行策略,具体包括:

32、从重排后的任务批的尾部向前扫描符合条件的任务,每次只选择一个符合条件的任务,并将其当前分块策略降低至次一级压力的相邻或兼容策略;对于每个选取到的符合条件的任务,按照与任务形态类别相匹配的调整路径进行一阶策略降级;在策略调优的降级路径中,设定资源占用最低的通用策略为终止策略,当任一任务的当前策略被降级至终止策略后,不再参与后续的降级扫描。

33、在至少一个实施例中,每完成一次策略降级,更新该任务的共享内存占用估计、任务批的平均共享内存压力、有界调制因子、当前内核发射配置下每个流式多处理器最多能够同时驻留的线程块数量和线程块总供给,重新计算批级供给风险指标并进行资源供给不足判据判断;该过程持续到批级供给风险指标不大于1,或者任务已降级至终止策略任务为止,输出调优后的分块策略集合。

34、第二方面,本发明的技术方案还提供了一种面向异构分组矩阵乘法的动态自适应批级调度系统,包括:

35、基础配置模块,被配置为:构建异构分组通用矩阵乘法任务批,并建立候选分块策略集合;

36、任务排序模块,被配置为:构建任务批结构性不均衡判据,若判据成立,则启动任务排序;基于任务批构建最高尺度等级候选集合,并基于任务的形态类别进行排序;确定覆盖候选集合的最小连续窗口,将候选集合中的关键任务提升到该窗口前端,同时保持窗口内其他任务的相对顺序不变,输出重排后的任务批;

37、策略调优模块,被配置为:基于重排后的任务批,从候选分块策略集合选取任务的初始分块策略并计算有界调制因子;基于目标内核的硬件信息、有界调制因子及当前策略集合产生的线程块数量构建供给不足判据,若判据成立,则启动资源感知策略调优,采用一阶降级策略调整任务批中部分任务的执行策略,直至供给不足判据不成立,输出调优后的分块策略集合;

38、执行模块,被配置为:将重排后的任务批和调优后的分块策略集合发送至目标内核执行矩阵计算任务。

39、上述本发明的技术方案的有益效果如下:

40、1)本发明的面向异构分组矩阵乘法的动态自适应批级调度方法,通过任务排序配合资源感知策略调优的批级协同机制,将grouped gemm优化从单任务局部策略选择扩展到面向整个任务批的全局调控。该方法不依赖离线训练模型,能够利用运行时硬件占用率和共享内存压力信号进行自适应决策,适用于深度学习推理、高性能科学计算和其他需要执行大量异构矩阵乘法的gpu应用场景。

41、2)本发明能够识别由m、n、k三维共同决定的结构性主导gemm任务,而非仅依据归约维度深度进行排序,通过体量表征值统计和结构性不均衡判据,系统只在任务批存在明显不均衡时执行局部任务提升,从而减少长尾任务对整体完成时间的影响。

42、3)本发明能够根据共享内存压力和硬件占用率信号对分块策略集合进行批级调控,通过资源感知控制信号和供给不足判据,系统能够在内核发射前判断当前策略组合是否会导致线程块供给不足,并对过粗分块策略进行形态感知的保守降级,提升每个流式多处理器的活跃线程块数和实际占用率。

43、本发明的优点以及附加方面的优点将在下面的具体实施例中进行详细说明。