矩阵运算方法、处理器和计算设备与流程

专利查询13小时前  2


本技术涉及计算,特别涉及一种矩阵运算方法、处理器和计算设备。


背景技术:

1、矩阵运算是高性能计算(high performance computing,hpc)应用中经常运用的一种运算,包括矩阵的转置、加法、减法和乘法等。

2、目前当hpc应用中的矩阵需要进行转置时,处理器可以借助标量寄存器或向量寄存器完成矩阵的转置,效率较低。


技术实现思路

1、本技术实施例提供了一种矩阵运算方法、处理器和计算设备,可以借助矩阵寄存器完成矩阵转置,能够提高对矩阵进行转置的效率,相应的技术方案如下:

2、第一方面,提供了一种矩阵运算方法,由包括矩阵寄存器的处理器执行,该矩阵运算方法包括:

3、处理器将第一矩阵数据存储至矩阵寄存器。其中,第一矩阵包含n行m列,矩阵寄存器以n行m列的二维形式存储第一矩阵数据。然后处理器以逐行或者逐列的方式从矩阵寄存器中读取第一矩阵数据,得到对第一矩阵数据转置后的包含m行n列的第二矩阵数据。其中,m和n为正整数,m和n的值可以相等,也可以不等。

4、矩阵寄存器是一种能够通过二维形式对矩阵数据进行存储的寄存器。处理器可提供读取指令,用于对矩阵寄存器中存储的矩阵数据按列或按行进行读取。处理器还可提供存储指令,用于将向量数据(如矩阵数据中的某一列)以行或列的形式存储至矩阵寄存器。处理器以行或列的形式在矩阵寄存器读取和存储数据时,对应的读取性能和存储性能的差异可以忽略。

5、在本技术所示的方案中,对于待进行转置的第一矩阵对应的第一矩阵数据,处理器可以将第一矩阵数据存储至矩阵寄存器。当矩阵寄存器中的存储的每行数据为第一矩阵的每行数据时,处理器可以以逐列的方式将矩阵寄存器存储的第一矩阵数据读取出来,便可以得到对第一矩阵进行转至后的第二矩阵的第二矩阵数据。当矩阵寄存器中的存储的每行数据为第一矩阵的每列数据时,处理器可以以逐行的方式将矩阵寄存器存储的第一矩阵数据读取出来,便可以得到对第一矩阵进行转至后的第二矩阵的第二矩阵数据。

6、可见,本技术所示的方案,只需要将待进行转置的矩阵数据存储至矩阵寄存器,然后改变读取方式再将矩阵寄存器中存储的矩阵数据读取出来,便可以实现对矩阵的转置。这样,对于一个n行m列的矩阵,只需要n个存储指令加m个读取指令(或m个存储指令加n个读取指令)便可以实现对矩阵的转置运算,能够降低对矩阵进行转置所需的指令数量,提高对矩阵转置的效率。

7、在一种可实现的方式中,将第一矩阵数据存储至矩阵寄存器,包括:以逐行或者逐列的方式,将内存中存储的第一矩阵数据存储至矩阵寄存器。

8、在本技术所示的方案中,第一矩阵数据在内存中可以数组的方式进行存储,根据存储方式的不同,处理器每次可在内存读取第一矩阵的一行数据或者一列数据。对于每次可内存读取的一行数据,处理器可以行或列的方式存储至矩阵寄存器中。也就是,处理器每次读取出的第一矩阵的一行数据可以在矩阵寄存器按行进行存储,也可以在矩阵寄存器按列进行存储。对于每次可内存读取的一列数据,处理器可以行或列的方式存储至矩阵寄存器中。也就是,每次读取出的第一矩阵的一列数据可以在矩阵寄存器按行进行存储,也可以在矩阵寄存器按列进行存储。

9、其中,在将每次读取出的第一矩阵的一行数据或一列数据,以逐行的方式存储至矩阵寄存器后,处理器可以以逐列的方式读取出矩阵寄存器存储的第一矩阵数据,得到转置之后的第二矩阵数据。在将每次读取出的第一矩阵的一行数据或一列数据,以逐列的方式存储至矩阵寄存器后,处理器可以逐行的方式读取出矩阵寄存器存储的第一矩阵数据,得到转置之后的第二矩阵数据。可见,本技术所示的方案,处理器只需要将待进行转置的矩阵数据存储至矩阵寄存器,然后改变读取方式再将矩阵寄存器中存储的矩阵数据读取出来,便可以实现对矩阵的转置,进而能够降低对矩阵进行转置所需的指令数量,提高对矩阵转置的效率。

