[发明专利]矩阵乘法器有效
申请号: | 201711499179.X | 申请日: | 2017-12-29 |
公开(公告)号: | CN109992743B | 公开(公告)日: | 2020-06-16 |
发明(设计)人: | 刘虎;廖恒;屠嘉晋;袁宏辉;林灏勋;朱凡 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F17/16 | 分类号: | G06F17/16 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 矩阵 乘法器 | ||
1.一种矩阵乘法器,其特征在于,包括:
第一存储器,用于存储第一矩阵,所述第一矩阵为M*K矩阵;
第二存储器,用于存储第二矩阵,所述第二矩阵为K*N矩阵;
与所述第一存储器和所述第二存储器连接的运算电路,所述运算电路包括X行*Y列运算单元,每个运算单元包括向量乘法电路和加法电路,所述矩阵乘法电路用于接收所述第一存储器发送的行向量数据和第二存储器发送的列向量数据,并将两路向量相乘;所述加法电路用于对所述两路向量相乘的结果相加,以及对属于同一个运算单元的计算结果进行累加得到每个运算单元的运算结果;
与所述运算电路连接的控制器,所述控制器用于执行以下动作:
将所述第一矩阵以规模为X*L的子块为单位进行分块,得到S×R个相同大小的子块,其中,将所述S×R个子块的第s行第r列的子块记为Asr,s=(1、2、3、……S),r=(1、2、3、……R);
将所述第二矩阵以规模为L*Y的子块为单位进行分块,得到R×T个相同大小的子块,其中,将所述R×T个子块中的第r行第t列记为Brt,r=(1、2、3、……R),t=(1、2、3、……T);
所述控制器还用于执行以下动作:
将任意一个子块Asr的X个行向量中的第x行和对应的子块Brt的Y个列向量中的第y列,输入到所述X行*Y列运算单元中的第x行第y列的运算单元中进行运算,x=(1、2、3、……X),y=(1、2、3、……Y),其中,所述任意一个子块Asr中的r和所述对应的子块Brt中的r的取值相等。
2.如权利要求1所述的矩阵乘法器,其特征在于,所述控制器具体用于执行以下动作:
将任意一个子块Asr的X个行向量中的第x行和对应的子块Brt的Y个列向量中的第y列,在同一个时钟周期并行输入到所述X行*Y列运算单元中的第x行第y列的运算单元中进行运算。
3.如权利要求1或2所述的矩阵乘法器,其特征在于,
所述控制器还用于控制所述任意一个Asr的行向量按照x行号从小到大的顺序依次进入到所述X行*Y列运算单元对应的第x行,并且相邻行向量在进入到同一列不同行的运算单元的时间差为1个时钟周期;所述控制器还用于同时控制所述对应的子块Brt的列向量按照y列号从小到大的顺序依次进入到所述X行*Y列运算单元对应的第y行,并且相邻列向量在进入到同一行不同列的运算单元的时间差为1个时钟周期。
4.如权利要求1或2所述的矩阵乘法器,其特征在于,所述控制器还用于控制:
在至少两个连续的子块乘法计算周期内,所述s和r的取值不变,所述t的取值变化,以使得所述第一存储器在所述至少两个连续的子块乘法计算周期内复用同一个Asr,其中,所述子块乘法计算周期为所述X行*Y列运算单元计算完成一个子块Asr和对应的子块Brt的矩阵乘法运算所用的时间。
5.如权利要求1或2所述的矩阵乘法器,其特征在于,所述矩阵乘法器还包括与所述运算电路连接的第三存储器;
所述控制器用于控制,所述X行*Y列运算单元将向量乘法电路和加法电路的所述运算结果存储至所述第三存储器。
6.如权利要求5所述的矩阵乘法器,其特征在于,所述矩阵乘法器还包括,与所述第一存储器和所述第二存储器相连的第四存储器,以及,与所述第三存储器相连的第五存储器;
所述控制器还用于控制在计算第一矩阵和第二矩阵的乘法运算之前:
将所述第一矩阵和第二矩阵的数据源从所述第四存储器分别搬运至所述第一存储器和所述第二存储器;并将所述计算结果从第三存储器搬运至所述第五存储。
7.如权利要求1或2所述的矩阵乘法器,其特征在于,所述向量乘法电路包括L个乘法器;所述加法电路包括输入个数为(L+1)的加法树。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711499179.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信号处理方法及装置
- 下一篇:一种基于自适应近邻的矩阵补全方法