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片上缓存太小,在 ...
【技术保护点】
一种用于执行向量超越函数运算的装置,其特征在于,该装置包括:存储单元,用于存储向量运算指令相关的向量数据;寄存器单元,用于存储向量运算指令相关的标量数据;控制单元,用于对向量运算指令进行译码,并控制向量运算指令的运算过程;超越函数计算单元,用于对向量运算指令进行超越函数计算;其中,所述超越函数计算单元包括预处理部分和迭代计算部分,其中预处理部分对输入向量数据进行预处理,使其处于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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。