[发明专利]一种矩阵运算中转置、转置乘和相乘的方法在审

专利信息
申请号: 202310054131.7 申请日: 2023-02-03
公开(公告)号: CN116070072A 公开(公告)日: 2023-05-05
发明(设计)人: 龚文科;黄磊;应屹航;胡俊;王理想 申请(专利权)人: 杭州国芯科技股份有限公司
主分类号: G06F17/16 分类号: G06F17/16
代理公司: 杭州君度专利代理事务所(特殊普通合伙) 33240 代理人: 陈炜
地址: 310012 浙江省杭州市文*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 矩阵 运算 中转 转置乘 相乘 方法
【权利要求书】:

1.一种矩阵运算中转置、转置乘和相乘的方法,其特征在于:通过矩阵转置处理单元、矩阵转置乘处理单元、输出单元和两个中间缓存实现;其中:

矩阵转置处理单元,用于通过总线向外部储存单元获取要转置的输入数据,进行转置处理;

矩阵转置乘处理单元,用于通过总线向外部储存单元获取两个输入矩阵的数据,进行一个矩阵的转置乘另一个矩阵的处理;

输出单元,用于从中间缓存取出数据再通过总线写入外部存储单元;矩阵转置处理单元和矩阵转置乘处理单元共用一个输出单元;

中间缓存,用于存储处理过程中的数据;采用两个中间缓存,当输出单元使用一个中间缓存进行输出时,处理单元使用另一个中间缓存进行数据缓存;

矩阵转置方法具体如下:

步骤(1)将需要进行转置的Na行Ma列矩阵按照列分割成P个子矩阵,表示向上取整,L为划分长度;

步骤(2)将每个子矩阵按照行分割成Q个孙矩阵,对于子矩阵A1′,其孙矩阵

由此

步骤(3)矩阵转置处理单元首先通过总线从外部存储单元中读取孙矩阵A1,1中的第一行写入第一中间缓存的第一列,然后将第二行写入第一中间缓存的第二列,以此类推,将第L行写入第一中间缓存的第L列,完成孙矩阵A1,1的输入处理,输出单元将处理后孙矩阵通过总线写入外部存储单元;

步骤(4)矩阵转置处理单元通过总线从外部存储单元中读取孙矩阵A1,2中的第一行写入第二中间缓存的第一列,然后将第二行写入第二中间缓存的第二列,以此类推,将将第L行写入第二中间缓存的第L列,完成孙矩阵A1,2的输入处理,输出单元将处理后孙矩阵通过总线写入外部存储单元;

步骤(5)以此类推,完成子矩阵A1′的所有孙矩阵处理后,继续对子矩阵A2′的孙矩阵进行处理,最终得到转置矩阵

矩阵转置乘方法即H=BT×C,矩阵B的行数Nb与矩阵C的行数Nc相等,Nb=Nc=N;具体方法如下:

步骤(A)将矩阵按照步骤(1)方法分割成K个子矩阵,

将矩阵按照步骤(1)方法分割成G个子矩阵,

步骤(B)将子矩阵B1′与子矩阵C1′进行如下处理:

(B-1)矩阵转置乘处理单元首先通过总线从外部存储单元中读取子矩阵B1′的第一行和子矩阵C1′的第一行的数据;将子矩阵B1′的第一行第一列的数据b1,1与子矩阵C1′的第一行第一列的数据c1,1相乘,作为第一中间矩阵D1的第一行第一列数据,存入第一中间缓存;将子矩阵B1′的第一行第一列的数据b1,1与子矩阵C1′的第一行第二列的数据c1,2相乘,作为第一中间矩阵D1的第一行第二列数据,存入第一中间缓存;以此类推,得到第一中间矩阵D1的第一行数据;

将子矩阵B1′的第一行第二列的数据b1,2与子矩阵C1′的第一行第一列的数据c1,1相乘,作为第一中间矩阵D1的第二行第一列数据,存入第一中间缓存;将子矩阵B1′的第一行第二列的数据b1,2与子矩阵C1′的第一行第二列的数据c1,2相乘,作为第一中间矩阵D1的第二行第二列数据,存入第一中间缓存;以此类推,得到第一中间矩阵D1的第二行数据;