10、在一种可实现的方式中,处理器还包括向量寄存器。相应的,将第一矩阵数据存储至矩阵寄存器,包括:将第一矩阵数据以向量数据的形式存储至向量寄存器。将向量寄存器中存储的第一矩阵数据对应的向量数据,以行或列的方式存储至矩阵寄存器。

11、在本技术所示的方案中,处理器还包括向量寄存器,处理器可借助向量寄存器向矩阵寄存器存储矩阵数据。其中,对于每次从内存读取的第一矩阵的一行数据或一列数据,处理器可以先以向量的形式存储至向量寄存器,然后再将向量寄存器中存储的第一矩阵的一行数据或一列数据,读取至矩阵寄存器,进而实现将第一矩阵数据存储至矩阵寄存器。如此,内存通过向量寄存器向矩阵寄存器存储矩阵数据,可以减少内存与矩阵寄存器之间建立数据通道的数量,可以降低处理器的硬件成本。

12、在一种可实现的方式中,以逐行或者逐列的方式从矩阵寄存器中读取第一矩阵数据,得到对第一矩阵数据转置后的第二矩阵数据,包括:以逐行或者逐列的方式,从矩阵寄存器中读取第一矩阵数据,并将每次读取到向量数据,存储至向量寄存器。将向量寄存器中存储的向量数据读取至内存,得到对第一矩阵数据转置后的第二矩阵数据。

13、在本技术所示的方案中,处理器可借助向量寄存器向矩阵寄存器存储矩阵数据,也可以借助向量寄存器从矩阵寄存器读取矩阵数据。其中,对于每次从矩阵寄存器中读取的一行数据或一列数据,处理器可以先以向量的形式存储至向量寄存器,然后再将向量寄存器中存储的一行数据或一列数据,读取至内存,进而实现以逐行或者逐列的方式从矩阵寄存器中读取第一矩阵数据。如此,内存通过向量寄存器向矩阵寄存器存储矩阵数据,并通过向量寄存器从矩阵寄存器中读取矩阵数据,可以避免内存与矩阵寄存器之间建立数据通道,能够进一步降低处理器的硬件成本。

14、在一种可实现的方式中,处理器还包括向量寄存器。相应的,以逐行或者逐列的方式从矩阵寄存器中读取第一矩阵数据,得到对第一矩阵数据转置后的第二矩阵数据,包括:以逐行或者逐列的方式,从矩阵寄存器中读取第一矩阵数据,并将每次读取到向量数据,存储至向量寄存器。将向量寄存器中存储的向量数据读取至内存,得到对第一矩阵数据转置后的第二矩阵数据。

15、在本技术所示的方案中,处理器还包括向量寄存器,处理器可借助向量寄存器将矩阵寄存器存储矩阵数据读取至内存。其中,对于每次从矩阵寄存器中读取的一行数据或一列数据,可以先以向量的形式存储至向量寄存器,然后再将向量寄存器中存储的一行数据或一列数据,读取至内存,进而实现以逐行或者逐列的方式从矩阵寄存器中读取第一矩阵数据。如此,内存通过向量寄存器从矩阵寄存器中读取矩阵数据,能够减少内存与矩阵寄存器之间建立数据通道的数量,进而降低处理器的硬件成本。

16、在一种可实现的方式中,处理器还包括计算单元。相应的,得到对第一矩阵数据转置后的第二矩阵数据之后,方法还包括:将第二矩阵数据输入至计算单元,由计算单元对第二数据矩阵进行指定计算。

17、在本技术所示的方案中,处理器还包括计算单元,如矩阵计算单元、向量计算单元等。在对矩阵寄存器中存储的矩阵数据读取得到转置后的第二矩阵数据后,可以直接将读取的第二矩阵数据输入至计算单元,进行后续的计算,无需将读取的第二矩阵数据存储至内存,进而可以提高矩阵运算的效率。

18、第二方面,提供了一种处理器,处理器包括矩阵寄存器,该处理器用于:将第一矩阵数据存储至矩阵寄存器,第一矩阵包含n行m列,矩阵寄存器以n行m列的二维形式存储第一矩阵数据。以逐行或者逐列的方式从矩阵寄存器中读取第一矩阵数据,得到对第一矩阵数据转置后的第二矩阵数据,第二矩阵包含m行n列。

