本发明涉及数据处理,尤其涉及一种张量元素乘求和的处理方法、装置、设备和存储介质。
背景技术:
1、张量元素乘求和指的是两个张量的对应位置的元素相乘的结果在某一个维度进行内积累加(inner product)。
2、在许多应用场景中,例如在训练神经网络模型的过程中,许多关键算子均含有张量元素乘求和的操作,例如归一化指数函数(softmax),层归一化(layernorm),注意力(attention)等算子。目前通常通过向量引擎vector-engine实现张量元素乘求和的操作,但是通过vector-engine实现张量元素乘求和,计算效率较低。
技术实现思路
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、根据本发明提供的一种张量元素乘求和的处理方法,在所述第一张量和所述第二张量的维度大于2的情况下,所述利用目标计算单元对第一张量和第二张量进行矩阵乘积运算之前,还包括:
26、将所述第一张量和所述第二张量进行降维处理。
27、根据本发明提供的一种张量元素乘求和的处理方法,所述目标计算单元为专用的张量计算单元。
28、根据本发明提供的一种张量元素乘求和的处理方法,所述目标计算单元为张量核tensor core计算单元。
29、本发明还提供一种张量元素乘求和的处理装置,包括:
30、第一处理模块,用于利用目标计算单元对第一张量和第二张量进行矩阵乘积运算;所述目标计算单元为用于对矩阵乘积运算进行加速的计算单元;
31、第二处理模块,用于利用所述目标计算单元根据矩阵乘积运算得到的结果矩阵的对角线元素,得到所述第一张量和所述第二张量的张量元素乘求和运算的结果。
32、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述张量元素乘求和的处理方法。
33、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述张量元素乘求和的处理方法。
34、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述张量元素乘求和的处理方法。
35、本发明提供的张量元素乘求和的处理方法、装置、设备和存储介质,利用目标计算单元对第一张量和第二张量进行矩阵乘积运算;所述目标计算单元为用于对矩阵乘积运算进行加速的计算单元;利用所述目标计算单元根据矩阵乘积运算得到的结果矩阵的对角线元素,得到所述第一张量和所述第二张量的张量元素乘求和运算的结果,上述方案中由于利用目标计算单元对两个张量进行矩阵乘积元素,基于矩阵乘积运算得到的结果矩阵的对角线元素,得到张量元素乘求和运算的结果,即利用矩阵乘积运算代替张量元素乘求和运算的操作,而且是利用用于对矩阵乘积运算进行加速的目标计算单元实现的,因此计算效率较高。
1.一种张量元素乘求和的处理方法,其特征在于,包括:
2.根据权利要求1所述的张量元素乘求和的处理方法,其特征在于,所述利用目标计算单元对第一张量和第二张量进行矩阵乘积运算,包括:
3.根据权利要求2所述的张量元素乘求和的处理方法,其特征在于,所述分块的大小为基于所述目标计算单元支持的矩阵乘积运算的最小分块大小得到的。
4.根据权利要求2或3所述的张量元素乘求和的处理方法,其特征在于,在所述张量元素乘求和运算为对所述第一张量和第二张量的张量元素乘运算的结果的第一维度进行求和的情况下,所述利用所述目标计算单元对分块后的第一张量和第二张量进行矩阵乘积运算,包括:
5.根据权利要求2或3所述的张量元素乘求和的处理方法,其特征在于,在所述张量元素乘求和运算为对所述第一张量和第二张量的张量元素乘运算的结果的第二维度进行求和的情况下,所述利用所述目标计算单元对分块后的第一张量和第二张量进行矩阵乘积运算,包括:
6.根据权利要求1-3任一项所述的张量元素乘求和的处理方法,其特征在于,在所述第一张量和所述第二张量的维度大于2的情况下,所述利用目标计算单元对第一张量和第二张量进行矩阵乘积运算之前,还包括:
7.根据权利要求1-3任一项所述的张量元素乘求和的处理方法,其特征在于,所述目标计算单元为专用的张量计算单元。
8.根据权利要求1-3任一项所述的张量元素乘求和的处理方法,其特征在于,所述目标计算单元为张量核tensor core计算单元。
9.一种张量元素乘求和的处理装置,其特征在于,包括:
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述张量元素乘求和的处理方法。
11.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述张量元素乘求和的处理方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述张量元素乘求和的处理方法。