[发明专利]一种矩阵乘向量运算方法及装置有效
申请号: | 201910534118.5 | 申请日: | 2017-08-31 |
公开(公告)号: | CN110231958B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 刘少礼;陈天石;王秉睿;张尧 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F17/16;G06N3/04 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 矩阵 向量 运算 方法 装置 | ||
1.一种矩阵乘向量运算方法,其特征在于,所述方法应用于芯片装置,所述芯片装置包括:主电路和多个从电路,主电路和多个从电路物理连接,所述芯片装置为单独的物理芯片或集成在其他芯片内;所述方法包括如下步骤:
所述主电路接收矩阵A、向量B以及矩阵乘向量运算指令,将所述矩阵A拆分成M个基础数据块,将M个基础数据块分发给所述多个从电路,将向量B分成多个部分广播数据块,将多个部分广播数据块通过多次广播至该多个从电路;
分发数据时,主电路向部分或者全部基础单元传输数据,各个接收数据的从电路收到的数据不同;
广播数据时,主电路向部分或者全部基础单元传输数据,各个接收数据的从电路收到相同的数据;
所述多个从电路并行执行基础数据块与部分广播数据块的内积运算得到多个部分处理结果,将多个部分处理结果发送至所述主电路;
所述主电路将所述多个部分处理结果拼接得到所述矩阵乘向量运算指令的计算结果。
2.根据权利要求1所述的方法,其特征在于,所述将M个基础数据块分发给所述多个从电路具体包括:
将所述M个基础数据块按任意不重复的方式分发给所述多个从处理电路。
3.根据权利要求1所述的方法,其特征在于,如所述多个从处理电路为k个从处理电路,所述k为大于等于2的整数;所述主电路将M个基础数据块分发给所述多个从电路具体包括:
如M>k,所述主电路将M个基础数据块中的一个或多个分发给k个从电路中的一个从电路;
如M≤k,所述主电路将M个基础数据块中的一个分发给k个从电路中的一个从电路。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述芯片装置还包括:分支电路,所述分支电路连接所述主电路与多个从电路,所述方法还包括:
所述分支电路转发所述主电路与多个从电路之间的数据。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述主电路包括:向量运算器电路、算数逻辑单元电路、累加器电路、矩阵转置电路、直接内存存取电路或数据重排电路中的一种或任意组合。
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述从电路包括:内积运算器电路或累加器电路等中一个或任意组合。
7.一种芯片装置,所述芯片装置包括:主电路和多个从电路,主电路和多个从电路物理连接,所述芯片装置为单独的物理芯片或集成在其他芯片内;
所述主电路,用于接收矩阵A、向量B以及矩阵乘向量运算指令,将所述矩阵A拆分成M个基础数据块,将M个基础数据块分发给所述多个从电路,将向量B分成多个部分广播数据块,将多个部分广播数据块通过多次广播至该多个从电路;
分发数据时,主电路向部分或者全部基础单元传输数据,各个接收数据的从电路收到的数据不同;
广播数据时,主电路向部分或者全部基础单元传输数据,各个接收数据的从电路收到相同的数据;
所述多个从电路,用于并行执行基础数据块与部分广播数据块的内积运算得到多个部分处理结果,将多个部分处理结果发送至所述主电路;
所述主电路,还用于将所述多个部分处理结果拼接得到所述矩阵乘向量运算指令的计算结果。
8.根据权利要求7所述的芯片装置,其特征在于,
所述主电路,具体用于将所述M个基础数据块按任意不重复的方式分发给所述多个从处理电路。
9.一种计算装置,其特征在于,所述计算装置包括如权利要求7-8任意一项所述的芯片装置。
10.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-6任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910534118.5/1.html,转载请声明来源钻瓜专利网。