19、在一种可实现的方式中,处理器用于:以逐行或者逐列的方式,将内存中存储的第一矩阵数据存储至矩阵寄存器。

20、在一种可实现的方式中,处理器还包括向量寄存器,处理器用于:将第一矩阵数据以向量数据的形式存储至向量寄存器。将向量寄存器中存储的第一矩阵数据对应的向量数据,以行或列的方式存储至矩阵寄存器。

21、在一种可实现的方式中,处理器用于:以逐行或者逐列的方式,从矩阵寄存器中读取第一矩阵数据,并将每次读取到向量数据,存储至向量寄存器。将向量寄存器中存储的向量数据读取至内存,得到对第一矩阵数据转置后的第二矩阵数据。

22、在一种可实现的方式中,处理器还包括向量寄存器,处理器用于:以逐行或者逐列的方式,从矩阵寄存器中读取第一矩阵数据,并将每次读取到向量数据,存储至向量寄存器。将向量寄存器中存储的向量数据读取至内存,得到对第一矩阵数据转置后的第二矩阵数据。

23、在一种可实现的方式中,处理器还包括计算单元,处理器还用于:将第二矩阵数据输入至计算单元,由计算单元对第二数据矩阵进行指定计算。

24、第三方面,提供了一种计算设备,该计算设备包括存储器和处理器,该处理器用于执行存储器中存储的指令,以使得所述处理器执行如上第一方面所述的矩阵运算方法。

25、第四方面,提供了一种包含指令的计算机程序产品,当该指令被第三方面所述的计算设备运行时,使得计算设备执行如第一方面所述的矩阵运算方法。

26、第五方面,提供了一种计算机可读存储介质,包括计算机程序指令,当该计算机程序指令由第三方面所述的计算设备执行时,该计算设备可以执行如第一方面所述的矩阵运算方法。


技术特征:

1.一种矩阵运算方法,其特征在于,由处理器执行,所述处理器包括矩阵寄存器,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述将第一矩阵数据存储至所述矩阵寄存器,包括:

3.根据权利要求1所述的方法,其特征在于,所述处理器还包括向量寄存器;

4.根据权利要求3所述的方法,其特征在于,所述以逐行或者逐列的方式从所述矩阵寄存器中读取所述第一矩阵数据,得到对所述第一矩阵数据转置后的第二矩阵数据,包括:

5.根据权利要求1所述的方法,其特征在于,所述处理器还包括向量寄存器;

6.根据权利要求1至5任一项所述的方法,其特征在于,所述处理器还包括计算单元,所述得到对所述第一矩阵数据转置后的第二矩阵数据之后,所述方法还包括:

7.一种处理器,其特征在于,所述处理器包括矩阵寄存器,所述处理器用于:

8.根据权利要求7所述的处理器,其特征在于,所述处理器用于:

9.根据权利要求7所述的处理器,其特征在于,所述处理器还包括向量寄存器,所述处理器用于:

10.根据权利要求9所述的处理器,其特征在于,所述处理器用于:

11.根据权利要求7所述的处理器,其特征在于,所述处理器还包括向量寄存器,所述处理器用于:

12.根据权利要求7至11任一项所述的处理器,其特征在于,所述处理器还包括计算单元,所述处理器还用于:

13.一种计算设备,其特征在于,所述计算设备包括存储器和处理器,所述处理器包括矩阵寄存器,所述处理器用于执行所述存储器中存储的指令,以使得所述处理器执行如权利要求1至6任一项所述的方法。


技术总结
本申请公开的实施例属于计算技术领域,特别涉及一种矩阵运算方法、处理器和计算设备。矩阵运算方法由包括矩阵寄存器的处理器执行,在该矩阵运算方法中,可以将待进行转至的第一矩阵数据存储至矩阵寄存器,其中,第一矩阵包含N行M列,矩阵寄存器以N行M列的二维形式存储第一矩阵数据。然后可以再以逐行或者逐列的方式从矩阵寄存器中读取第一矩阵数据,将得到对第一矩阵数据转置后的第二矩阵数据,其中,第二矩阵包含M行N列。采用本申请可以借助矩阵寄存器完成矩阵转置,能够提高对矩阵进行转置的效率。

技术研发人员:王欣亮,陈强,丁肇辉,王子君
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/12/5

最新回复(0)