基于中间表示的数据处理方法、电子设备、介质及程序与流程

摘要: 本发明实施例涉及数据处理领域,尤其涉及一种基于中间表示的数据处理方法、电子设备、介质及程序。背景技术:1、矩阵运算是深度学习以及大模型训练与推理场景下的核心基础...
基于中间表示的数据处理方法、电子设备、介质及程序与流程

本发明实施例涉及数据处理领域,尤其涉及一种基于中间表示的数据处理方法、电子设备、介质及程序。

背景技术:

1、矩阵运算是深度学习以及大模型训练与推理场景下的核心基础运算,算子的执行效率直接决定模型的整体吞吐与时延表现。

2、在gpu(graphics processing unit,图像处理器)等并行计算平台上执行矩阵运算时,通常将输出矩阵划分为若干分块,交由执行单元开展并行计算,各输出分块需要沿归约维度完成完整累加运算。传统数据并行模式下,各执行单元独立完成单个输出分块的全部计算任务,当输出分块数量与硬件执行单元数量不匹配时,容易产生尾波问题,造成部分硬件单元闲置,降低硬件整体利用效率。

3、现有技术中已提出split-k(k维拆分)以及stream-k(k流式拆分)等沿归约维度拆分的计算方案,通过多个执行单元协同完成同一输出分块的计算,增大并行粒度,改善硬件利用率。然而,该类计算分解方案大多为离散化实现,缺乏统一表达机制,不同分解策略需要对应不同的内核实现,难以在编译阶段对各类分解策略进行统一表征,也无法支持算子代码的自动生成。

技术实现思路

1、本发明实施例提供一种基于中间表示的数据处理方法、电子设备、介质及程序,能够在编译阶段完成各类矩阵运算分解策略的统一表征与算子代码自动生成,进而提高硬件资源利用率。

2、根据本发明的一方面,提供了一种基于中间表示的数据处理方法,包括:

3、获取第一输入张量数据、第二输入张量数据、目标计算设备的运行配置信息和数据分解控制参数;

4、根据所述第一输入张量数据、所述第二输入张量数据和所述运行配置信息生成目标矩阵乘任务对应的初始中间表示;

5、根据所述数据分解控制参数对所述初始中间表示执行结构化变换,生成适配所述目标矩阵乘任务的中间表示执行结构;其中,所述中间表示执行结构包括数据并行执行路径和归约协同执行路径;

6、根据所述中间表示执行结构生成适配所述目标矩阵乘任务的目标算子代码,以使所述目标计算设备根据所述目标算子代码对所述第一输入张量数据和所述第二输入张量数据执行矩阵乘运算。

7、根据本发明的另一方面,提供了一种基于中间表示的数据处理装置,包括:

8、数据获取模块,用于获取第一输入张量数据、第二输入张量数据、目标计算设备的运行配置信息和数据分解控制参数;

9、初始中间表示生成模块,用于根据所述第一输入张量数据、所述第二输入张量数据和所述运行配置信息生成目标矩阵乘任务对应的初始中间表示;

10、中间表示执行结构生成模块,用于根据所述数据分解控制参数对所述初始中间表示执行结构化变换,生成适配所述目标矩阵乘任务的中间表示执行结构;其中,所述中间表示执行结构包括数据并行执行路径和归约协同执行路径;

11、目标算子代码生成模块,用于根据所述中间表示执行结构生成适配所述目标矩阵乘任务的目标算子代码,以使所述目标计算设备根据所述目标算子代码对所述第一输入张量数据和所述第二输入张量数据执行矩阵乘运算。

12、根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:

13、至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的基于中间表示的数据处理方法。

14、根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的基于中间表示的数据处理方法。

15、根据本发明的另一方面,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现本发明任一实施例所述的基于中间表示的数据处理方法。

16、本发明实施例通过获取第一输入张量数据、第二输入张量数据、目标计算设备的运行配置信息和数据分解控制参数,进而根据第一输入张量数据、第二输入张量数据和运行配置信息生成目标矩阵乘任务对应的初始中间表示。进一步的,根据数据分解控制参数对初始中间表示执行结构化变换,生成适配目标矩阵乘任务的包括数据并行执行路径和归约协同执行路径的中间表示执行结构。在得到适配目标矩阵乘任务的中间表示执行结构之后,根据中间表示执行结构生成适配目标矩阵乘任务的目标算子代码,以使目标计算设备根据目标算子代码对第一输入张量数据和第二输入张量数据执行矩阵乘运算。上述方案解决了现有技术中,编译阶段无法对各类矩阵运算分解策略进行统一表达,算子代码难以自动生成的技术缺陷,能够在编译阶段完成各类矩阵运算分解策略的统一表征与算子代码自动生成,进而提高硬件资源利用率。

17、应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

1.一种基于中间表示的数据处理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述第一输入张量数据、所述第二输入张量数据和所述运行配置信息生成目标矩阵乘任务对应的初始中间表示,包括:

3.根据权利要求1所述的方法,其特征在于,所述根据所述数据分解控制参数对所述初始中间表示执行结构化变换,生成适配所述目标矩阵乘任务的中间表示执行结构,包括:

4.根据权利要求3所述的方法,其特征在于,所述数据分解控制参数包括分块配置参数和任务分配比例参数;所述根据所述数据分解控制参数和所述目标输出张量数据的尺寸信息将所述目标输出张量数据划分为数据并行分块组和归约协同分块组,包括:

5.根据权利要求3所述的方法,其特征在于,所述数据分解控制参数包括归约维度任务拆分粒度、任务调度粒度和中间结果合并策略;所述根据所述数据分解控制参数分别生成所述数据并行分块组和所述归约协同分块组对应的任务执行序列,包括:

6.根据权利要求1所述的方法,其特征在于,所述根据所述中间表示执行结构生成适配所述目标矩阵乘任务的目标算子代码,包括:

7.根据权利要求1所述的方法,其特征在于,所述获取数据分解控制参数,包括:

8.根据权利要求7所述的方法,其特征在于,所述方法还包括:

9.一种电子设备,其特征在于,所述电子设备包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-8中任一所述的基于中间表示的数据处理方法。

11.一种计算机程序产品,其特征在于,包括计算机程序/指令,其中,所述计算机程序/指令被处理器执行时实现权利要求1-8中任一项所述的基于中间表示的数据处理方法。