矩阵乘法计算方法和装置制造方法及图纸

技术编号:24684506 阅读:48 留言:0更新日期:2020-06-27 08:15
提供一种矩阵乘法计算方法和装置,该矩阵乘法计算方法包括:根据输入被乘数矩阵和输入乘数矩阵,确定第一乘法矩阵和第二乘法矩阵;根据所确定的第一乘法矩阵和第二乘法矩阵,确定待还原矩阵;根据所确定的待还原矩阵,确定矩阵还原约束值;根据所确定的矩阵还原约束值和待还原矩阵,确定输入乘数矩阵和输入被乘数矩阵的相乘结果。上述矩阵乘法计算方法和装置,能够在减小计算误差的同时提高矩阵相乘的速度。

Calculation method and device of matrix multiplication

【技术实现步骤摘要】
矩阵乘法计算方法和装置
本专利技术属于计算机
,更具体地讲,涉及一种矩阵乘法计算方法和装置。
技术介绍
矩阵,是数学中一个重要的基本概念,一个M×N的矩阵是一个由M行N列元素排列成的矩形阵列。目前,在图形处理器(GPU)进行图像处理时、在手写识别中进行输入轨迹分析时、和/或在语音识别中进行输入音频分析时,矩阵乘法是其进行数据计算中非常重要的操作之一。常见的矩阵乘法的计算方式主要有以下两种:(一)通用矩阵乘法(GEMM)。如图1所示,在通用矩阵乘法中如果计算相乘结果矩阵C中第m行第n列的元素的元素值,则需要计算矩阵A的第m行的行向量与矩阵B的第n列的列向量的内积。以图1中的通用矩阵乘法为例,计算矩阵C中第1行第1列的元素的元素值,需要计算矩阵A第1行的行向量和矩阵B第1列的列向量的内积,即(0.6,0.4,0.5)·(0.3,1.1,0.0)=0.6×0.3+0.4×1.1+0.5×0.0=0.62≈0.6,相乘结果矩阵C中的其余元素的计算类似。采用通用矩阵乘法的计算方式,如果需要进行浮点矩阵(float矩阵)相乘,则需要硬件设备支持float类型数据的乘法运算,但在支持整型类型(int8类型)数据计算的设备上该通用矩阵乘法无法完成float矩阵乘法。此外,通用矩阵乘法中采用的float类型数据的乘法运算,在计算设备中进行处理比较耗时,并且会占用较大的内存。(二)量化矩阵乘法。谷歌在tensorflow中实现了一种量化和反量化方法,其通过在训练过程中估计出用于反量化的最大值(max)和最小值(min),在反量化阶段这两个值均保持不变,因此推断过程float结果矩阵的所有元素的元素值都被反量化回固定的min和max区间。由于在上述量化矩阵乘法中反量化需要的min、max采用的是固定的经验值,导致利用该固定的经验值对每个矩阵相乘进行处理会带来较大的计算误差。此外,在上述量化矩阵乘法中由于估计出的min和max需要满足所有矩阵相乘的需求,所以针对min和max的计算较为复杂。
技术实现思路
本专利技术的示例性实施例的目的在于提供一种矩阵乘法计算方法和装置,以克服上述至少一个缺陷。在一总体方面,提供一种矩阵乘法计算方法,包括:根据输入被乘数矩阵和输入乘数矩阵,确定第一乘法矩阵和第二乘法矩阵;根据所确定的第一乘法矩阵和第二乘法矩阵,确定待还原矩阵;根据所确定的待还原矩阵,确定矩阵还原约束值;根据所确定的矩阵还原约束值和待还原矩阵,确定输入被乘数矩阵和输入乘数矩阵的相乘结果。基于该矩阵乘法计算方法,能够提高矩阵相乘的速度。可选地,根据输入被乘数矩阵和输入乘数矩阵,确定第一乘法矩阵和第二乘法矩阵的步骤可包括:基于乘法矩阵值域的正数区间和负数区间,对输入被乘数矩阵和输入乘数矩阵中的每个元素进行量化,获得第一乘法矩阵和第二乘法矩阵,其中,乘法矩阵值域的正数区间的数值范围与负数区间的数值范围不对称。基于该矩阵乘法计算方法,能够有效减小计算误差,提升计算精度。可选地,根据所确定的待还原矩阵,确定矩阵还原约束值的步骤可包括:确定所述待还原矩阵中的预设参考值所在的位置;根据所述预设参考值所在的位置,分别从输入被乘数矩阵和输入乘数矩阵提取与所述位置对应的行向量和列向量;利用所提取的行向量和列向量来确定矩阵还原约束值。基于该矩阵乘法计算方法,能够有效提高矩阵还原的准确性。可选地,所述矩阵还原约束值可包括约束最大值和约束最小值,所述预设参考值可包括元素最大值和元素最小值,其中,可通过以下方式确定所述约束最大值:确定所述待还原矩阵中的元素最大值所在的第一位置,从输入被乘数矩阵中提取与第一位置所在的行号对应的第一行向量,从输入乘数矩阵中提取与第一位置所在的列号对应的第一列向量,将所提取的第一行向量与第一列向量相乘,获得所述约束最大值,和/或,可通过以下方式确定所述约束最小值:确定所述待还原矩阵中的元素最小值所在的第二位置,从输入被乘数矩阵中提取与第二位置所在的行号对应的第二行向量,从输入乘数矩阵中提取与第二位置所在的列号对应的第二列向量,将所提取的第二行向量与第二列向量相乘,获得所述约束最小值。基于该矩阵乘法计算方法,能够提高确定还原矩阵中的各元素值的准确性。可选地,根据所确定的矩阵还原约束值和待还原矩阵,确定输入被乘数矩阵和输入乘数矩阵的相乘结果的步骤可包括:根据待还原矩阵中的预设参考值所在的位置,确定矩阵还原约束值在还原矩阵中的位置;根据所述矩阵还原约束值对所述待还原矩阵中除所述预设参考值所在的位置之外的其他元素进行还原,获得还原矩阵,将所述还原矩阵确定为输入被乘数矩阵和输入乘数矩阵的相乘结果。基于该矩阵乘法计算方法,不仅能够提高矩阵还原的速度,还可以提高矩阵还原的准确性。可选地,所述矩阵还原约束值在所述还原矩阵中的位置与所述预设参考值在所述待还原矩阵中的位置相同。基于该矩阵乘法计算方法,有助于提高矩阵还原的速度。可选地,所述矩阵还原约束值可包括约束最大值和约束最小值,所述预设参考值可包括元素最大值和元素最小值,其中,根据所述矩阵还原约束值对所述待还原矩阵中除所述预设参考值所在的位置之外的其他元素进行还原,获得还原矩阵的步骤可包括:将所述约束最大值确定为还原矩阵的还原元素最大值,并将所述元素最大值在待还原矩阵中的位置确定为所述约束最大值在还原矩阵中的位置;将所述约束最小值确定为还原矩阵的还原元素最小值,并将所述元素最小值在待还原矩阵中的位置确定为所述约束最小值在还原矩阵中的位置;根据还原元素最大值、还原元素最小值、约束最大值和约束最小值,对所述其他元素进行还原,获得还原矩阵。基于该矩阵乘法计算方法,通过动态确定约束最大值和约束最小值,可以保证矩阵还原的精度,并有效提高矩阵还原的速度。可选地,可通过以下方式对所述待还原矩阵中的任一其他元素进行还原:如果所述任一其他元素的元素值为正数,则计算所述任一其他元素的元素值与还原元素最大值的乘积,并计算所述乘积与元素最大值的比值,将所述比值确定为所述任一其他元素还原后的元素值;如果所述任一其他元素的元素值为负数,则计算所述任一其他元素的元素值与还原元素最小值的乘积,并计算所述乘积与元素最小值的比值,将所述比值确定为所述任一其他元素还原后的元素值;如果所述任一其他元素的元素值为零,则所述任一其他元素还原后的元素值仍为零。基于该矩阵乘法计算方法,有助于提高确定还原矩阵中的各元素值的准确性。可选地,输入被乘数矩阵和输入乘数矩阵可包括浮点矩阵,第一乘法矩阵和第二乘法矩阵可包括整型矩阵。基于该矩阵乘法计算方法,能够有效提高浮点矩阵的矩阵相乘速度。在另一总体方面,提供一种矩阵乘法计算装置,包括:量化模块,根据输入被乘数矩阵和输入乘数矩阵,确定第一乘法矩阵和第二乘法矩阵;矩阵运算模块,根据所确定的第一乘法矩阵和第二乘法矩阵,确定待还原矩阵;约束值确定模块,根据所确定的待还原矩阵,确定矩阵还原约束值;矩阵还原模块,根据所确定的矩阵还原约束值和待还原矩阵,确定输入被乘数矩阵和输入乘数矩阵的相乘结本文档来自技高网
...

