[发明专利]运算方法、处理器及相关产品在审
| 申请号: | 202010318380.9 | 申请日: | 2020-04-21 |
| 公开(公告)号: | CN113536220A | 公开(公告)日: | 2021-10-22 |
| 发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
| 主分类号: | G06F17/16 | 分类号: | G06F17/16 |
| 代理公司: | 北京林达刘知识产权代理事务所(普通合伙) 11277 | 代理人: | 刘新宇 |
| 地址: | 100191 北京市海淀区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 运算 方法 处理器 相关 产品 | ||
1.一种基于处理元件矩阵的矩阵乘的运算方法,其特征在于,应用于处理器,所述处理器包括两个以上处理元件,所述两个以上处理元件以二维矩阵排列,处理元件包括至少一个寄存器,所述方法实现对第一矩阵和第二矩阵的矩阵乘法运算,所述方法包括:
对第一矩阵和第二矩阵进行预处理得到第三矩阵和第四矩阵,其中,第三矩阵和第四矩阵对应位置的元素存储在同一处理元件的寄存器中,第三矩阵和第四矩阵都为p×p矩阵,p=max(m,k,n),m表示第一矩阵的行秩,n表示第二矩阵的列秩,第一矩阵的列秩和第二矩阵的行秩为k,p为m、k、n三者中的最大值;
对第三矩阵和第四矩阵在行方向或者列方向进行滚动,控制处理元件对相应的寄存器内的元素进行乘法运算得到元素乘积矩阵;
根据对第一矩阵和第二矩阵预处理的方式对元素乘积矩阵进行处理得到第一矩阵和第二矩阵的乘积。
2.根据权利要求1所述的方法,其特征在于,对第三矩阵和第四矩阵在行方向或者列方向进行滚动,控制处理元件对相应的寄存器内的元素进行乘法运算得到元素乘积矩阵,包括:控制处理元件对相应的寄存器内的元素进行乘法运算得到第一元素乘积矩阵;
重复p-1次以下过程:将第三矩阵整体向左滚动一次、将第四矩阵整体向上滚动一次,或者,将第三矩阵整体向右滚动一次、将第四矩阵整体向下滚动一次,控制处理元件对相应的寄存器内的元素进行乘法运算得到第二元素乘积矩阵。
3.根据权利要求2所述的方法,其特征在于,根据对第一矩阵和第二矩阵预处理的方式对元素乘积矩阵进行处理得到第一矩阵和第二矩阵的乘积,包括:将第一元素乘积矩阵和第二元素乘积矩阵求和得到第五矩阵;
根据对第一矩阵和第二矩阵预处理的方式对第五矩阵进行处理得到第一矩阵和第二矩阵的乘积。
4.根据权利要求1所述的方法,其特征在于,所述对第一矩阵和第二矩阵进行预处理得到第三矩阵和第四矩阵,包括第一预处理和第二预处理,
其中,所述第一预处理指:采用0扩充第一矩阵和第二矩阵的右侧和/或下侧得到p×p矩阵;
所述第二预处理指:对扩充后的p×p矩阵中的元素进行滚动。
5.根据权利要求4所述的方法,其特征在于,
对于将第三矩阵整体向左滚动、将第四矩阵整体向上滚动的方式,对应的第二预处理的过程为:将扩充后的第一矩阵的第i行向左滚动i步,将扩充后的第二矩阵的第j列向上滚动j步,其中i、j为自然数,且0≤i≤p-1,0≤j≤p-1。
6.根据权利要求4所述的方法,其特征在于,
对于将第三矩阵整体向右滚动、将第四矩阵整体向下滚动的方式,对应的第二预处理的过程为:将扩充后的第一矩阵的第i行向左滚动i-1步,将扩充后的第二矩阵的第j列向上滚动j-1步。
7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:
根据处理元件的排列以及输入矩阵的行秩以及列秩确定是否对输入矩阵进行分块,其中,输入矩阵包括左乘矩阵和右乘矩阵;
若要对左乘矩阵进行分块,根据处理元件的排列对左乘矩阵的行进行拆分,若要对右乘矩阵进行分块,根据处理元件的排列对右乘矩阵的列进行拆分;
若要对输入矩阵中的两个矩阵都进行分块,根据处理元件的排列以及输入矩阵的行秩和列秩对左乘矩阵列方向和右乘矩阵行方向以相同的方式进行分块;
对左乘矩阵分块后得到两个以上所述第一矩阵,对右乘矩阵分块后得到两个以上所述第二矩阵,或者,对左乘矩阵分块后得到两个以上所述第二矩阵,对右乘矩阵分块后得到两个以上所述第一矩阵。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010318380.9/1.html,转载请声明来源钻瓜专利网。





