[发明专利]一种矩阵类乘法向量化计算方法在审
申请号: | 202111492029.2 | 申请日: | 2021-12-08 |
公开(公告)号: | CN114168901A | 公开(公告)日: | 2022-03-11 |
发明(设计)人: | 谢春虎;周海斌 | 申请(专利权)人: | 江苏华创微系统有限公司;中国电子科技集团公司第十四研究所 |
主分类号: | G06F17/16 | 分类号: | G06F17/16;G06F15/80 |
代理公司: | 南京擎天知识产权代理事务所(普通合伙) 32465 | 代理人: | 涂春春 |
地址: | 211899 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 矩阵 乘法 量化 计算方法 | ||
本发明公开一种矩阵类乘法向量化计算方法,包括如下步骤:S1、扩展矩阵得到NX;S2、划分子矩阵;S3、判断列循环变量ni是否小于nn,若不是,转至S6;反之若是,更新输出矩阵NR子矩阵每行地址;S4、判断mi行循环变量是否小于nm(minm),若不是,更新列循环变量ni+=s,转至S3;若是,更新输入矩阵NA、NB子矩阵每行地址;S5、循环更新子矩阵向量化计算;S6、将NR矩阵前m行n列元素拷贝到R结果矩阵。优点:本发明方法,本发明方法能够充分发挥芯片向量处理单元SIMD并行计算能力及高带宽向量数据访存的能力,实现对矩阵类乘法进行完全向量化设计。
技术领域
本发明涉及一种矩阵类乘法向量化计算方法,属于数字信号处理-DSP技术领域。
背景技术
目前,现代矩阵类乘法通常采用向量寄存器按照矩阵乘法定义来实现向量化设计以提高性能,但还存在以下几点不足制约性能提升:一是根据定义需要将B矩阵转置时增加额外性能开销;二是未全部实现向量化,性能仍有优化空间;三是矩阵行数、列数不能整倍分成规整s*s(向量寄存器位宽为w,矩阵每个元素所占字节数为u,向量寄存器存储数据个数为s)子矩阵后逐点计算性能不佳问题。
发明内容
本发明提出一种矩阵类乘法向量化计算方法,采取的技术方案为:
一种矩阵类乘法向量化计算方法,包括如下步骤:
设:两个输入矩阵分别标记为矩阵A和矩阵B,一个输出矩阵标记为矩阵R,矩阵A、矩阵B和矩阵R的规模分别为m*p、p*n和m*n阶,矩阵A、矩阵B和矩阵R的首地址分别标记为A00、B00和R00,矩阵A、矩阵B和矩阵R的阵列步长分别标记为jumpA、jumpB和jumpR;对矩阵A、矩阵B和矩阵R扩展补零后的矩阵分别标记为矩阵NA、矩阵NB和矩阵NR,矩阵NA、矩阵NB和矩阵NR的首地址分别标记为NA00、NB00和NR00;矩阵NA、矩阵NB和矩阵NR的阵列步长分别标记为jumpNA、jumpNB和jumpNR;矩阵A、矩阵B、矩阵R、矩阵NA、矩阵NB和矩阵NR的矩阵元素均为u字节;向量寄存器位宽为w,向量寄存器存储数据个数为s(s=w/u);所有矩阵行步长均为1;
S1、扩展矩阵得到NX,初始化ni=0;
S2、划分子矩阵;
S3、判断列循环变量ni是否小于nn(ninn),若不是,转至S6;反之若是,更新输出矩阵NR子矩阵每行地址:
Rk=NR00+ni+jumpNR*k,k=0~s-1,初始化mi=0,结果矩阵地址偏移变量offsetR=0;
S4、判断mi行循环变量是否小于nm(minm),若不是,更新列循环变量ni+=s,转至S3;若是,更新输入矩阵NA、NB子矩阵每行地址:
Ak=NA00+jumpNA*(mi+k),k=0~s-1
Bk=NB00+ni+jumpNB*k,k=0~s-1
初始化s个子矩阵向量寄存器为零(vecRk=0),初始化元素变量pi=0、输入A矩阵地址偏移变量offsetA=0、输入A矩阵地址偏移变量offsetB=0;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏华创微系统有限公司;中国电子科技集团公司第十四研究所,未经江苏华创微系统有限公司;中国电子科技集团公司第十四研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111492029.2/2.html,转载请声明来源钻瓜专利网。