【技术保护点】
1.一种矩阵乘法计算方法,其特征在于,包括:/n根据输入被乘数矩阵和输入乘数矩阵,确定第一乘法矩阵和第二乘法矩阵;/n根据所确定的第一乘法矩阵和第二乘法矩阵,确定待还原矩阵;/n根据所确定的待还原矩阵,确定矩阵还原约束值;/n根据所确定的矩阵还原约束值和待还原矩阵,确定输入被乘数矩阵和输入乘数矩阵的相乘结果。/n

【技术特征摘要】
1.一种矩阵乘法计算方法,其特征在于,包括:
根据输入被乘数矩阵和输入乘数矩阵,确定第一乘法矩阵和第二乘法矩阵;
根据所确定的第一乘法矩阵和第二乘法矩阵,确定待还原矩阵;
根据所确定的待还原矩阵,确定矩阵还原约束值;
根据所确定的矩阵还原约束值和待还原矩阵,确定输入被乘数矩阵和输入乘数矩阵的相乘结果。


2.根据权利要求1所述的矩阵乘法计算方法,其特征在于,根据输入被乘数矩阵和输入乘数矩阵,确定第一乘法矩阵和第二乘法矩阵的步骤包括:
基于乘法矩阵值域的正数区间和负数区间,对输入被乘数矩阵和输入乘数矩阵中的每个元素进行量化,获得第一乘法矩阵和第二乘法矩阵,
其中,乘法矩阵值域的正数区间的数值范围与负数区间的数值范围不对称。