依次类推,得到中间矩阵其中

(B-2)矩阵转置乘处理单元通过总线从外部存储单元中读取子矩阵B1′的第二行和子矩阵C1′的第二行的数据;将子矩阵B1′的第二行第一列的数据b2,1与子矩阵C1′的第二行第一列的数据c2,1相乘,并加上第一中间矩阵D1的第一行第一列数据作为第二中间矩阵D2的第一行第一列数据,存入第一中间缓存;将子矩阵B1′的第二行第一列的数据b2,1与子矩阵C1′的第二行第二列的数据c2,2相乘,并加上第一中间矩阵D1的第一行第二列数据作为第二中间矩阵D2的第一行第二列数据,存入第一中间缓存;以此类推,得到第二中间矩阵D2的第一行数据;

将子矩阵B1′的第二行第二列的数据b2,2与子矩阵C1′的第二行第一列的数据c2,1相乘,并加上第一中间矩阵D1的第二行第一列数据作为第二中间矩阵D2的第二行第一列数据,存入第一中间缓存;将子矩阵B1′的第二行第二列的数据b2,2与子矩阵C1′的第二行第二列的数据c2,2相乘,并加上第一中间矩阵D1的第二行第二列数据作为第二中间矩阵D2的第二行第二列数据,存入第一中间缓存;以此类推,得到第二中间矩阵D2的第二行数据;

依次类推,得到第二中间矩阵

(B-3)矩阵转置乘处理单元通过总线从外部存储单元中读取子矩阵B1′的第三行和子矩阵C1′的第三行的数据;将子矩阵B1′的第三行第一列的数据b3,1与子矩阵C1′的第三行第一列的数据c3,1相乘,并加上第二中间矩阵D2的第一行第一列数据作为第三中间矩阵D3的第一行第一列数据,存入第一中间缓存;将子矩阵B1′的第三行第一列的数据b3,1与子矩阵C1′的第三行第二列的数据c3,2相乘,并加上第二中间矩阵D2的第一行第二列数据作为第三中间矩阵D3的第一行第二列数据,存入第一中间缓存;以此类推,得到第二中间矩阵D3的第一行数据;

将子矩阵B1′的第三行第二列的数据b3,2与子矩阵C1′的第三行第一列的数据c3,1相乘,并加上第二中间矩阵D2的第二行第一列数据作为第三中间矩阵D3的第二行第一列数据,存入第一中间缓存;将子矩阵B1′的第三行第二列的数据b3,2与子矩阵C1′的第三行第二列的数据c3,2相乘,并加上第二中间矩阵D2的第二行第二列数据作为第三中间矩阵D3的第二行第二列数据,存入第一中间缓存;以此类推,得到第三中间矩阵D3的第二行数据;

依次类推,得到第三中间矩阵

(B-4)依次类推,得到第N中间矩阵作为转置乘结果矩阵H的子矩阵D1,1,存入第一中间缓存;输出单元将子矩阵D1,1通过总线写入外部存储单元;

步骤(C)将子矩阵B1′与子矩阵C2′进行相同处理,得到转置乘结果矩阵H的子矩阵D1,2,存入第二中间缓存;输出单元将子矩阵D1,2通过总线写入外部存储单元;以此类推,将子矩阵B1′与子矩阵C′G进行相同处理得到子矩阵D1,G,依次存入第一或第二中间缓存;输出单元将子矩阵D1,G通过总线写入外部存储单元;

步骤(D)将子矩阵B1′替换为子矩阵B2′,重复步骤(B)和(C)操作,得到转置乘结果矩阵H的子矩阵D2,1,D2,2,…,D2,G;以此类推,得到转置乘结果矩阵H的子矩阵DK,1,DK,2,…,DK,G;由此,外部存储单元得到转置乘结果矩阵

矩阵相乘方法即S=E×F,矩阵E的列数与矩阵F的行数相等;首先按照矩阵转置方法,获得矩阵E的转置矩阵ET;然后矩阵转置乘处理单元通过总线从外部存储单元中读取转置矩阵ET和矩阵F,按照矩阵转置乘方法,获得乘结果矩阵S=(ET)T×F=E×F。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州国芯科技股份有限公司,未经杭州国芯科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202310054131.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top