[发明专利]一种用于执行矩阵乘运算的装置和方法有效
申请号: | 201610266627.0 | 申请日: | 2016-04-26 |
公开(公告)号: | CN107315574B | 公开(公告)日: | 2021-01-01 |
发明(设计)人: | 张潇;刘少礼;陈天石;陈云霁 | 申请(专利权)人: | 安徽寒武纪信息科技有限公司 |
主分类号: | G06F9/302 | 分类号: | G06F9/302 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 周天宇 |
地址: | 231283 安徽省合肥市高新区习友路3333*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 矩阵 运算 装置 方法 | ||
1.一种用于执行矩阵乘运算的装置,其特征在于,包括:
控制单元,用于对矩阵运算指令进行译码,并控制矩阵运算指令的运算过程;
矩阵运算单元,与控制单元相连接;所述矩阵运算单元用于接收译码后的矩阵运算指令和输入矩阵,并用于根据译码后的矩阵运算指令,对输入矩阵进行矩阵乘运算操作:在所述矩阵运算指令为矩阵乘向量指令时,利用所述矩阵乘向量指令获取指令中五个操作域所对应的标量寄存器里的数据,包括输入向量地址、输入向量长度、输入矩阵地址、输出向量地址、输出向量长度;在所述矩阵运算指令为矩阵乘标量指令时,利用所述矩阵乘标量指令需要获取指令中四个操作域所对应的标量寄存器里的数据,包括输入矩阵地址、输入矩阵大小、输入标量、输出矩阵地址;
存储单元,用于存储矩阵运算指令相关的矩阵数据;
寄存器单元,用于存储矩阵运算指令相关的向量数据;
其中,所述矩阵运算单元为定制的硬件电路。
2.如权利要求1所述的装置,其特征在于,所述寄存器单元包括标量寄存器堆。
3.如权利要求1所述的装置,其特征在于,所述控制单元包括:
指令队列模块,用于对译码后的矩阵运算指令进行顺序存储,并获取矩阵运算指令相关的标量数据。
4.如权利要求1所述的装置,其特征在于,所述控制单元包括:
依赖关系处理单元,用于在矩阵运算单元获取当前矩阵运算指令前,判断当前矩阵运算指令与之前未执行完的矩阵运算指令是否存在依赖关系。
5.如权利要求1所述的装置,其特征在于,所述控制单元包括:
存储队列模块,用于在当前矩阵运算指令与之前未执行完的运算指令存在依赖关系时,暂时存储当前矩阵运算指令,并且在该依赖关系消除时,将暂存的矩阵运算指令送往矩阵运算单元。
6.如权利要求1-5任一项所述的装置,其特征在于,所述装置还包括:
指令缓存单元,用于存储待执行的矩阵运算指令;
输入输出单元,用于将矩阵运算指令相关的数据存储于存储单元,或者,从存储单元中获取矩阵运算指令的运算结果。
7.如权利要求1所述的装置,其特征在于,所述矩阵运算指令包括操作码和操作域;
所述操作码用于指示执行矩阵运算操作;
所述操作域包括立即数和/或寄存器号,指示矩阵运算相关的标量数据,其中寄存器号用于指向所述寄存器单元地址。
8.如权利要求1-5、7任一项所述的装置,其特征在于,所述存储单元包括高速暂存存储器。
9.如权利要求1-5、7任一项所述的装置,其特征在于,所述矩阵运算单元包括一个主运算模块和多个从运算模块,其中:
每个从运算模块均实现向量点积的运算,包括两向量的对位相乘以及对乘法结果的求和,每个从运算模块包括向量对位乘法模块、加法树模块以及累加模块,对位乘法模块完成两向量的对位相乘,加法树模块将对位相乘的结果向量加成一个数,累加模块将加法树的结果进行累加;以及
主运算模块包括向量对位乘法模块、加法树模块以及累加模块,对位乘法模块完成两向量的对位相乘,加法树模块将对位相乘的结果向量加成一个数,累加模块将加法树的结果进行累加。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽寒武纪信息科技有限公司,未经安徽寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610266627.0/1.html,转载请声明来源钻瓜专利网。