3.根据权利要求1所述的矩阵乘法计算方法,其特征在于,根据所确定的待还原矩阵,确定矩阵还原约束值的步骤包括:
确定所述待还原矩阵中的预设参考值所在的位置;
根据所述预设参考值所在的位置,分别从输入被乘数矩阵和输入乘数矩阵提取与所述位置对应的行向量和列向量;
利用所提取的行向量和列向量来确定矩阵还原约束值。


4.根据权利要求3所述的矩阵乘法计算方法,其特征在于,所述矩阵还原约束值包括约束最大值和约束最小值,所述预设参考值包括元素最大值和元素最小值,
其中,通过以下方式确定所述约束最大值:
确定所述待还原矩阵中的元素最大值所在的第一位置,
从输入被乘数矩阵中提取与第一位置所在的行号对应的第一行向量,
从输入乘数矩阵中提取与第一位置所在的列号对应的第一列向量,
将所提取的第一行向量与第一列向量相乘,获得所述约束最大值,
和/或,通过以下方式确定所述约束最小值:
确定所述待还原矩阵中的元素最小值所在的第二位置,
从输入被乘数矩阵中提取与第二位置所在的行号对应的第二行向量,
从输入乘数矩阵中提取与第二位置所在的列号对应的第二列向量,
将所提取的第二行向量与第二列向量相乘,获得所述约束最小值。


5.根据权利要求1所述的矩阵乘法计算方法,其特征在于,根据所确定的矩阵还原约束值和待还原矩阵,确定输入被乘数矩阵和输入乘数矩阵的相乘结果的步骤包括:
根据待还原矩阵中的预设参考值所在的位置,确定矩阵还原约束值在还原矩阵中的位置;
根据所述矩阵还原约束值对所述待还原矩阵中除所述预设参考值所在的位置之外的其他元素进行还原,获得还原矩阵,将所述还原矩阵确定为输入被乘数矩阵和输入乘数矩阵的相乘结果。


6.根据权利要求5所述的矩阵乘法计算方法,其特征在于,所述矩阵还原约束值在所述还原矩阵中的位置与所述预设参考值在所述待还原矩阵中的位置相同。


7.根据权利要求6所述的矩阵乘法计算方法,其特征在于,所述矩阵还原约束值包括约束最大值和约束最小值,所述预设参考值包括元素最大值和元素最小值,
其中,根据所述矩阵还原约束值对所述待还原矩阵中除所述预设参考值所在的位置之外的其他元素进行还原,获得还原矩阵的步骤包括:
将所述约束最大值确定为还原矩阵的还原元素最大值,并将所述元素最大值在待还原矩阵中的位置确定为所述约束最大值在还原矩阵中的位置;
将所述约束最小值确定为还原矩阵的还原元素最小值,并将所述元素最小值在待还原矩阵中的位置确定为所述约束最小值在还原矩阵中的位置;
根据还原元素最大值、还原元素最小值、约束最大值和约束最小值,对所述其他元素进行还原,获得还原矩阵。


8.根据权利要求7所述的矩阵乘法计算方法,其特征在于,通过以下方式对所述待还原矩阵中的任一其他元素进行还原:
如果所述任一其他元素的元素值为正数,则计算所述任一其他元素的元素值与还原元素最大值的乘积,并计算所述乘积与元素最大值的比值,将所述比值确定为所述任一其他元素还原后的元素值;
如果所述任一其他元素的元素值为负数,则计算所述任一其他元素的元素值与还原元素最小值的乘积,并计算所述乘积与元素最小值的比值,将所述比值确定为所述任一其他元素还原后的元素值;
如果所述任一其他元素的元素值为零,则所述任一其他元素还原后的元素值仍为零。


9.根据权利要求1所述的矩阵乘法计算方法,其特征在于,输入被乘数矩阵和输入乘数矩阵包括浮点矩阵,第一乘法矩阵和第二乘法矩阵包括整型矩阵。


10.一种矩阵乘法计算装置,其特征在于,包括:
量化模块,根据输入被乘数...

【专利技术属性】
技术研发人员:党博超王皓
申请(专利权)人:三星中国半导体有限公司三星电子株式会社
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1