[发明专利]一种向量计算装置及运算方法有效
申请号: | 201610039216.8 | 申请日: | 2016-01-20 |
公开(公告)号: | CN106990940B | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 陈天石;张潇;刘少礼;陈云霁 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 宋焰琴 |
地址: | 100190 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 向量 计算 装置 运算 方法 | ||
本披露提供了一种向量计算装置和计算方法,其中向量计算装置包括存储单元和向量运算单元,存储单元中存储有向量,向量运算单元根据向量运算指令获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行向量运算,得到向量运算结果。本披露将参与计算的向量数据暂存在高速暂存存储器上,使得向量运算过程中可以更加灵活有效地支持不同宽度的数据,提升包含大量向量计算任务的执行性能。
技术领域
本披露涉及一种向量运算装置和方法,用于根据向量运算指令执行向量运算,能够很好地解决当前计算机领域越来越多的算法包含大量向量运算的问题。
背景技术
当前计算机领域有越来越多的算法涉及到向量运算,以人工神经网络算法为例,多种神经网络算法中都含有大量的向量运算。在神经网络中,输出神经元的运算表达式为y=f(wx+b),其中w是矩阵,x、b是向量,计算输出向量y的过程为矩阵w与向量x相乘,加上向量b,然后对得到的向量进行激活函数运算(即对向量中的每个元素进行激活函数运算)。因此,向量运算成为目前各种计算装置在设计之初都需要考虑的一个重要问题。
在现有技术中,一种进行向量运算的已知方案是使用通用处理器,该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行向量运算。然而,该方法的缺点之一是单个通用处理器多用于标量计算,在进行向量运算时运算性能较低。而使用多个通用处理器并行执行时,通用处理器之间的相互通讯又有可能成为性能瓶颈。
在另一种现有技术中,使用图形处理器(GPU)来进行向量计算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行向量运算。然而,上述方案中,GPU片上缓存太小,在进行大规模向量运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。
在另一种现有技术中,使用专门定制的向量运算装置来进行向量计算,其中,使用定制的寄存器堆和定制的处理单元进行向量运算。然而,目前已有的专用向量运算装置受限于寄存器堆,不能够灵活地支持不同长度的向量运算。
发明内容
(一)要解决的技术问题
本披露的目的在于,提供一种向量运算装置,解决现有技术中存在的受限于片间通讯、片上缓存不够、支持的向量长度不够灵活等问题。
(二)技术方案
本披露提供一种向量运算装置,用于根据向量运算指令执行向量运算,包括:
存储单元,用于存储向量;
向量运算单元,用于获取向量运算指令,根据向量运算指令在所述寄存器单元中获取向量地址,然后,根据该向量地址在存储单元中获取相应的向量,接着,根据获取的向量进行向量运算,得到向量运算结果。
进一步的,还包括:寄存器单元,用于存储向量地址,其中,所述向量地址为向量在所述存储单元中存储的地址。
进一步的,还包括:指令缓存单元,用于存储待执行的向量运算指令。
进一步的,还包括:指令处理单元,用于从所述指令缓存单元获取向量运算指令,并对该向量运算指令进行处理后,提供给所述向量运算单元。
进一步的,所述指令处理单元包括:取指模块,用于从所述指令缓存单元中获取向量运算指令;译码模块,用于对获取的向量运算指令进行译码;指令队列,用于对译码后的向量运算指令进行顺序存储。
进一步的,还包括:依赖关系处理单元,用于在所述向量运算单元获取向量运算指令前,判断该向量运算指令与前一向量运算指令是否访问相同的向量,若是,则等待前一向量运算指令执行完毕后,将该向量运算指令提供给所述向量运算单元;否则,直接将该向量运算指令提供给所述向量运算单元。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610039216.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:修改数据处理单元的行为
- 下一篇:使用寄存器重命名处理移动指令