一种用于执行向量超越函数运算的装置和方法制造方法及图纸

技术编号:16499492 阅读:19 留言:0更新日期:2017-11-04 11:07
本发明专利技术公开了一种用于执行向量超越函数运算装置和方法,该装置包括:存储单元,存储向量运算指令相关的向量数据;寄存器单元,用于存储向量运算指令相关的标量数据;控制单元,用于对向量运算指令进行译码,并控制向量运算指令的运算过程;超越函数计算单元,用于对向量运算指令进行超越函数计算;其中,所述超越函数计算单元包括预处理部分和迭代计算部分,其中预处理部分对输入向量数据进行预处理,使其处于CORDIC算法能够处理的范围之内,所述迭代计算部分利用CORDIC算法对经过预处理的输入向量数据进行迭代运算,得到结果向量数据。本发明专利技术提供的向量超越函数运算装置,能够硬件实现超越函数运算指令的精简指令运算,通过一条指令实现一完整的向量超越函数运算。

A device and method for performing vector transcendental functions

The invention discloses a method for executing vector computing functions beyond the device and method, the apparatus includes a storage unit storing vector instruction related to vector data; register unit, data storage for scalar vector instruction related; the control unit is used to decode the vector operation instruction, operation process and control vector operation instruction; transcendental function calculation unit for vector instructions of transcendental function calculation; among them, the transcendental function calculation unit comprises a preprocessing part and iterative calculation part, the preprocessing part of the input vector data preprocessing, which is in the range of CORDIC algorithm can be applied within the iterative calculation by CORDIC after the input vector algorithm for data preprocessing using iterative computation results of vector data. The vector transcendental function computing device provided by the invention can realize the simplified instruction operation of the transcendental function instruction by hardware, and realizes a complete vector transcendental function calculation through an instruction.

