CN212569855U - 一种激活函数的硬件实现装置 - Google Patents
一种激活函数的硬件实现装置 Download PDFInfo
- Publication number
- CN212569855U CN212569855U CN202021864854.1U CN202021864854U CN212569855U CN 212569855 U CN212569855 U CN 212569855U CN 202021864854 U CN202021864854 U CN 202021864854U CN 212569855 U CN212569855 U CN 212569855U
- Authority
- CN
- China
- Prior art keywords
- adder
- shift
- unit
- calculation
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本实用新型公开一种激活函数的硬件实现装置,属于函数计算的硬件实现技术领域。针对现有技术中存在的传统方法硬件实现激活函数时很难平衡高性能与硬件资源的问题,包括e指数计算模块和CORDIC除法模块,输入信号在e指数计算模块通过以2为底的小型指数查找表及移位、加法运算计算出e指数e‑x或e指数e2x,本实用新型的加法器基于进位保留加法,实现形如“I1+I2‑I3”的计算功能;CORDIC除法模块基于CORDIC算法,通过多次迭代计算出形如的除法函数结果。本实用新型电路结构简洁、无复杂控制逻辑,电路布局布线方便,计算精度高,计算时支持任意输入范围的sigmoid和tanh激活函数计算,解决传统硬件实现无法平衡性能与硬件资源的问题。
Description
技术领域
本实用新型涉及函数计算的硬件实现技术领域,更具体地说,涉及一种激活函数的硬件实现装置。
背景技术
随着人工智能等领域的高速发展,近些年来,神经网络成为研究的热点。人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型,它的主要任务是根据生物神经网络的原理和实际应用的需要建造实用的人工神经网络模型,设计相应的学习算法,模拟人脑的某种智能活动,然后在技术上实现出来用以解决实际问题。
作为神经网络算法的一个重要组成部分,激活函数的硬件实现也成为了研究的热点。激活函数(Activation functions)是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数对于人工神经网络模型去学习、理解非常复杂和非线性的函数来说具有十分重要的作用。当前,很多关于神经网络算法的应用不仅要求具有实时性,而且还需要高精度,这也必然对激活函数的硬件实现提出了很高的精度要求。
在硬件上实现激活函数时,需要考虑实现时占据的硬件资源、运行效率,计算精度等。常用的激活函数有sigmoid函数、tanh函数和ReLU函数。在所有的激活函数中,sigmoid与tanh函数的硬件实现难度较高。1957年,Volder在其发表的论文中提出了坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC)算法用来计算三角函数、乘法以及除法等运算。CORDIC算法是一种硬件友好型算法,可以将较为复杂函数计算转化为简单的移位相加操作,研究人员常用其来实现所需的目标函数。目前sigmoid和tanh的实现方法,在保证精度的同时,硬件的性能很难得到保证。
发明内容
1.要解决的技术问题
针对现有技术中存在的传统方法硬件实现激活函数时很难平衡高性能与硬件资源的问题,本实用新型提供一种激活函数的硬件实现装置,它可以更好的平衡硬件性能与硬件资源的使用,使用更少的硬件资源就能保证硬件的较高性能。
2.技术方案
本实用新型的目的通过以下技术方案实现。
一种激活函数的硬件实现装置,包括e指数计算模块、CORDIC除法模块、加法器和选择器,e指数计算模块的输出端连接加法器的输入端,加法器的输出端连接CORDIC除法模块的输出端,CORDIC除法模块的输出端连接选择器的输入端,e指数计算模块用于指数函数的计算,CORDIC除法模块通过多次迭代计算出形如的除法函数结果。
更进一步的,所述e指数计算模块包括移位单元、加法器和幂指数运算单元,所述移位单元包括移位单元A、移位单元B、移位单元C、移位单元D和移位单元E,所述加法器包括加法器A和加法器B;移位单元A、移位单元B和移位单元C的输出端均连接加法器A的输入端,加法器A的输出端和移位单元E的输出端均连接加法器B的输入端,加法器B的输出端与移位单元D的输入端和幂指数运算单元的输入端均连接,幂指数运算单元的输出端也连接移位单元D的输入端。e指数计算模块通过以2为底的小型指数查找表及移位、加法运算计算出e指数e-x及e指数e2x。
更进一步的,所述加法器A为三输入M-bits加法器,包括2M个全加器,2M个全加器以M个为一组,构成两个全加器组;第一全加器组中第n个全加器的输入信号为输入信号的第n位,第一全加器组中第n个全加器的输出信号作为第二全加器组对应的第n个全加器的输入信号,第一全加器组中第n个全加器和第二全加器组对应的第n个全加器的进位信号均作为第二全加器组对应的第n+1个全加器的输入信号,M为大于1的自然数,n为小于等于M的自然数。
更进一步的,所述CORDIC除法模块包括选择器、变量存储器、加法器、移位计算单元,迭代计数器和迭代控制器,计算时每个迭代变量各对应一个选择器,选择器的输出端与变量寄存器的输入端连接,变量寄存器的输出端与加法器的输入端连接,加法器的输出端与选择器的输入端连接;所述选择器还连接迭代控制器,加法器的输入端还连接移位计算单元,所述移位计算单元与迭代计算器连接。CORDIC除法模块,通过多次迭代计算出形如的除法函数结果。
更进一步的,所述装置还包括顶层控制模块,顶层控制模块连接e指数计算模块、CORDIC除法模块和选择器。顶层控制模块发送时钟信号CLK和选择信号SEL控制硬件整体运行,时钟信号CLK连接e指数模块和CORDIC除法模块,选择信号SEL连接e指数模块和选择器。顶层控制模块将e指数计算模块以及CORDIC除法模块进行连接以及进行相应的选择,最终输出sigmoid激活函数或tanh激活函数的结果。
更进一步的,所述幂指数运算单元的底数为2。
一种激活函数的硬件实现方法,使用所述的一种激活函数硬件实现装置,输入信号通过e指数计算模块计算e指数,然后通过加法模块将e指数计算模块计算值与固定值相加,再通过CORDIC除法模块使用多次迭代计算出除法函数结果,最后通过选择器选择输出sigmoid激活函数或tanh激活函数的结果。
选择计算sigmoid函数时,输入信号通过e指数计算模块计算e指数e-x,然后通过加法模块将e-x与固定值相加,再通过CORDIC除法模块使用多次迭代计算出除法函数结果,除法模块计算完成后便得到sigmoid函数对应的函数值。
选择计算tanh函数时,输入信号经过e指数计算模块计算e指数e2x,然后通过加法模块将e2x与固定值相加后,再通过CORDIC除法模块使用多次迭代计算出除法函数结果,将CORDIC除法模块计算值执行移位操作后在减法器中用固定值减去移位操作后计算值,最终得到tanh函数对应的函数值。
e指数计算模块先对输入信号执行移位操作,然后使用加法器A将移位单元A、移位单元B和移位单元C的移位结果相加,加法器B对加法器A的计算结果与移位单元E的移位结果做加/减法运算,运算结果分为整数部分和小数部分,小数部分经过幂指数运算单元计算后在移位单元D执行移位操作;当整数部分大于等于0时,移动单元D左移位数为整数部分对应值,当整数部分小于0时,移动单元D左移位数为整数部分绝对值对应值。
e指数计算模块在计算e-x值时,移位单元A、移位单元B和移位单元C分别对输入信号执行右移一位、右移四位和右移七位的移位操作;e指数计算模块在计算e2x值时,移位单元A、移位单元B和移位单元C分别对输入信号执行不移位、右移七位和右移三位的移位操作。
所述e指数在实现时将e-x转化为2的指数e2x转化为两个2的幂指数部分进一步转化为移位和3输入加法运算:x>>1+x>>4-x>>7和x+x>>7-x>>3;幂指数部分计算后得到整数与正小数相加结果I+D,最终计算时2I采用移位运算,2D采用以2为底的小型指数查找表,所述查找表的输入范围是[0,1),使用所述查找表可以将大范围输入的e指数转化为小范围易实现的2的幂指数。
CORDIC除法模块中,选择器选择除法器的迭代输入值后将迭代输入值发送至变量寄存器缓存,迭代输入值经移位计算单元计算后输入加法器,加法器的输出结果作为下一次迭代的初始值,当迭代次数到预先设定值后,z值变量寄存器输出计算值;移位计算单元根据迭代计数器的计数进行相应的移位运算,迭代计数器用于记录当前迭代的次数以及提供移位运算单元具体的移位位数,迭代计数器的输出控制移位计算单元的工作;y值变量寄存器中的y的符号位控制加法器的选择位,选择加法器执行加法或减法运算。所述CORDIC除法模块采用CORDIC算法线性坐标系下的向量模式来实现倒数除法运算,其迭代方程的输入初始值y和z分别置为1和0,初始值x为待计算的值。
本实用新型激活函数的硬件实现,基于进位保留加法和CORDIC算法,e指数计算单元的加法器A采用进位保留加法运算,在计算M-bits的输入数据时,只需要(M+1)τ的延时,可以解决传统行波进位加法器的高延时问题,同时有着电路结构简洁、无复杂控制逻辑,电路布局布线方便。在指数计算时采用以2为底的小型指数查找表,所述查找表的输入范围是[0,1),使用所述查找表可以将大范围输入的e指数转化为小范围易实现的2的幂指数。结合CORDIC除法模块执行CORDIC算法,通过多次迭代计算出形如的除法函数结果,当迭代次数达到一定数值,系统计算可以精度达到10-5。
3.有益效果
相比于现有技术,本实用新型的优点在于:
本实用新型的激活函数硬件装置,在实现时基于进位保留加法和CORDIC算法,与查找表法、线性分段近似法、非线性分段近似法等传统硬件实现方法相比,本实用新型基于进位保留加法的加法器,在计算M-bits的输入数据时,只需要(M+1)τ的延时,可以解决传统行波进位加法器的高延时问题,同时有着电路结构简洁、无复杂控制逻辑,方便电路布局布线的优点。在指数计算时采用以2为底的小型指数查找表,所述查找表的输入范围是[0,1),使用所述查找表可以将大范围输入的e指数转化为小范围易实现的2的幂指数。
本实用新型CORDIC除法模块使用CORDIC算法通过多次迭代计算函数结果,精确度可以达到10-5。本实用新型支持任意输入范围的sigmoid和tanh激活函数计算,同时能够更好的平衡硬件性能与硬件资源的使用,即在保证高性能的同时,本实用新型使用的硬件资源更少。除此之外,本实用新型研究分析两种激活函数彼此关系,计算时经过进一步配置可以选择实现sigmoid函数和tanh函数两种激活函数类型,而传统方法仅仅是实现一种函数。
附图说明
图1为本实用新型硬件装置结构示意图;
图2为本实用新型e指数计算模块的硬件实现结构图;
图3为本实用新型的基于进位保留加法的三输入加法器结构图;
图4为本实用新型CORDIC除法模块的硬件实现结构图。
具体实施方式
下面结合说明书附图和具体的实施例,对本实用新型作详细描述。
实施例1
图1所示为本实施例基于进位保留加法和CORDIC算法的“S”型激活函数硬件装置结构示意图。本实施例硬件装置包括e指数计算模块和CORDIC除法模块,e指数计算模块和CORDIC除法模块连接,硬件系统还包括顶层控制模块,该顶层控制模块负责连接e指数计算模块和CORDIC除法模块,e指数计算模块和CORDIC除法模块均连接时钟信号clk,e指数计算模块还连接选择信号sel。输入信号先通过e指数计算模块,然后在一个加法器内将e指数计算模块的计算值与1相加,之后将此值再通过CORDIC除法模块,作为CORDIC除法模块的输入值;CORDIC除法模块计算后结果进入选择器,最终输出激活函数的结果。
下面先对本实施例中激活函数进行分析:
根据公式(1)得到tanh函数可以用sigmoid函数表示出来,也就是说,在具体的硬件实现时,tanh函数和sigmoid函数可以共用一个硬件架构以减少硬件资源的使用。
通过公式(1)可以看出,实现sigmoid函数和tanh函数的关键是除法和e指数的实现。除法可以通过CORDIC算法线性坐标系下的向量模式实现,故两个函数实现的最大难点为e指数的实现上。进一步分析分析与推导:
在sigmoid函数和tanh函数中分别用到的e-x和e2x可以表示如下:
公式(2)和公式(3)中的r1和r2是实数,一个实数可以表示成一个整数与一个纯小数的和,因此r1和r2可以有如下表示,其中I代表整数,D代表纯小数:
r1=I1+D1 (4)
r2=I2+D2 (5)
公式(4)和公式(5)中I1和I2可由公式(6)和公式(7)计算得出,其中floor()为向下取整函数:
I1=floor((-x)log2e) (6)
I2=floor((2x)log2e) (7)
相应地,D1和D2可以用公式(8)和公式(9)计算得出:
D1=(-x)log2e-floor((-x)log2e) (8)
D2=(2x)log2e-floor((2x)log2e) (9)
从而可以得到:
公式(10)和公式(11)中的移位操作在硬件系统中很常见,也非常容易实现,但是2的幂指数需要特殊处理。考虑到D1,D2∈[0,1),范围很小,具体实现时可以利用查找表来实现2的幂指数。
经过上述的分析推导过程,可以将(-∞,+∞)这样大范围的e指数转化成了小范围易实现的2的幂指数。下面将继续分析如何计算I1、D1、I2和D2。
(-x)log2e和(2x)log2e可以分别表示如下:
(2x)log2e=x·log2e2 (13)
(-x)log2e≈x·(-1.442695040888963)
=x·(-2+0.557304959111037)
=-2x+0.557304959111037x (14)
(2x)log2e≈x·2.885390081777927
=x·(2+0.885390081777927)
=2x+0.885390081777927x (15)
通过公式(14)和公式(15),可以发现在计算(-x)log2e以及(2x)log2e时可以分成两部分,第一部分是计算-2x或者2x,第二部分是计算小数的乘法。针对-2x或者2x的计算,硬件实现时直接采用移位操作就能解决,而小数的乘法则需要另外的解决办法。考虑到0.557304959111037≈0.5546875,0.885390081777927≈0.8828125,而0.5546875和0.8828125在二进制层面分别是(0.1000111)2和(0.1110001)2,因此有:
0.557304959111037x≈x·(0.1000111)2 (16)
0.885390081777927x≈x·(0.1110001)2 (17)
不难发现,(0.1000111)2和(0.1110001)2可以分别按如下方式计算:
(0.1000111)2=(0.1000000)2+(0.0001000)2-(0.0000001)2 (18)
(0.1110001)2=(1.0000000)2+(0.0000001)2-(0.0010000)2 (19)
从而有:
x·(0.1000111)2=x>>1+x>>4-x>>7 (20)
x·(0.1110001)2=x+x>>7-x>>3 (21)
经过上述一系列推导,最终将较为复杂的小数乘法转化为了硬件容易实现的移位和加法操作。在计算出(-x)log2e以及(2x)log2e之后,取二者整数部分作为I1和I2,小数部分作为D1和D2,至此,得到I1、I2、D1和D2的计算值。
图2所示为本实施例e指数计算模块的基本结构图,e指数计算模块包括若干移位单元和加法器,本例中包括SU1、SU2、SU3、SU4和SU5五个移位单元,移位单元执行移位操作。移位单元SU1、SU2和SU3均与加法器Adder连接;Adder为三输入加法器,加法器Adder执行移位单元SU1、SU2和SU3三个数的加法操作。加法器Adder的计算结果和移位单元SU5的计算结果相加或相减,得到的数值分为整数部分I和小数部分D。其中小数部分D进过2的幂指数运算单元计算后进入移位单元SU4执行移位操作,移位单元SU4执行的移位位数根据整数部分I确认,当整数部分I大于等于零时,执行左移操作,当整数部分I小于零时,执行右移操作。
下面具体对在e指数计算模块对e-x和e2x的计算流程进行描述。
其中,e-x计算流程包括以下步骤:
步骤11:输入信号x;
步骤12:输入信号x分别通过移位单元SU1、SU2、SU3、SU5执行移位操作,分别对输入信号x进行右移一位、右移四位、右移七位和左移一位操作,计算得到x>>1、x>>4、x>>7和x<<1移位计算结果;
步骤13:将x右移一位、右移四位和右移七位的移位计算结果x>>1、x>>4、x>>7输入三输入加法器Adder,根据公式(18)计算得到中间结果S1;
步骤14:加法器Adder计算的中间结果S1与移位单元SU5左移一位操作的移位计算结果x<<1相加,得到结果分为I+D两部分,其中I代表整数部分,D代表小数部分;
步骤15:小数部分D经过2的幂指数运算单元得到2D;
步骤16:幂指数运算单元的计算结果2D进入移位单元SU4左移I位(当整数部分I≥0)或右移(-I)位(当整数部分I<0)得到e-x。
e2x计算过程同e-x基本相同,不同之处在于移位单元计算时的移位位数不同,具体计算流程如下:
步骤21:输入信号x;
步骤22:输入信号x分别通过移位单元SU1、SU2、SU3、SU5执行移位操作,分别对输入信号x进行不移位、右移七位、右移三位和左移一位操作,计算得到x、x>>7、x>>3、x<<1移位计算结果;
步骤23:将x未移位、右移七位和右移三位的移位计算结果x、x>>7、x>>3输入三输入加法器Adder,根据公式(19)计算得到中间结果S2;
步骤24:加法器Adder计算的中间结果S2与移位单元SU5左移一位操作的移位计算结果x<<1相减,得到结果分为I+D两部分,其中I代表整数部分,D代表小数部分;
步骤25:小数部分D经过2的幂指数运算单元得到2D;
步骤26:幂指数运算单元的计算结果2D进入移位单元SU4左移I位(当整数部分I≥0)或右移(-I)位(当整数部分I<0)得到e2x。
所述的三输入加法器Adder结构如图3所示,三输入M-bits加法器Adder包括2M个全加器,2M个全加器以M个为一组,构成两个全加器组,分别用于加法器输入层与输出层,描述时,我们也可以用第一层表示输入层,第二层表示输出层。输入层和输出层各包括M个全加器,输入层第n个全加器的输出信号发送至输出层第n个全加器作为输入信号,同时,输入层第n个全加器的进位信号发送至输出层第n+1个全加器作为输入信号,输出层第n+1个全加器的输入信号还包括输出层第n个全加器的进位信号,输出层第0个全加器的两个输入端分别置0和置1,M为大于1的自然数,n为小于等于M的自然数。
如图3所示,在此结构中,互连时,第一层加法器组的输出与进位信号作为第二层加法器组的输入信号,同时第二层加法器组中的前一个加法器的进位也作为下一个加法器的输入。计算时,将I1、I2和I3的每一位分别作为第一层加法器的输入信号,如第一层的第一个加法器接收I1、I2和I3的第0位数据信息,将第二层的第一个加法器的另外两个输入端分别置0和置1,最后将第二层输出的M-bits数据合并,便能得到需要的计算结果。
本实施例的三输入的加法器Adder未采用传统的加法器结构,而是在进位保留加法器的基础上提出了一种改进版的加法器。通过图3所示的互连方式,该加法器能实现形如“I1+I2-I3”的计算功能,其中I1、I2、I3均为M-bits的数。与传统的加法器相比,本实用新型提出的改进后的进位保留加法器有很大的优势。行波进位加法器实现相同功能时,至少需要2Mτ的延时(τ为全加器计算延时),而该加法器只需要(M+1)τ的延时;超前进位加法器也可减少延时,但是超前进位加法器需要额外的控制逻辑且布线复杂,而本实施例加法器结构简单,无需额外复杂逻辑控制。在硬件成本上,原始的进位保留加法器需要在第三级用一个行波进位加法器来计算最后的结果,而本实施例加法器省去该部分,降低成本。
输入信号x通过e指数计算模块计算后得到e-x和e2x,分别对应sigmoid激活函数或tanh激活函数。e-x和e2x分别与1相加后得到的值作为CORDIC除法模块的输入信号,最终输出sigmoid激活函数或tanh激活函数的结果。
选择计算sigmoid函数时,输入信号通过e指数计算模块计算e指数e-x,然后通过加法模块将e-x与固定值相加,再通过CORDIC除法模块使用多次迭代计算出除法函数结果,除法模块计算完成后便得到sigmoid函数对应的函数值。
选择计算tanh函数时,输入信号经过e指数计算模块计算e指数e2x,然后通过加法模块将e2x与固定值相加后,再通过CORDIC除法模块使用多次迭代计算出除法函数结果,计算完成后得到该计算值左移一位后送入减法器计算最终得到tanh函数对应的函数值。
CORDIC除法模块的结构如图4所示,包括三个选择器,三个变量寄存器,三个加法器,两个移位计算单元,一个迭代计数器和一个迭代控制器,每个迭代变量各对应一个选择器,每个选择器的输出端均连接一个变量寄存器的输入端,该变量寄存器的输出端连接加法器的输入端,加法器的输出端连接选择器的输入端,所述选择器还连接迭代控制器,有两个加法器的输入端还连接移位计算单元,所述移位计算单元通过迭代计算器控制,当迭代次数达到预设值,变量寄存器输出计算结果。
所述CORDIC除法模块中,选择器用于选择除法器的迭代输入值,仅在第一次迭代时将迭代初始值送入计算模块内部,其余情况选择每次迭代的结果作为下次迭代的初始值;变量寄存器用于缓存当前的迭代输入值,以便移位计算单元及加法器使用;移位计算单元根据迭代计数器的计数进行相应的移位运算;迭代计数器用于记录当前迭代的次数以及提供移位运算单元具体的移位位数;加法器可选择执行加法或减法运算,由选择位决定。具体连接时,选择器的控制位由迭代控制器控制,选择器的输出作为变量寄存器的输入;迭代计数器的输出控制着移位计算单元的工作,当前y值寄存器中的y的符号位控制着加法器功能的选择;加法器的输出结果作为下一次迭代的初始值。
所述CORDIC除法模块执行CORDIC算法在线性坐标系下的向量模式,通过多次迭代计算出形如的除法函数结果,迭代变量x,y,z的初值分别为待计算的值、1和0。待迭代次数达到预先设定值后,输出值由当前变量z的变量寄存器输出。本实施例的迭代次数为13次,迭代次数通过系统仿真得到,本实施例迭代次数设定为13次,精度达到10-5。实际应用中,为保证系统精度,迭代次数不低于13次。
根据以上方案进行设计,基于进位保留加法和CORDIC算法的“S”型激活函数硬件实现在TSMC 40nm工艺下进行综合,系统时钟信号clk的最高频率可达1.5GHz。在此频率下,系统面积约为4048.64μm2,功耗仅为1.75mW。通过仿真后结果得到本实施例中的sigmoid函数可以达到10-4的精度,tanh函数可以达到10-3的精度。
从上述结果看出,本实施例的“S”型激活函数实现方法不仅计算精度高、性能好,而且能够使用较少的硬件资源,作为人工智能等领域的典型运算,该硬件实现方法有着良好的借鉴意义和广泛的应用前景。
以上示意性地对本实用新型及其实施方式进行了描述,该描述没有限制性,在不背离本实用新型的精神或者基本特征的情况下,能够以其他的具体形式实现本实用新型。附图中所示的也只是本实用新型的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (6)
2.根据权利要求1所述的一种激活函数的硬件实现装置,其特征在于,所述e指数计算模块包括移位单元、加法器和幂指数运算单元,所述移位单元包括移位单元A、移位单元B、移位单元C、移位单元D和移位单元E,所述加法器包括加法器A和加法器B;移位单元A、移位单元B和移位单元C的输出端均连接加法器A的输入端,加法器A的输出端和移位单元E的输出端均连接加法器B的输入端,加法器B的输出端与移位单元D的输入端和幂指数运算单元的输入端均连接,幂指数运算单元的输出端也连接移位单元D的输入端。
3.根据权利要求2所述的一种激活函数的硬件实现装置,其特征在于,所述加法器A为三输入M-bits加法器,包括2M个全加器,2M个全加器以M个为一组,构成两个全加器组;第一全加器组中第n个全加器的输入信号为输入信号的第n位,第一全加器组中第n个全加器的输出信号作为第二全加器组对应的第n个全加器的输入信号,第一全加器组中第n个全加器和第二全加器组对应的第n个全加器的进位信号均作为第二全加器组对应的第n+1个全加器的输入信号,M为大于1的自然数,n为小于等于M的自然数。
4.根据权利要求1所述的一种激活函数的硬件实现装置,其特征在于,所述CORDIC除法模块包括选择器、变量存储器、加法器、移位计算单元,迭代计数器和迭代控制器,计算时每个迭代变量各对应一个选择器,选择器的输出端与变量寄存器的输入端连接,变量寄存器的输出端与加法器的输入端连接,加法器的输出端与选择器的输入端连接;所述选择器还连接迭代控制器,加法器的输入端还连接移位计算单元,所述移位计算单元与迭代计算器连接。
5.根据权利要求1所述的一种激活函数的硬件实现装置,其特征在于,所述装置还包括顶层控制模块,顶层控制模块连接e指数计算模块、CORDIC除法模块和选择器。
6.根据权利要求2所述的一种激活函数的硬件实现装置,其特征在于,所述幂指数运算单元的底数为2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202021864854.1U CN212569855U (zh) | 2020-08-31 | 2020-08-31 | 一种激活函数的硬件实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202021864854.1U CN212569855U (zh) | 2020-08-31 | 2020-08-31 | 一种激活函数的硬件实现装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN212569855U true CN212569855U (zh) | 2021-02-19 |
Family
ID=74621751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202021864854.1U Active CN212569855U (zh) | 2020-08-31 | 2020-08-31 | 一种激活函数的硬件实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN212569855U (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113870090A (zh) * | 2021-12-01 | 2021-12-31 | 北京壁仞科技开发有限公司 | 实现函数的方法、图形处理装置、系统和介质 |
-
2020
- 2020-08-31 CN CN202021864854.1U patent/CN212569855U/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113870090A (zh) * | 2021-12-01 | 2021-12-31 | 北京壁仞科技开发有限公司 | 实现函数的方法、图形处理装置、系统和介质 |
CN113870090B (zh) * | 2021-12-01 | 2022-03-15 | 北京壁仞科技开发有限公司 | 实现函数的方法、图形处理装置、系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109740739B (zh) | 神经网络计算装置、神经网络计算方法及相关产品 | |
CN106155627B (zh) | 基于t_cordic算法的低开销迭代三角函数装置 | |
CN109358900A (zh) | 支持离散数据表示的人工神经网络正向运算装置和方法 | |
CN110163363A (zh) | 一种计算装置及方法 | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN105913118A (zh) | 一种基于概率计算的人工神经网络硬件实现装置 | |
CN110361691A (zh) | 基于非均匀阵列的相干信源doa估计fpga实现方法 | |
Prabhu et al. | A delay efficient vedic multiplier | |
Frasser et al. | Fully parallel stochastic computing hardware implementation of convolutional neural networks for edge computing applications | |
CN212569855U (zh) | 一种激活函数的硬件实现装置 | |
Prasad et al. | Design of low power and high speed modified carry select adder for 16 bit Vedic Multiplier | |
CN110110285B (zh) | 一种用于FPGA的并行Jacobi计算加速实现方法 | |
CN111860792A (zh) | 一种激活函数的硬件实现装置和方法 | |
Raghuram et al. | Digital implementation of the softmax activation function and the inverse softmax function | |
CN110458277B (zh) | 适用于深度学习硬件加速器的可配置精度的卷积硬件结构 | |
CN111178492B (zh) | 计算装置及相关产品、执行人工神经网络模型的计算方法 | |
CN115357214A (zh) | 一种兼容非对称多精度混合乘累加运算的运算单元 | |
CN109298848A (zh) | 双模式浮点除法平方根的电路 | |
Parameswaran et al. | Design and investigation of low-complexity Anurupyena Vedic multiplier for machine learning applications | |
Timarchi et al. | Area-time-power efficient maximally redundant signed-digit modulo 2 n− 1 adder and multiplier | |
CN113407793A (zh) | 一种softmax函数的硬件实现方法、模块、芯片和系统 | |
Lin et al. | An exponential function accelerator with radix-16 algorithm for spiking neural networks | |
EP4070242A1 (en) | Flexible precision neural inference processing units | |
CN113592067B (zh) | 一种用于卷积神经网络的可配置型卷积计算电路 | |
CN109343826A (zh) | 一种面向深度学习的可重构处理器运算单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GR01 | Patent grant | ||
GR01 | Patent grant |