[发明专利]一种用于执行矩阵加/减运算的装置和方法在审
申请号: | 202010612191.2 | 申请日: | 2016-04-26 |
公开(公告)号: | CN111857820A | 公开(公告)日: | 2020-10-30 |
发明(设计)人: | 张潇;刘少礼;陈天石;陈云霁 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F17/16 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 执行 矩阵 运算 装置 方法 | ||
本公开提供了一种用于执行矩阵加减运算的装置,其特征在于,包括:存储单元,用于存储矩阵运算指令相关的矩阵数据;寄存器单元,用于存储矩阵运算指令相关的标量数据;控制单元,用于对矩阵运算指令进行译码,并控制矩阵运算指令的运算过程;矩阵运算单元,用于根据译码后的矩阵运算指令,对输入矩阵进行矩阵加减运算操作;其中,所述矩阵运算单元为定制的硬件电路。本公开还提供了一种执行矩阵加减法运算的方法。
技术领域
本公开涉及计算机领域,尤其涉及一种用于执行矩阵加减法运算的装置和方法。
背景技术
当前计算机领域,伴随着大数据、机器学习等新兴技术的成熟,越来越多的任务中包含了各种各样的矩阵加减法运算,尤其是大矩阵的加减法运算,这些往往成为算法速度和效果提高的瓶颈。、
在现有技术中,一种进行矩阵加减法运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行矩阵加减法运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行矩阵运算时运算性能较低。而使用多个通用处理器并行执行时,处理器的个数较少提升的效果不做够显著;处理器个数较高时它们之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行一系列矩阵加减法运算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行运算。但在上述方案中,GPU片上缓存太小,在进行大规模矩阵运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
在另一种现有技术中,使用专门定制的矩阵运算装置来进行矩阵加减法运算,其中,使用定制的寄存器堆和定制的处理单元进行矩阵运算。然而根据这种方法,目前已有的专用矩阵运算装置受限于寄存器堆的设计,不能够灵活地支持不同长度的矩阵加减法运算。
综上所述,现有的不管是片上多核通用处理器、片间互联通用处理器(单核或多核)、还是片间互联图形处理器都无法进行高效的矩阵加减法运算,并且这些现有技术在处理矩阵加减法运算问题时存在着代码量大,受限于片间通讯,片上缓存不够,支持的矩阵规模不够灵活等问题。
发明内容
基于此,本公开提供了一种执行矩阵加减法运算的装置和方法。
根据本公开一方面,提供了一种用于执行矩阵加减运算的装置,,包括:
存储单元,用于存储矩阵运算指令相关的矩阵数据;
寄存器单元,用于存储矩阵运算指令相关的标量数据;
控制单元,用于对矩阵运算指令进行译码,并控制矩阵运算指令的运算过程;
矩阵运算单元,用于根据译码后的矩阵运算指令,对输入矩阵进行矩阵加减运算操作;
其中,所述矩阵运算单元为定制的硬件电路。
根据本公开另一方面,提供了一种用于执行矩阵加减法运算的装置,,包括:
取指模块,用于从指令序列中取出下一条要执行的矩阵运算指令,并将该矩阵运算指令传给译码模块;
译码模块,用于对该矩阵运算指令进行译码,并将译码后的矩阵运算指令传送给指令队列模块;
指令队列模块,用于暂存译码后的矩阵运算指令,并从矩阵运算指令或标量寄存器获得矩阵运算指令运算相关的标量数据;获得所述标量数据后,将所述矩阵运算指令送至依赖关系处理单元;
标量寄存器堆,包括多个标量寄存器,用于存储矩阵运算指令相关的标量数据;
依赖关系处理单元,用于判断所述矩阵运算指令与之前未执行完的运算指令之间是否存在依赖关系;如果存在依赖关系,则将所述矩阵运算指令送至存储队列模块,如果不存在依赖关系,则将所述矩阵运算指令送至矩阵运算单元;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010612191.2/2.html,转载请声明来源钻瓜专利网。