[发明专利]运算装置及方法有效
申请号: | 201811085786.6 | 申请日: | 2018-09-18 |
公开(公告)号: | CN109471612B | 公开(公告)日: | 2020-08-21 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F7/78 | 分类号: | G06F7/78 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 李佳 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 运算 装置 方法 | ||
本公开属于计算机领域,更具体地涉及一种运算装置及方法,所述运算装置,包括:运算控制模块,用于接收或确定分块信息;运算模块,用于根据所述分块信息对运算矩阵进行分块得到分块矩阵,以及根据运算指令对所述分块矩阵进行转置得到分块矩阵的转置矩阵。本公开提出的装置及方法,可以实现使用一条单独指令在常数时间复杂度内完成任意大小矩阵的运算。相比较传统的运算操作实现方法,在降低操作时间复杂度的同时也使运算操作的使用更为简单高效。
技术领域
本公开属于计算机技术领域,更具体地涉及一种运算装置及方法。
背景技术
矩阵转置运算是各领域中使用频率很高的一种基本数学运算。除普通的矩阵转置(即使矩阵行与列互换)之外,还有行转置、列转置、反转置、90°左翻转、90°右翻转等特殊的矩阵转置操作,在矩阵运算中也十分常用。当前阶段,使用计算机进行矩阵转置(包括非常规转置,以下均称转置)操作的通常方法为利用通用处理器编写两层循环进行不同地址上的数据交换,其时间复杂度为O(n^2)。这样时间复杂度的矩阵转置运算在复杂系统中会成为提高性能的瓶颈之一,尤其是在矩阵元素量很大的情况下。
发明内容
基于以上问题,本公开的目的在于提出一种运算装置及方法,用于解决以上技术问题的至少之一。
为了达到上述目的,作为本公开的一个方面,提供了一种运算装置,包括:
运算控制模块,用于接收或确定分块信息;
运算模块,用于根据所述分块信息对运算矩阵进行分块得到分块矩阵,以及根据运算指令对所述分块矩阵进行转置得到分块矩阵的转置矩阵。
在一些实施例中,所述运算模块还用于在分块、转置运算之后进行合并运算,将分块矩阵的转置矩阵进行合并得到所述运算矩阵的转置矩阵。
在一些实施例中,所述运算指令包括常规转置指令、行转置指令、列转置指令、反转置指令、90°左翻转转置指令、90°右翻转转置指令。
在一些实施例中,所述的运算装置还包括:
地址存储模块,用于存储所述运算矩阵的地址信息;以及
数据存储模块,用于存储所述运算矩阵,并存储运算后的转置矩阵;
其中,所述运算控制模块用于接收所述运算矩阵的地址信息和分块信息,或者用于从所述地址存储模块提取所述运算矩阵的地址信息,并根据所述运算矩阵的地址信息分析得到分块信息;
所述运算模块,用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,并对所述运算矩阵进行分块、转置及合并运算,得到所述运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块。
在一些实施例中,所述运算模块包括矩阵分块单元、矩阵运算单元和矩阵合并单元,其中:
矩阵分块单元,用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,并根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,根据所述分块信息对所述运算矩阵进行分块,得到n个分块矩阵;
矩阵运算单元,用于获取所述n个分块矩阵,并根据所述运算指令对所述n个分块矩阵进行转置运算,得到所述n个分块矩阵的转置矩阵;
矩阵合并单元,用于获取并合并所述n个分块矩阵的转置矩阵,得到所述运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块,其中,n为自然数;其中,所述矩阵合并单元根据所述运算指令获取的转置方式所对应的合并方式对所述n个分块矩阵的转置矩阵进行合并。
在一些实施例中,所述运算模块还包括缓存单元,用于缓存所述n个分块矩阵,以供所述矩阵运算单元获取。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811085786.6/2.html,转载请声明来源钻瓜专利网。