【技术实现步骤摘要】
一种用于执行向量超越函数运算的装置和方法
本专利技术涉及一种计算装置,该装置可以根据指令对一组向量数据进行各种超越函数运算,能够以较高的效率得到高精确度的超越函数计算结果。本专利技术装置及方法在进行针对向量的超越函数运算上有着区别于传统方法的显著优势。
技术介绍
超越函数,包括但不限于指数运算、对数运算和三角函数运算。这类运算区别于传统的四则运算,不是有限多项式的形式,变量之间的关系也不能用有限次的加、减、乘、除、乘方、开方来等价。其运算难度和代价远远大于传统的加减乘除。而当前的计算机领域中,确实存在着许多对一整列向量数据甚至矩阵数据进行超越函数运算的要求,例如许多机器学习算法中就需要对大量数据进行指数和对数运算。因此,就要求有一种能够针对向量数据高效实现各种超越函数计算的装置和方法。在现有技术中,一种最常用的实现向量超越函数计算的方案是使用通用处理器。该方法通过通用寄存器堆和通用功能部件来执行通用指令,从而执行矩阵运算。然而,因为通用处理器并没有专门用于计算超越函数的运算部件,必须采用泰勒展开的形式用高次多项式来逼近得到激活函数的结果,需要多条指令的执行才能够完成整个运算。同时,通用处理器面向标量运算,在实现对于向量数据的超越函数运算时需要逐个执行,这就进一步降低了运算效率。在另一种现有技术中,使用图形处理器(GPU)来针对向量数据进行超越函数运算,其中,通过使用通用寄存器堆和通用流处理单元执行通用SIMD指令来进行运算。该方案虽然解决了通用处理器串行计算的问题,但仍需要采用泰特展开的方式使用高次多项式来计算得到高精度的结果。同时,GPU片上缓存太小,在进行大规模超越函数运算时需要不断进行片外数据搬运,片外带宽成为了主要性能瓶颈。在另一种现有技术中,使用专门定制的计算装置来进行向量超越函数计算,其中,使用定制的寄存器堆和定制的处理单元进行运算。然而,根据这种方法,目前已有的专用超越函数运算装置受限于寄存器堆的设计,不能够灵活地支持不同长度的向量运算。综上所述,现有的不管是通用处理器、还是图形处理器或者其他的定制计算装置都无法进行灵活高效的向量超越函数运算,并且这些现有技术在处理矩阵乘运算问题时存在着代码量大,速度慢,效率低,片上缓存不够,支持的向量规模不够灵活等问题。
技术实现思路
本专利技术旨在提供一种用于解决向量超越函数运算任务的装置和方法,能够根据指令快速、灵活执行针对不同长度的向量数据的各种超越函数计算,即对于向量X,针对其中的每一个元素xi快速计算出相应的超越函数值yi=f(xi),其中f可以是各种超越函数,包括但不限于指数函数、对数函数、三角函数和反三角函数。根据本专利技术一方面,提供了一种向量超越函数运算装置,该装置包括:存储单元,用于存储向量运算指令相关的向量数据;寄存器单元,用于存储向量运算指令相关的标量数据;控制单元,用于对向量运算指令进行译码,并控制向量运算指令的运算过程;超越函数计算单元,用于对向量运算指令进行超越函数计算;其中,所述超越函数计算单元包括预处理部分和迭代计算部分,其中预处理部分对输入向量数据进行预处理,使其处于CORDIC算法能够处理的范围之内,所述迭代计算部分利用CORDIC算法对经过预处理的输入向量数据进行迭代运算,得到结果向量数据。优选地,所述超越函数计算单元利用硬件实现。优选地,所述存储单元为高速暂存存储器。优选地,所述寄存器单元所存储的标量数据包括向量运算指令相关的输入向量数据起始地址、输出向量数据存储地址、输入向量数据长度;其中,所述输入向量数据的起始地址以及输出向量数据存储地址为所述存储单元中的地址。优选地,所述超越函数计算单元还包括后处理部分,其用于对所述迭代计算部分输出结果向量数据进行后处理。优选地,所述控制单元包括:指令队列模块,用于对译码后的向量运算指令进行顺序存储,并获取向量运算指令相关的标量数据。优选地,所述控制单元包括:依赖关系处理单元,用于在超越函数计算单元获取当前向量运算指令前,判断当前向量运算指令与之前未执行完的运算指令是否存在依赖关系。优选地,所述控制单元包括:存储队列模块,用于在当前向量运算指令与之前未执行完的运算指令存在依赖关系时,暂时存储当前向量运算指令,并且在该依赖关系消除时,将暂存的向量运算指令送往超越函数计算单元。优选地,所述装置还包括:指令缓存单元,用于存储待执行的向量运算指令;输入输出单元,用于将向量运算指令相关的向量数据存储于存储单元,或者,从存储单元中获取向量运算指令的运算结果。优选地,所述向量运算指令包括操作码和操作域;所述操作码用于指示执行何种超越函数;所述操作域包括立即数和/或寄存器号,指示向量运算相关的标量数据,其中寄存器号用于指向所述寄存器单元地址。根据本专利技术第二方面,提供了一种向量超越函数运算装置,包括:取指模块,用于从指令序列中取出下一条要执行的向量运算指令,并将该向量运算指令传给译码模块;译码模块,用于对该向量运算指令进行译码,并将译码后的向量运算指令传送给指令队列模块;指令队列模块,用于暂存译码后的向量运算指令,并从向量运算指令或标量寄存器获得向量指令运算相关的标量数据;获得所述标量数据后,将所述向量运算指令送至依赖关系处理单元;标量寄存器堆,包括多个标量寄存器,用于存储向量运算指令相关的标量数据;依赖关系处理单元,用于判断所述向量运算指令与之前未执行完的运算指令之间是否存在依赖关系;如果存在依赖关系,则将所述向量运算指令送至存储队列模块,如果不存在依赖关系,则将所述向量运算指令送至超越函数计算单元;存储队列模块,用于存储与之前运算指令存在依赖关系的向量运算指令,并且在所述依赖关系解除后,将所述向量运算指令送至超越函数计算单元;超越函数计算单元,用于根据接收到向量运算指令对输入向量数据进行超越函数计算;高速暂存存储器,用于存储输入向量数据和输出向量数据;输入输出存取模块,用于直接访问所述高速暂存存储器,负责从所述高速暂存存储器中读取输入向量数据和写入输出向量数据。优选地,所述超越函数计算单元包括:预处理模块,用于对输入向量数据进行预处理,将所述输入向量数据转换至CORDIC能够处理的范围之内;迭代计算模块,用于对预处理后的输入向量数据进行CORDIC计算,得到超越函数运算结果;后处理模块,用于对所述运算结果进行后处理,得到输出向量数据。优选地,所述超越函数计算单元由硬件实现。根据本专利技术一方面,提供了一种向量超越函数运算方法,该方法包括:取值模块从指令序列中取出下一条要执行的向量运算指令,并将该向量运算指令传给译码模块;译码模块对该向量运算指令进行译码,并将译码后的向量运算指令传送给指令队列模块;指令队列模块暂存译码后的向量运算指令,并从向量运算指令或标量寄存器获得向量指令运算相关的标量数据;获得所述标量数据后,将所述向量运算指令送至依赖关系处理单元;依赖关系处理单元判断所述向量运算指令与之前未执行完的运算指令之间是否存在依赖关系;如果存在依赖关系,则将所述向量运算指令送至存储队列模块,如果不存在依赖关系,则将所述向量运算指令送至超越函数计算单元;存储队列模块存储与之前运算指令存在依赖关系的向量运算指令,并且在所述依赖关系解除后,将所述向量运算指令送至超越函数计算单元;超越函数计算单元根本文档来自技高网
...
一种用于执行向量超越函数运算的装置和方法

