本申请涉及计算机,特别涉及一种数据处理方法、装置、设备及可读存储介质。
背景技术:
1、目前,为了使ai模型的算子适应处理器如ai处理器的计算阵列,需要对ai模型的算子进行切分。当前一般以固定大小的几个数据块尝试切分算子的输入张量。而在使用代码或程序进行张量切分时,目前所尝试的切分方案可能导致输出张量的个别维度超过计算阵列,因此需要反复尝试反复确定,才能找出能够适应ai处理器的计算阵列的切分方案,该过程整体切分效率较慢。
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、相应地,本申请提供的一种数据处理装置、设备及可读存储介质,也同样具有上述技术效果。
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述目标算子的输出张量,包括:
3.根据权利要求2所述的方法,其特征在于,所述获取切分的前一个目标算子的输入张量,包括:
4.根据权利要求1所述的方法,其特征在于,所述根据所述输出张量和设备计算阵列确定输出张量切分信息,包括:
5.根据权利要求4所述的方法,其特征在于,所述按照所述目标维度的尺寸约束,对所述输出张量进行切分,包括:
6.根据权利要求1至5任一项所述的方法,其特征在于,所述按照所述输出张量切分信息逆向确定所述目标算子的输入张量切分信息,包括:
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
8.一种数据处理装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。