The invention provides a seed matrix operation device and method, device comprises a storage unit, register unit and sub matrix arithmetic unit, stored in the storage unit with sub matrix data stored in a register unit sub matrix information, sub matrix arithmetic unit according to the matrix operation instruction fetch sub matrix information in the register units and then, according to the the sub matrix information acquisition sub matrix data in the corresponding storage unit then, according to the data of the sub sub matrix matrix operations, matrix calculation results obtained. The invention will participate in the sub matrix data calculation is temporarily stored in the scratchpad memory, which can support different width more flexibly and effectively sub matrix in the process of operation data, performance upgrade contains a large number of sub matrix calculation task.
【技术实现步骤摘要】
一种子矩阵运算装置及方法
本专利技术属于计算机领域,尤其涉及一种子矩阵运算装置及方法,用于根据子矩阵运算指令从矩阵数据中获取子矩阵数据,并根据该子矩阵数据执行子矩阵运算。
技术介绍
当前计算机领域有越来越多的算法涉及到矩阵运算,包括人工神经网络算法和图形的渲染算法。与此同时,作为矩阵运算中的一个重要组成部分,子矩阵运算也越来越频繁的出现在各种计算任务中。所以对于那些面向解决矩阵运算问题的方案,必须同时考虑子矩阵运算实现的效率和难度。在现有技术中一种进行子矩阵运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行子矩阵运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行子矩阵运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈,同时,实现子矩阵运算的代码量也大于正常的矩阵运算。在另一种现有技术中,使用图形处理器(GPU)来进行子矩阵计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行子矩阵运算。然而,上述方案中,GPU片上缓存太小,在进行大规模子矩阵 ...
【技术保护点】
一种子矩阵运算装置,用于根据子矩阵运算指令从矩阵数据中获取子矩阵数据,并根据该子矩阵数据执行子矩阵运算,其特征在于,装置包括:存储单元,用于存储矩阵数据;寄存器单元,用于存储子矩阵信息;子矩阵运算单元,用于获取子矩阵运算指令,并根据该子矩阵运算指令从所述寄存器单元中获取子矩阵信息,然后,根据该子矩阵信息在所述存储单元中的矩阵数据中获取子矩阵数据,接着,根据获取的子矩阵数据进行子矩阵运算,得到子矩阵运算结果。
【技术特征摘要】
1.一种子矩阵运算装置,用于根据子矩阵运算指令从矩阵数据中获取子矩阵数据,并根据该子矩阵数据执行子矩阵运算,其特征在于,装置包括:存储单元,用于存储矩阵数据;寄存器单元,用于存储子矩阵信息;子矩阵运算单元,用于获取子矩阵运算指令,并根据该子矩阵运算指令从所述寄存器单元中获取子矩阵信息,然后,根据该子矩阵信息在所述存储单元中的矩阵数据中获取子矩阵数据,接着,根据获取的子矩阵数据进行子矩阵运算,得到子矩阵运算结果。2.根据权利要求1所述的子矩阵运算装置,其特征在于,所述子矩阵运算指令包括一操作码和至少一操作域,其中,所述操作码用于指示该子矩阵运算指令的功能,操作域用于指示该子矩阵运算指令的数据信息。3.根据权利要求2所述的子矩阵运算装置,其特征在于,所述数据信息为寄存器单元的编号,所述子矩阵运算单元根据寄存器单元的编号访问对应的寄存器单元,从而获取子矩阵信息。4.根据权利要求1所述的子矩阵运算装置,其特征在于,所述子矩阵信息包括子矩阵数据在所述存储单元中的起始地址、子矩阵数据的行宽、子矩阵数据的列宽、以及行间隔,其中,行间隔是指子矩阵数据相邻两行间,上一行的行末数据到下一行的行首数据的数据间隔。5.根据权利要求1所述的子矩阵运算装置,其特征在于,还包括:指令处理单元,用于获取子矩阵运算指令,并对该子矩阵运算指令进行处理后,提供给所述子矩阵运算单元。6.根据权利要求5所述的子矩阵运算装置,其特征在于,所述指令处理单元包括:取指模块,用于获取子矩阵运算指令;译码模块,用于对获取的子矩阵运算指令进行译码;指令队列,用于对译码后的子矩阵运算指令进行顺序存储;依赖关系处理单元,用于在所述子矩阵运算单元获取子矩阵运算指令前,判断该子矩阵运算指令与前一子矩阵运算指令是否访问相同的子矩阵数据,若是,则将该子矩阵运算指令存储在所述存储队列中,等待前一子矩阵运算指令执行完毕后,再将所述存储队列中的该子矩阵运算指令提供给所述子矩阵运算单元,否则,直接将该子矩阵运算指令提供给所述子矩阵运算单元。7.根据权利要求1所述的子矩阵运算装置,其特征在于,所述存储单元还用于存储所述子矩阵运算结果。8.根据权利要求7所述的子矩阵运算装置,其特征在于,还包括:输入输出单元,用于将矩阵数据存储于所述存储单元,或者,从所述存储单元中获取子矩阵运算结果。9.根据权利要求1所述的子矩阵运算装置,其特征在于,所述存储单元为高速暂存存储器。10.根据权利要求1所述的子矩阵运算装置,其特征在于,所述子矩阵运算单元包括子矩阵加法部件...
【专利技术属性】
技术研发人员:刘少礼,张潇,陈云霁,陈天石,
申请(专利权)人:北京中科寒武纪科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。