【技术保护点】
一种用于执行向量超越函数运算的装置,其特征在于,该装置包括:存储单元,用于存储向量运算指令相关的向量数据;寄存器单元,用于存储向量运算指令相关的标量数据;控制单元,用于对向量运算指令进行译码,并控制向量运算指令的运算过程;超越函数计算单元,用于对向量运算指令进行超越函数计算;其中,所述超越函数计算单元包括预处理部分和迭代计算部分,其中预处理部分对输入向量数据进行预处理,使其处于CORDIC算法能够处理的范围之内,所述迭代计算部分利用CORDIC算法对经过预处理的输入向量数据进行迭代运算,得到结果向量数据。

【技术特征摘要】
1.一种用于执行向量超越函数运算的装置,其特征在于,该装置包括:存储单元,用于存储向量运算指令相关的向量数据;寄存器单元,用于存储向量运算指令相关的标量数据;控制单元,用于对向量运算指令进行译码,并控制向量运算指令的运算过程;超越函数计算单元,用于对向量运算指令进行超越函数计算;其中,所述超越函数计算单元包括预处理部分和迭代计算部分,其中预处理部分对输入向量数据进行预处理,使其处于CORDIC算法能够处理的范围之内,所述迭代计算部分利用CORDIC算法对经过预处理的输入向量数据进行迭代运算,得到结果向量数据。2.如权利要求1所述的装置,其特征在于,所述超越函数计算单元利用硬件实现。3.如权利要求1所述的装置,其特征在于,所述存储单元为高速暂存存储器。4.如权利要求1-3任一项所述的装置,其特征在于,所述寄存器单元所存储的标量数据包括向量运算指令相关的输入向量数据起始地址、输出向量数据存储地址、输入向量数据长度;其中,所述输入向量数据的起始地址以及输出向量数据存储地址为所述存储单元中的地址。5.如权利要求1-3任一项所述的装置,其特征在于,所述超越函数计算单元还包括后处理部分,其用于对所述迭代计算部分输出结果向量数据进行后处理。6.如权利要求1所述的装置,其特征在于,所述控制单元包括:指令队列模块,用于对译码后的向量运算指令进行顺序存储,并获取向量运算指令相关的标量数据。7.如权利要求1或6所述的装置,其特征在于,所述控制单元包括:依赖关系处理单元,用于在超越函数计算单元获取当前向量运算指令前,判断当前向量运算指令与之前未执行完的运算指令是否存在依赖关系。8.如权利要求1或6所述的装置,其特征在于,所述控制单元包括:存储队列模块,用于在当前向量运算指令与之前未执行完的运算指令存在依赖关系时,暂时存储当前向量运算指令,并且在该依赖关系消除时,将暂存的向量运算指令送往超越函数计算单元。9.如权利要求1-3、6任一项所述的装置,其特征在于,所述装置还包括:指令缓存单元,用于存储待执行的向量运算指令;输入输出单元,用于将向量运算指令相关的向量数据存储于存储单元,或者,从存储单元中获取向量运算指令的运算结果。10.如权利要求1所述的装置,其特征在于,所述向量运算指令包括操作码和操作域;所述操作码用于指示执行何种超越函数;所述操作域包括立即数和/或寄存器号,指示向量运算相关的标量数据,其中寄存器号用于指向所述寄存器单元地址。11.一种用于执行向量超越函数运算的装置,其特征在于,包括:取指模块,用于从指令序列中取出下一条要执行的向量运算指令,并将该向量运算指令传给译码模块;译码模块,用于对该向量运算指令进行译码,并将译码后的向量运算指令传送给指令队列模块;指令队列模块,用于暂存译码后的向量运算指令...

【专利技术属性】
技术研发人员:韩栋张潇陈天石陈云霁
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1