CN110837624B - 一种针对sigmoid函数的近似计算装置 - Google Patents
一种针对sigmoid函数的近似计算装置 Download PDFInfo
- Publication number
- CN110837624B CN110837624B CN201911104123.9A CN201911104123A CN110837624B CN 110837624 B CN110837624 B CN 110837624B CN 201911104123 A CN201911104123 A CN 201911104123A CN 110837624 B CN110837624 B CN 110837624B
- Authority
- CN
- China
- Prior art keywords
- value
- unit
- input
- sigmoid
- negative
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/17—Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种针对sigmoid函数的近似计算装置,包括负数输入转换单元、常数乘法单元、移位单元、特殊值产生单元、进位保留加法器和负数结果转换单元。负数输入转换单元用于对输入的负值x取绝对值,并输出其绝对值的二进制原码;常数乘法单元计算1.4375×x的值并输出运算结果的整部部分k和小数部分p;移位单元用于对输入p进行移位操作;特殊值产生单元用于产生λ=sigmoid(kln2)的近似值;进位保留加法器用于实现三个数的加法;负数结果转换单元实现输入x为负数时相应结果的转换功能。本发明的装置能够实现sigmoid函数的近似计算,在保持较高近似精度的同时,极大地降低运算延时、功耗及减小面积开销。
Description
技术领域
本发明属于超大规模集成电路设计领域,尤其涉及一种针对sigmoid函数的近似计算装置。
背景技术
Sigmoid函数是一种广泛应用在数字信号处理和深度神经网络中的非线性函数。Sigmoid函数由于具有非线性的特点,很难在硬件上进行快速的实现并保持高拟合精度。以往出现了很多sigmoid函数拟合方法,但是这些方法需要较多的硬件资源开销,不利于硬件实现。
目前,分段线性拟合的近似方法在FPGA或VLSI实现中得到广泛使用。虽然该方法能够有较高的拟合精度,但是仍然需要使用查找表来存储分段函数的参数,并且需要使用延迟高、面积大的乘法器。因此该方法不仅需要较多的资源开销而且输出函数计算结果的延时较长。
如何用低延迟、高精度的方式设计sigmoid函数的硬件架构,对于采用sigmoid函数的高性能数字系统具有重要意义。
发明内容
本发明目的在于克服现有sigmoid函数近似方法需要的硬件资源开销大、延时长的不足,提供一种针对sigmoid函数的高速、低功耗和省面积的计算装置。
本发明装置采用的技术方案如下:
一种针对sigmoid函数的近似计算装置,包括负数输入转换单元、常数乘法单元、移位单元、特殊值产生单元、进位保留加法器和负数结果转换单元;所述负数输入转换单元,用于在输入的自变量x<0时,将自变量x变换到正数区间,其中,自变量x的取值范围为(-8,8);所述常数乘法单元,用于计算负数输入转换单元的输出值a与ln2的近似值即1.4375的乘积,并输出乘积结果的整数部分k值与小数部分p值;其中,整数k表示自变量x处于区间(kln2,(k+1)ln2),而小数p表示x-kln2的值;所述特殊值产生单元,用于根据由常数乘法单元输入的整数k值产生λ=sigmoid(kln2)的近似值;所述移位单元,用于根据由常数乘法单元输入的整数k值将小数p的值进行两次移位,分别得到p1=p×2-m1和p2=p×2-m2两个值;其中m1、m2为正整数,表示对小数p进行右移的移位位数;所述进位保留加法器,用于计算λ+p1+p2的值,得到自变量x>0时的sigmoid(x)的近似值,并输出给负数结果转换单元;其中,p1+p2用于近似计算sigmoid((k+1)ln2)-sigmoid(kln2)的值;所述负数结果转换单元,用于根据自变量x的符号位输出计算结果;当x<0时,将sigmoid(-x)的值变换到相应的负数区间输出。
进一步地,所述负数输入转换单元,在自变量x<0时通过半加器阵列计算x的补码,即将自变量x二进制值取反后加1,然后将补码结果作为输出值。
进一步地,所述常数乘法单元用于计算二进制a×1.0111的积,并通过“加加减”操作将二进制1.0111转换为二进制1+0.1-0.0001后进行计算。
进一步地,所述特殊值产生单元中,λ的值是根据整数k的各比特位的组合逻辑映射产生相应的λ的各比特位。
进一步地,所述进位保留加法器由两级全加器阵列构成;首先将三个输入的各比特位作为全加器阵列的第一级输入,计算得出每一位的和以及进位;第二级全加器的输入为第一级全加器低一位的进位、第一级全加器当前位的和以及第二级全加器低一位的进位;第二级全加器的输出即为三个输入数的和。
进一步地,如果自变量x<0,所述负数结果转换单元将进位保留加法器输出结果的各个比特位取反加1后输出;其中,取反加1的运算是通过半加器阵列实现;如果自变量x>0,则通过复选器选择上一级的进位保留加法器的结果作为sigmoid(x)的值。
本发明提供了一种新型sigmoid近似计算装置,利用sigmoid函数值在自变量为x=kln2,k=1,2,3,4……11时的特殊性,设计了特殊值的快速生成单元来替代传统的查找表结构,从而降低了延迟并减小了面积开销;通过采用移位运算替代乘法从而快速实现乘法操作,有效降低了延迟并减小了面积开销。通过采用进位保留加法器对常数乘法运算和多个数的加法运算进行优化来降低计算延迟。本发明提供的硬件架构具有高速、低功耗和省面积的特点,在深度神经网络加速器等系统中具有广泛的应用前景。
附图说明
图1是本发明装置的架构图;
图2是常数乘法器架构图;
图3是进位保留加法器架构图。
具体实施方式
下面结合附图对本发明方案进行详细说明。
本实施例针对sigmoid的输入区间(-8,8)进行等间隔分段,分段长度为ln2;在不同的输入区间内,采用如下公式对sigmoid函数进行近似:
其中,δ(x)表示sigmoid函数,x为函数自变量,k为整数,0<k≤11。根据sigmoid函数的对称特性,当x为负数时,将x的值变换到(0,8)的区间内,相应的运算结果需从(0.5,1)的范围对称变换到(0,0.5)区间内。
本发明的硬件架构实施例示意图如图1所示,输入自变量x的范围在(-8,8)的区间内,输出结果G在(0,1)区间内。实施例中的装置主要包括:负数输入转换单元、复选器、常数乘法单元、移位单元、特殊值产生单元,进位保留加法器和负数结果转换单元。输入x首先进入负数输入转换单元进行处理,得到的结果用g表示;接下来,通过x的符号位sign判断复选器的输出结果。如果x为正数,复选器选择输出x的值;如果x为负数,复选器选择输出g的值。复选器的输出值a进入常数乘法单元进行处理,得到a×ln2的近似值。该近似值的整数部分为k,小数部分为p。将k送入特殊值产生单元,p送入移位单元分别进行处理。特殊值产生单元根据k的值,映射出λ=δ(k)=sigmoid(kln2)的近似值。移位单元对p进行移位操作生成p1和p2。进一步地,进位保留加法器将λ、p1和p2的值进行相加得到和S。最后,S进入负数结果转换单元进行处理得到值q;通过x的符号位sign判断最终输出的结果:如果自变量x<0,则通过复选器选择值q作为sigmoid(x)的值。如果自变量x>0,则通过复选器选择上一级的进位保留加法器的结果S作为sigmoid(x)的值。
实施例中首先对输入x的符号sign进行判断,如果x是负数,即sign为1,那么对x的值取反后加1得到g,然后将g送入常数乘法单元。如果x取值为正数,那么直接将x送入常数乘法单元。
常数乘法单元用于确定输入值所在的区间范围。其具体的功能是计算负数输入转换单元的输出值与ln2的近似值(1.4375)的乘积,并输出乘积结果的整数部分k值(4bits)与小数部分p值;整数k表示x处于区间(kln2,(k+1)ln2);小数p表示x-kln2的值,即x距离区间起始点的距离。本实施例中提供的常数乘法单元的内部架构如图2所示。采用的常数乘法单元将输入a乘以1.0111(二进制)的运算通过“加加减”操作将1.0111(二进制)转换为1+0.1-0.0001(二进制),从而将原本的运算转换为a×1.0111=(1×a)+(0.1×a)+(-0.001×a)。在硬件运算中,三次移位运算变换为两次移位运算。在计算-0.001×a时,先对a取反得到D。假设A=0.1×a(二进制),B=0.001×D(二进制)即输出结果y=a+A+B+1(二进制)。图2中描述了进位保留加法器的基本架构。
本实施例中特殊值产生单元的输入为常数乘法单元的输出值k,其输出为相应的λ=δ(k)=sigmoid(kln2)的近似值。λ的二进制表示具有一定的规律性:
k=1时,δ(ln2)=0.1010101010……(二进制)
k=2时,δ(2ln2)=0.110011001100……(二进制)
k=3时,δ(3ln2)=0.111000111000111000……(二进制)
k=4时,δ(4ln2)=0.111100001111000011110000……(二进制)
k为其他值时的规律以此类推。即sigmoid函数值的二进制表示中k个1和k个0循环出现。该单元的设计利用该规律,通过输出λ与输入x的真值表来设计相应的组合逻辑,将x值直接根据k的值映射到相应的λ值。的特殊值生成单元的输入、输出关系见表1。特殊值生成单元的输入k为4bits数,假设k的每一bit位从高位到低位分别用a,b,c,d表示。其中假设λ[λ15:0]为16bits的数,λ的每一位与a,b,c,d的布尔逻辑表达式在表1中详细列出。
表1特殊值生成单元输入、输出关系
本实施例中,近似计算公式(1)中h=δ((k+1)ln2)-δ(kln2)=p×2-m1+p×2-m2(m1,m2为正整数),移位单元用于计算p×2-m1和p×2-m2的值。当k从0至11时,h分别取的近似值为:
h=[0.15625,0.1328125,0.09375,0.0625,0.03125,0.015625,0.0078125,0.00390625,0.001953125,0.0009765625,0.00048828125,0.000244140625,0.0001220703125]。根据h的取值,m1和m2分别表示移位单元对p的值进行右移的移位比特数。本实施例中的移位单元的输入输出关系见表2。移位单元根据输入k的值,对输入的数值进行移位操作,分别产生移位结果p1和p2,p1+p2用于近似计算sigmoid((k+1)ln 2)-sigmoid(kln 2)的值。
表2移位单元的输入、输出关系
子区间 | k | <![CDATA[m<sub>1</sub>]]> | <![CDATA[m<sub>2</sub>]]> |
(0,ln2] | 0 | 3 | 5 |
(ln2,2ln2] | 1 | 3 | 7 |
(2ln,3ln2] | 2 | 4 | 5 |
(3ln2,4ln2] | 3 | 5 | 6 |
(4ln2,5ln2] | 4 | 5 | 0 |
(5ln2,6ln2] | 5 | 6 | 0 |
(6ln2,7ln2] | 6 | 7 | 0 |
(7ln2,8ln2] | 7 | 8 | 0 |
(8ln2,9ln2] | 8 | 9 | 0 |
(9ln2,10ln2] | 9 | 10 | 0 |
(10ln2,11ln2] | 10 | 11 | 0 |
11ln2,12ln2] | 11 | 12 | 0 |
本实施例中的进位保留加法器用于计算λ+p1+p2的值,得到sigmoid(x)(x>0)的近似值,并输出给负数结果转换单元。进位保留加法器将三个数加法转换成两个数加法,具体架构如图3所示,假设p1、p2和λ分别具有P个bits。该结构与常数乘法单元中的加法器架构基本一致,在此不予赘述。
本实施例中负数结果转换单元将进位保留加法器输出结果S的各个比特位取反加1后输出;其中,取反加1的运算是通过半加器阵列实现的。最后,采用复选器根据输入x的符号位sign进行判断:如果x>0(sign=0),则把进位保留加法器的和S作为sigmoid(x)的值输出;如果x<0(sign=1),则把负数结果转换单元的结果q输出。
Claims (6)
1.一种针对sigmoid函数的近似计算装置,其特征在于,包括负数输入转换单元、常数乘法单元、移位单元、特殊值产生单元、进位保留加法器和负数结果转换单元;
所述负数输入转换单元,用于在输入的自变量x<0时,将自变量x变换到正数区间,其中,自变量x的取值范围为(-8,8);
所述常数乘法单元,用于计算负数输入转换单元的输出值a与ln2的近似值即1.4375的乘积,并输出乘积结果的整数部分k值与小数部分p值;其中,整数k表示自变量x处于区间(kln2,(k+1)ln2),而小数p表示x-kln2的值;
所述特殊值产生单元,用于根据由常数乘法单元输入的整数k值产生λ=sigmoid(kln2)的近似值;
所述移位单元,用于根据由常数乘法单元输入的整数k值将小数p的值进行两次移位,分别得到p1=p×2-m1和p2=p×2-m2两个值;其中m1和m2为正整数,表示对小数p进行右移的移位位数;
所述进位保留加法器,用于计算λ+p1+p2的值,得到自变量x>0时的sigmoid(x)的近似值,并输出给负数结果转换单元;其中,p1+p2用于近似计算sigmoid((k+1)ln2)-sigmoid(kln2)的值;
所述负数结果转换单元,用于根据自变量x的符号位输出计算结果;当x<0时,将sigmoid(-x)的值变换到相应的负数区间输出。
2.根据权利要求1所述的一种针对sigmoid函数的近似计算装置,其特征在于,所述负数输入转换单元,在自变量x<0时通过半加器阵列计算x的补码,即将自变量x的二进制值取反后加1,然后将补码结果作为输出值。
3.根据权利要求1所述的一种针对sigmoid函数的近似计算装置,其特征在于,所述常数乘法单元计算二进制a×1.0111的积,并通过“加加减”操作将二进制1.0111转换为二进制1+0.1-0.0001后进行运算。
4.根据权利要求1所述的一种针对sigmoid函数的近似计算装置,其特征在于,所述特殊值产生单元中,λ的值是根据整数k的各比特位的组合逻辑映射产生相应的λ的各比特位。
5.根据权利要求1所述的一种针对sigmoid函数的近似计算装置,其特征在于,所述进位保留加法器由两级全加器阵列构成;首先将三个输入的各比特位作为全加器阵列的第一级输入,计算得出每一位的和以及进位;第二级全加器的输入为第一级全加器低一位的进位、第一级全加器当前位的和以及第二级全加器低一位的进位;第二级全加器的输出即为三个输入数的和。
6.根据权利要求1所述的一种针对sigmoid函数的近似计算装置,其特征在于,如果自变量x<0,所述负数结果转换单元将进位保留加法器输出结果的各个比特位取反加1后输出;其中,取反加1的运算是通过半加器阵列实现;如果自变量x>0,则通过复选器选择上一级的进位保留加法器的结果作为sigmoid(x)的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911104123.9A CN110837624B (zh) | 2019-11-13 | 2019-11-13 | 一种针对sigmoid函数的近似计算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911104123.9A CN110837624B (zh) | 2019-11-13 | 2019-11-13 | 一种针对sigmoid函数的近似计算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837624A CN110837624A (zh) | 2020-02-25 |
CN110837624B true CN110837624B (zh) | 2023-04-21 |
Family
ID=69574784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911104123.9A Active CN110837624B (zh) | 2019-11-13 | 2019-11-13 | 一种针对sigmoid函数的近似计算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837624B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111428196A (zh) * | 2020-03-30 | 2020-07-17 | 南京大学 | 一种基于随机计算的非单调函数近似计算装置 |
CN114513193B (zh) * | 2022-02-15 | 2023-04-07 | 电子科技大学 | 基于概率计算和近似处理的fir滤波方法及滤波器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3045892A1 (fr) * | 2015-12-21 | 2017-06-23 | Commissariat Energie Atomique | Circuit neuronal optimise, architecture et procede pour l'execution des reseaux de neurones. |
CN107589935A (zh) * | 2017-09-01 | 2018-01-16 | 中国科学院计算技术研究所 | 一种非线性函数计算装置及方法 |
CN110058841A (zh) * | 2019-04-22 | 2019-07-26 | 南京大学 | 面向具有对称性的非线性函数通用计算装置和方法 |
-
2019
- 2019-11-13 CN CN201911104123.9A patent/CN110837624B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3045892A1 (fr) * | 2015-12-21 | 2017-06-23 | Commissariat Energie Atomique | Circuit neuronal optimise, architecture et procede pour l'execution des reseaux de neurones. |
CN107589935A (zh) * | 2017-09-01 | 2018-01-16 | 中国科学院计算技术研究所 | 一种非线性函数计算装置及方法 |
CN110058841A (zh) * | 2019-04-22 | 2019-07-26 | 南京大学 | 面向具有对称性的非线性函数通用计算装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110837624A (zh) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837624B (zh) | 一种针对sigmoid函数的近似计算装置 | |
WO2022133686A1 (zh) | 有/无符号乘累加装置及方法 | |
Kodali et al. | FPGA implementation of vedic floating point multiplier | |
CN109165006B (zh) | Softmax函数的设计优化及硬件实现方法及系统 | |
CN116400883A (zh) | 一种可切换精度的浮点乘加器 | |
Sousa | Efficient method for magnitude comparison in RNS based on two pairs of conjugate moduli | |
CN107133012B (zh) | 一种高速自定义浮点复数除法器 | |
CN110879697B (zh) | 一种近似计算tanh函数的装置 | |
CN103809931A (zh) | 一种专用高速浮点指数运算器的设计 | |
CN112558920A (zh) | 有/无符号乘累加装置及方法 | |
CN115526131A (zh) | 多级编码近似计算Tanh函数的方法及装置 | |
Low et al. | Non-iterative high speed division computation based on Mitchell logarithmic method | |
CN115936076A (zh) | 一种适配深度学习硬件加速器的可重构激活函数硬件装置 | |
Dalmia et al. | Novel high speed vedic multiplier proposal incorporating adder based on quaternary signed digit number system | |
CN114860193A (zh) | 一种用于计算Power函数的硬件运算电路及数据处理方法 | |
Nezhad et al. | High-speed multiplier design using multi-operand multipliers | |
CN112631546A (zh) | 基于ko-8算法的高性能模乘器 | |
CN116126283B (zh) | 一种fpga卷积加速器的资源占用率优化方法 | |
Veena et al. | Energy scalable Brent Kung adder with non-zeroing bit truncation | |
CN110506255A (zh) | 节能型可变功率加法器及其使用方法 | |
Nagaraj et al. | FPGA Implementation of Modified Booth Multiplier | |
Esmaeildoust et al. | High Speed Reverse Converter for the Five Moduli Set {2n, 2n-1, 2n+ 1, 2n-3, 2n-1-1} | |
Pekmestzi et al. | Design of Efficient 1's Complement Modified Booth Multiplier | |
Samhitha et al. | Implementation of 16-bit floating point multiplier using residue number system | |
Sahoo et al. | Multichannel Filters for Wireless Networks: Lookup-Table-Based Efficient Implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |