运算装置和方法制造方法及图纸

技术编号:20364561 阅读:27 留言:0更新日期:2019-02-16 17:17
本公开提供了一种运算装置,包括:运算控制模块,用于确定分块信息;运算模块,用于根据所述分块信息对运算矩阵进行分块、转置及合并运算,以得到所述运算矩阵的转置矩阵。本公开还提供了一种运算方法。本公开运算装置及方法,减小了存储资源和计算资源的开销,提高了运算速度。

【技术实现步骤摘要】
运算装置和方法本公开是申请号为201880001242.9中国专利的分案申请,母案专利的内容皆引用于此。
本公开涉及人工智能
,更具体地涉及一种运算装置和方法。
技术介绍
多层神经网络被广泛应用于分类识别等任务,近年来,由于其较高的识别率和较高的可并行性,受到学术界和工业界的广泛关注。目前一些性能较好的神经网络通常都非常庞大,这也意味着这些神经网络需要大量的计算资源和存储资源。大量的计算和存储资源的开销会降低神经网络的运算速度,同时,对硬件的传输带宽以及运算器的要求也大大提高。
技术实现思路
(一)要解决的技术问题本公开提供了一种运算装置和方法,以至少部分解决以上所提出的技术问题。(二)技术方案根据本公开的一个方面,提供了一种运算装置,包括:运算控制模块,用于确定分块信息;运算模块,用于根据所述分块信息对运算矩阵进行分块、转置及合并运算,以得到所述运算矩阵的转置矩阵。在一些实施例中,所述的运算装置,还包括:地址存储模块,用于存储所述运算矩阵的地址信息;以及数据存储模块,用于存储所述运算矩阵,并存储运算后的转置矩阵;其中,所述运算控制模块用于从所述地址存储模块提取所述运算矩阵的地址信息,并根据所述运算矩阵的地址信息分析得到分块信息;所述运算模块,用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,并根据所述分块信息对所述运算矩阵进行分块、转置及合并运算,得到所述运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块。在一些实施例中,所述运算模块包括矩阵分块单元、矩阵运算单元和矩阵合并单元,其中:矩阵分块单元:用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,并根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,根据所述分块信息对所述运算矩阵进行分块,得到n个分块矩阵;矩阵运算单元,用于获取所述n个分块矩阵,并对所述n个分块矩阵进行转置运算,得到所述n个分块矩阵的转置矩阵;矩阵合并单元,用于获取并合并所述n个分块矩阵的转置矩阵,得到所述运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块,其中,n为自然数。在一些实施例中,所述运算模块还包括缓存单元,用于缓存所述n个分块矩阵,以供所述矩阵运算单元获取。在一些实施例中,所述运算控制模块包括指令处理单元、指令缓存单元和矩阵判断单元,其中:指令缓存单元,用于存储待执行的矩阵运算指令;指令处理单元,用于从指令缓存单元中获取矩阵运算指令,对所述矩阵运算指令进行译码,并根据所述译码后的矩阵运算指令从所述地址存储模块中获取运算矩阵的地址信息;矩阵判断单元,用于对所述运算矩阵的地址信息进行分析,得到所述分块信息。在一些实施例中,所述运算控制模块还包括依赖关系处理单元,用于判断所述译码后的矩阵运算指令和运算矩阵的地址信息是否与上一运算存在冲突,若存在冲突,则暂存所述译码后的矩阵运算指令和运算矩阵的地址信息;若不存在冲突,则发射所述译码后的矩阵运算指令和运算矩阵的地址信息至所述矩阵判断单元。在一些实施例中,所述运算控制模块还包括指令队列存储器,用于缓存所述存在冲突的译码后的矩阵运算指令和运算矩阵的地址信息,当所述冲突消除后,将缓存的所述译码后的矩阵运算指令和运算矩阵的地址信息发射至所述矩阵判断单元。在一些实施例中,所述指令处理单元包括取指单元和译码单元,其中:取指单元,用于从所述指令缓存单元中获取矩阵运算指令,并将此矩阵运算指令传输至所述译码单元;译码单元,用于对所述矩阵运算指令进行译码,根据该译码后的矩阵运算指令从所述地址存储模块中提取运算矩阵的地址信息,并将所述译码后的矩阵运算指令和提取的运算矩阵的地址信息传输至所述依赖关系处理单元。在一些实施例中,所述装置还包括输入输出模块,用于向所述数据存储模块输入所述运算矩阵数据,还用于从所述数据存储模块获取运算后的转置矩阵,并输出所述运算后的转置矩阵。在一些实施例中,所述地址存储模块包括标量寄存器堆或通用内存单元;所述数据存储模块包括高速暂存存储器或通用内存单元;所述运算矩阵的地址信息为矩阵的起始地址信息和矩阵大小信息。根据本公开的另一个方面,提供了一种运算方法,包括以下步骤:运算控制模块确定分块信息;运算模块根据所述分块信息对运算矩阵进行分块、转置及合并运算,以得到所述运算矩阵的转置矩阵。在一些实施例中,所述运算控制模块确定分块信息的步骤包括:运算控制模块从地址存储模块提取运算矩阵的地址信息;以及运算控制模块根据所述运算矩阵的地址信息得到分块信息。在一些实施例中,所述运算控制模块从地址存储模块提取运算矩阵的地址信息的步骤包括:取指单元提取运算指令,并将运算指令送至译码单元;译码单元对运算指令进行译码,根据译码后的运算指令从地址存储模块获取运算矩阵的地址信息,并将译码后的运算指令和运算矩阵的地址信息送往依赖关系处理单元;依赖关系处理单元分析该译码后的运算指令与前面的尚未执行结束的指令在数据上是否存在依赖关系;若存在依赖关系,这条译码后的运算指令与相应的运算矩阵的地址信息需要在指令队列存储器中等待至其与前面的未执行结束的指令在数据上不再存在依赖关系为止。在一些实施例中,所述运算模块根据所述分块信息对运算矩阵进行分块、转置及合并运算,以得到所述运算矩阵的转置矩阵的步骤包括:运算模块根据所述运算矩阵的地址信息从数据存储模块提取运算矩阵;并根据所述分块信息将所述运算矩阵分成n个分块矩阵;运算模块对所述n个分块矩阵分别进行转置运算,得到所述n个分块矩阵的转置矩阵;以及运算模块合并所述n个分块矩阵的转置矩阵,得到所述运算矩阵的转置矩阵并反馈至所述数据存储模块;其中,n为自然数。在一些实施例中,所述运算模块合并n个分块矩阵的转置矩阵,得到运算矩阵的转置矩阵,并将该转置矩阵反馈给数据存储模块的步骤包括:矩阵合并单元接收每个分块矩阵的转置矩阵,当接收到的分块矩阵的转置矩阵数量达到总的分块数后,对所有的分块进行矩阵合并操作,得到运算矩阵的转置矩阵;并将该转置矩阵反馈至数据存储模块的指定地址;输入输出模块直接访问数据存储模块,从数据存储模块中读取运算得到的运算矩阵的转置矩阵。(三)有益效果从上述技术方案可以看出,本公开运算装置和方法至少具有以下有益效果其中之一:(1)利用幂次数据表示方法存储神经元数据,减小存储网络数据所需的存储空间,同时,该数据表示方法简化了神经元与权值数据的乘法操作,降低了对运算器的设计要求,加快的神经网络的运算速度。(2)将运算后得到的神经元数据转换为幂次神经元数据,减小了神经网络存储资源和计算资源的开销,有利于提高神经网络的运算速度。(3)对于非幂次神经元数据在输入到神经网络运算装置前可先经过幂次转换,再输入神经网络运算装置,进一步减小了神经网络存储资源和计算资源的开销,提高了神经网络的运算速度。(4)本公开的数据筛选装置和方法将参与筛选操作的数据和指令暂存在专用缓存上,可以更加高效地对不同存储结构、不同大小的数据进行数据筛选操作。(5)采用异构内核进行神经网络运算,可以根据实际神经网络的类型和规模选用不同的内核进行运算,充分利用硬件实际的运算能力,降低成本,减少功耗开销。(6)不同的内核进行不同层的运算,不同本文档来自技高网...

【技术保护点】
1.一种运算装置,包括:运算控制模块,用于确定分块信息;运算模块,用于根据所述分块信息对运算矩阵进行分块、转置及合并运算,以得到所述运算矩阵的转置矩阵。

【技术特征摘要】
2017.04.06 CN 2017102222325;2017.04.07 CN 201710221.一种运算装置,包括:运算控制模块,用于确定分块信息;运算模块,用于根据所述分块信息对运算矩阵进行分块、转置及合并运算,以得到所述运算矩阵的转置矩阵。2.根据权利要求1所述的运算装置,还包括:地址存储模块,用于存储所述运算矩阵的地址信息;以及数据存储模块,用于存储所述运算矩阵,并存储运算后的转置矩阵;其中,所述运算控制模块用于从所述地址存储模块提取所述运算矩阵的地址信息,并根据所述运算矩阵的地址信息分析得到分块信息;所述运算模块,用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,并根据所述分块信息对所述运算矩阵进行分块、转置及合并运算,得到所述运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块。3.根据权利要求1或2所述的运算装置,其中,所述运算模块包括矩阵分块单元、矩阵运算单元和矩阵合并单元,其中:矩阵分块单元:用于从所述运算控制模块获取运算矩阵的地址信息及分块信息,并根据所述运算矩阵的地址信息从所述数据存储模块提取运算矩阵,根据所述分块信息对所述运算矩阵进行分块,得到n个分块矩阵;矩阵运算单元,用于获取所述n个分块矩阵,并对所述n个分块矩阵进行转置运算,得到所述n个分块矩阵的转置矩阵;矩阵合并单元,用于获取并合并所述n个分块矩阵的转置矩阵,得到所述运算矩阵的转置矩阵,并将所述运算矩阵的转置矩阵反馈至所述数据存储模块,其中,n为自然数。4.根据权利要求3所述的运算装置,其中,所述运算模块还包括缓存单元,用于缓存所述n个分块矩阵,以供所述矩阵运算单元获取。5.根据权利要求2至4中任一项所述的运算装置,其中,所述运算控制模块包括指令处理单元、指令缓存单元和矩阵判断单元,其中:指令缓存单元,用于存储待执行的矩阵运算指令;指令处理单元,用于从指令缓存单元中获取矩阵运算指令,对所述矩阵运算指令进行译码,并根据所述译码后的矩阵运算指令从所述地址存储模块中获取运算矩阵的地址信息;矩阵判断单元,用于对所述运算矩阵的地址信息进行分析,得到所述分块信息。6.根据权利要求5所述的运算装置,其中,所述运算控制模块还包括依赖关系处理单元,用于判断所述译码后的矩阵运算指令和运算矩阵的地址信息是否与上一运算存在冲突,若存在冲突,则暂存所述译码后的矩阵运算指令和运算矩阵的地址信息;若不存在冲突,则发射所述译码后的矩阵运算指令和运算矩阵的地址信息至所述矩阵判断单元。7.根据权利要求6所述的运算装置,其中,所述运算控制模块还包括指令队列存储器,用于缓存所述存在冲突的译码后的矩阵运算指令和运算矩阵的地址信息,当所述冲突消除后,将缓存的所述译码后的矩阵运算指令和运算矩阵的地址信息发射至所述矩阵判断单元。8.根据权利要求5至7中任一项所述...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1