CN111047007B - 一种针对量化后的lstm的激活函数计算单元 - Google Patents

一种针对量化后的lstm的激活函数计算单元 Download PDF

Info

Publication number
CN111047007B
CN111047007B CN201911076853.2A CN201911076853A CN111047007B CN 111047007 B CN111047007 B CN 111047007B CN 201911076853 A CN201911076853 A CN 201911076853A CN 111047007 B CN111047007 B CN 111047007B
Authority
CN
China
Prior art keywords
input data
calculation unit
tanh
unit
function calculation
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
Application number
CN201911076853.2A
Other languages
English (en)
Other versions
CN111047007A (zh
Inventor
郑勇
陈柱佳
舒毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yida Ind Co.,Ltd. Yangzhou
Original Assignee
Beijing Zhongke Shengxin Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Zhongke Shengxin Technology Co ltd filed Critical Beijing Zhongke Shengxin Technology Co ltd
Priority to CN201911076853.2A priority Critical patent/CN111047007B/zh
Publication of CN111047007A publication Critical patent/CN111047007A/zh
Application granted granted Critical
Publication of CN111047007B publication Critical patent/CN111047007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Abstract

本发明涉及一种针对量化后的LSTM的激活函数计算单元,其特征在于,包括:sigmoid函数计算单元和tanh函数计算单元;所述tanh函数计算单元包括第一求补码单元、第二求补码单元、幅度比较器、算术运算单元、第一选择器和第二选择器。本发明提供的针对量化后的LSTM的激活函数计算单元,针对LSTM网络的操作数被量化后,根据其网络精度、噪声容限以及线性函数中的偏置系数对操作数的位宽需求确定激活函数计算单元的操作数位宽。针对8 bits位宽的操作数,确定用于近似激活函数的线性函数表达式。针对线性函数表达式设计对应的计算单元。利用booth算法,使用简单的移位相加快速计算系数固定的乘法。

Description

一种针对量化后的LSTM的激活函数计算单元
技术领域
本发明涉及一种针对量化后的LSTM的激活函数计算单元,属于集成电路设计技术领域。
背景技术
近年来,深度学习算法凭借其优异的性能开始替代传统的算法成为多个领域的主流算法。但当前主流的处理器(CPU、GPU、DSP等)还无法较好地适配其数据密集型的计算特点,因此学界以及工业界掀起了一波深度学习处理器的研究热潮。
深度学习算法中重要的一类算法——LSTM(Long Short-Term Memory),因为能够有效解决梯度消失的问题,正替代传统的RNN(Recurrent Neural Network)广泛应用在对序列数据进行处理的场景,如自然语言处理、语音识别等。但LSTM中所使用的激活函数:
Figure GDA0002361617500000011
因为涉及到复杂的指数、除法运算,所以硬件直接实现具备非常大的复杂度。因此需要一个更加高效、硬件友好的实现方案。
在现有的解决方案中,利用查找表来计算这两种激活函数是一种比较常用的方法。其原理是通过对输入数据在输入区间进行等间隔采样,然后分别计算出这些输入值对应的输出值,然后将它们存储在存储器中。等实际工作时,通过线性插值,将输入数据与采样点对应起来,然后再从存储器中取出之前计算好的对应的输出值。该方法虽然能够避免复杂的计算,降低硬件复杂度,但其缺点也是相当明显的。为了实现较高的计算精度,就需要尽可能多地采样,从而导致需要的存储资源大幅增加。而存储资源的增加造成的直接影响就是芯片面积增加以及因为频繁的数据访存带来的功耗的增加。
使用曲线拟合来计算这两种激活函数也是一种比较常用的方法。其原理是通过拟合的方法得出一个多项式函数,利用该函数来计算激活值。该方法只需要乘法以及加减法而不需要更复杂的指数运算以及除法运算。但该方法通常需要计算多次乘法,仍具有一定的复杂度。
经观察发现,这两个激活函数在各个分区间具备较好的线性性质,可以分段使用线性函数对这两个激活函数进行近似。尽管先前已经有工作使用分段线性近似的方法来计算这两个激活函数,但这些工作没有考虑LSTM的操作数被量化后的特点。
线性量化是用的比较多的一种网络压缩方法,其原理如下列公式所示:
Figure GDA0002361617500000021
Figure GDA0002361617500000022
k为量化后的操作数位宽。可见,操作数经线性量化后,取值范围被限定在一个特定的区间:
Figure GDA0002361617500000023
而现有的利用分段线性近似计算激活函数的解决方案中,输入操作数的取值范围为全体实数,显然会造成分段数过多、硬件复杂度过高、资源浪费的情况。另一方面还要考虑量化后的操作数的位宽与网络精度的关系,从而确定激活函数计算单元的操作数位宽以及用来近似激活函数的线性函数的系数的位宽。还有一点,分段线性近似激活函数存在一定的近似误差,会对网络精度带来影响。而线性量化操作可以为系统提高一部分噪声容限,从而在一定程度上抑制近似误差。线性量化操作所引入的噪声容限xNM与操作数位宽k紧密相关,其关系如以下公式所示:
Figure GDA0002361617500000024
综上,激活函数计算单元的设计要综合考虑硬件复杂度、网络精度、以及系统对近似误差的抑制能力这三个方面,谨慎设计线性函数的系数。
发明内容
本发明要解决技术问题是:克服上述技术的缺点,提供一种针对量化后的LSTM的激活函数计算单元。
为了解决上述技术问题,本发明提出的技术方案是:一种针对量化后的LSTM的激活函数计算单元,包括:sigmoid函数计算单元和tanh函数计算单元;所述tanh函数计算单元包括第一求补码单元、第二求补码单元、幅度比较器、算术运算单元、第一选择器和第二选择器;
所述第一求补码单元用于计算负的输入数据x的绝对值;
所述第一选择器根据输入数据x的符号位选择的输入数据x的绝对值,若符号位为0,则说明输入数据x为正数,输入数据x的绝对值即为x的值;若符号位为1,则说明输入数据为负数,输入数据x的绝对值为求补码运算单元的输出;
所述幅度比较器用于判断输入数据x的绝对值属于哪一个区间,然后分别产生对应的标志位信号{c2,c1,c0};
当输入数据x的绝对值位于区间[0,0.375,标志位信号{c2,c1,c0}为{0,0,1};
当输入数据x的绝对值位于区间[0.75,1,标志位信号{c2,c1,c0}为{1,0,0};当输入数据x的绝对值位于区间[0.375,0.75,标志位信号{c2,c1,c0}满足
Figure GDA0002361617500000031
所述算术运算单元根据以下公式计算线性函数tanh(x):
当0≤x<0.375,tanh(x)=x;
当0.375≤x<0.75,tanh(x)=0.75x+0.078125;
当0.75≤x<1,tanh(x)=0.5x+0.265625;
当x<0,tanh(x)=-tanh(x);
所述第二求补码单元用于将所述算术运算单元的结果取相反数;
所述第二个选择器用于选择输出算术运算单元的结果或它的相反数。如果输入数据x为正数,则输出所述算术运算单元的结果,否则则输出它的相反数;
所述Sigmoid函数计算单元根据以下公式计算线性函数sigmoid(x):
当-1<x<1,sigmoid(x)=0.25x+0.5。
上述方案进一步的改进在于:所述第一求补码单元和第二求补码单元均为以补码方式进行数值转换。
本发明提供的针对量化后的LSTM的激活函数计算单元,针对LSTM网络的操作数被量化后,根据其网络精度、噪声容限以及线性函数中的偏置系数对操作数的位宽需求确定激活函数计算单元的操作数位宽。针对8bits位宽的操作数,确定用于近似激活函数的线性函数表达式。针对线性函数表达式设计对应的计算单元。利用booth算法,使用简单的移位相加快速计算系数固定的乘法。
附图说明
下面结合附图对本发明作进一步说明。
图1是本发明一个优选的实施例中tanh函数计算单元结构示意图。
图2是幅度比较器的结构示意图。
具体实施方式
实施例
本实施例的针对量化后的LSTM的激活函数计算单元,在使用线性量化方法量化神经网络的时候,一方面,将操作数量化成8位定点数几乎能够满足所有网络的精度需求。另一方面,为了比较准确地线性近似激活函数,需要一个比较小的偏置系数,因此操作数位宽也不能太低。再一方面,由噪声容限xNM与操作数位宽k关系公式可知,操作数位宽越大,由线性量化操作所引入的噪声容限越小,因此计算单元的操作数位宽也不能太大。综合考虑以上几个方面的因素,最终将计算单元的操作数位宽确定为8位,用于计算这两个激活函数的分段线性函数如表1和表2所示:
表1:分段线性近似计算tanh函数
Figure GDA0002361617500000041
表2:分段线性近似计算sigmoid函数
Figure GDA0002361617500000042
该计算单元可对1-8位的操作数进行计算(不足8位的低位补零)。
该计算单元包括sigmoid函数计算单元和tanh函数计算单元。
如附图1所示,tanh函数计算单元由第一和第二求补码单元、幅度比较器、算术运算单元和两个二选一选择器组成。
第一求补码单元用于将负的输入数据x转换成正数,即后续的操作都是对输入数据x的绝对值absx进行操作。
第一二选一选择器根据输入数据x的符号位选择absx的值,若符号位为0,则说明输入数据x为正数,其绝对值即为x的值。若符号位为1,则说明输入数据为负数,其绝对值为求补码运算单元的输出。
幅度比较器用于判断输入数据的绝对值absx属于三个区间中的哪一个区间,然后分别产生对应的标志位{c2,c1,c0}。当absx位于区间[0,0.375,二进制表示为0.000_0000,0.010_1111。位于该区间的数据的共同点为第七位恒为0,第六位和第五位不能同时为1,即
Figure GDA0002361617500000043
absx位于该区间时,标志位信号{c2,c1,c0}为{0,0,1}。当absx位于区间[0.75,1,二进制表示为[0.110_0000,0.111_1111。位于该区间的数据的共同点为第七位和第六位都为1,即absx[6]&absx[5。absx位于该区间时,标志位信号{c2,c1,c0}为{1,0,0}。显然,当absx既不位于区间[0,0.375,也不位于区间[0.75,1时,它就位于区间[0.375,0.75,因此用于标志absx位于该区间的信号
Figure GDA0002361617500000051
幅度比较器的电路如附图2所示。
算术运算单元用于计算表1中的三个线性函数。因为线性函数的系数已经确定,因此可以利用booth算法并根据确定的系数来快速计算乘法。
第二个系数0.75的二进制表示为0.110_0000,由2位booth算法部分积产生规则可知,一共有两个有效的部分积产生。分别是由该系数的第[6:4]位数据”100”确定的-2[absx]和该系数的第[8:6]位数据”011”确定的+2[absx]。其余的部分积都为零。其中absx_n为absx取反加一得到。
第三个系数0.5的二进制表示为0.100_0000,由2位booth算法部分积产生规则可知,一共只有一个有效的部分积产生。即由该系数的[8:6]位数据”010”确定的+[absx]。其余的部分积都为零。
由幅度比较器产生的标志位信号{c2,c1,c0}选择输出表1中的三个线性函数的计算结果。
第二个求补码单元用于将算术运算单元的结果取相反数。
第二个二选一选择器用于选择输出算术运算单元的结果或它的相反数。如果输入数据x为正数,则输出算术运算单元的结果,否则则输出它的相反数。
如表2所示,Sigmoid函数计算单元只需要计算一个线性函数。系数0.25的二进制表示为0.010_0000,由2位booth算法部分积产生规则可知,一共有两个有效的部分积产生。分别是由该系数的第[6:4]位数据”100”确定的-2[absx]和该系数的第[8:6]位数据”001”确定的+[absx]。其余的部分积都为零。
本发明不局限于上述实施例。凡采用等同替换形成的技术方案,均落在本发明要求的保护范围。

Claims (2)

1.一种针对量化后的LSTM的激活函数计算装置,其特征在于,包括:sigmoid函数计算单元和tanh函数计算单元;所述tanh函数计算单元包括第一求补码单元、第二求补码单元、幅度比较器、算术运算单元、第一选择器和第二选择器;
所述第一求补码单元用于计算负的输入数据x的绝对值;输入数据x是8位定点数;
所述第一选择器根据输入数据x的符号位选择输入数据x的绝对值,若符号位为0,则说明输入数据x为正数,输入数据x的绝对值即为x的值;若符号位为1,则说明输入数据为负数,输入数据x的绝对值为所述第一求补码单元的输出;
所述幅度比较器用于判断输入数据x的绝对值属于哪一个区间,然后分别产生对应的标志位信号{
Figure 674156DEST_PATH_IMAGE001
};
当输入数据x的绝对值位于区间[0,0.375) 标志位信号{
Figure 578527DEST_PATH_IMAGE001
}为{0,0,1};
当输入数据x的绝对值位于区间[0.75,1),标志位信号{
Figure 770474DEST_PATH_IMAGE001
}为{1,0,0};
当输入数据x的绝对值位于区间[0.375,0.75),标志位信号{
Figure 381584DEST_PATH_IMAGE001
}满足
Figure DEST_PATH_IMAGE002
所述算术运算单元根据以下公式计算线性函数tanh(x):
当0≤x<0.375,tanh(x)=x;
当0.375≤x<0.75,tanh(x)=0.75x+0.078125;
当0.75≤x<1,tanh(x)=0.5x+0.265625;
当x<0,tanh(x)=-tanh(x);
所述第二求补码单元用于将所述算术运算单元的结果取相反数;
所述第二选择器用于选择输出算术运算单元的结果或它的相反数;如果输入数据x为正数,则输出所述算术运算单元的结果,否则则输出它的相反数;
所述sigmoid函数计算单元根据以下公式计算线性函数sigmoid(x):
Figure 402716DEST_PATH_IMAGE003
,sigmoid(x)=0.25x+0.5。
2.根据权利要求1所述的针对量化后的LSTM的激活函数计算装置,其特征在于:所述第一求补码单元和第二求补码单元均为以补码方式进行数值转换。
CN201911076853.2A 2019-11-06 2019-11-06 一种针对量化后的lstm的激活函数计算单元 Active CN111047007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911076853.2A CN111047007B (zh) 2019-11-06 2019-11-06 一种针对量化后的lstm的激活函数计算单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911076853.2A CN111047007B (zh) 2019-11-06 2019-11-06 一种针对量化后的lstm的激活函数计算单元

Publications (2)

Publication Number Publication Date
CN111047007A CN111047007A (zh) 2020-04-21
CN111047007B true CN111047007B (zh) 2021-07-30

Family

ID=70233048

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911076853.2A Active CN111047007B (zh) 2019-11-06 2019-11-06 一种针对量化后的lstm的激活函数计算单元

Country Status (1)

Country Link
CN (1) CN111047007B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111652361B (zh) * 2020-06-04 2023-09-26 南京博芯电子技术有限公司 长短时记忆网络的复合粒度近存储近似加速结构系统和方法
CN115601692A (zh) * 2021-07-08 2023-01-13 华为技术有限公司(Cn) 数据处理方法、神经网络模型的训练方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775599A (zh) * 2017-01-09 2017-05-31 南京工业大学 递归神经网络的多计算单元粗粒度可重构系统及方法
CN108090560A (zh) * 2018-01-05 2018-05-29 中国科学技术大学苏州研究院 基于fpga的lstm递归神经网络硬件加速器的设计方法
CN109816105A (zh) * 2019-01-16 2019-05-28 北京时代民芯科技有限公司 一种可配置的神经网络激活函数实现装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107688849B (zh) * 2017-07-28 2021-04-13 赛灵思电子科技(北京)有限公司 一种动态策略定点化训练方法及装置
CN109583561B (zh) * 2017-09-28 2021-05-07 杭州海康威视数字技术股份有限公司 一种深度神经网络的激活量量化方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775599A (zh) * 2017-01-09 2017-05-31 南京工业大学 递归神经网络的多计算单元粗粒度可重构系统及方法
CN108090560A (zh) * 2018-01-05 2018-05-29 中国科学技术大学苏州研究院 基于fpga的lstm递归神经网络硬件加速器的设计方法
CN109816105A (zh) * 2019-01-16 2019-05-28 北京时代民芯科技有限公司 一种可配置的神经网络激活函数实现装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FINN-L: Library Extensions and Design Trade-Off Analysis for Variable Precision LSTM Networks on FPGAs;Vladimir Rybalkin et al;《2018 28th International Conference on Field Programmable Logic and Applications (FPL)》;20181206;第89-96页 *
Low Complex & High Accuracy Computation Approximations to Enable On-Device RNN Applications;Sirish Kumar Pasupuleti et al;《2019 IEEE International Symposium on Circuits and Systems (ISCAS)》;20190501;第1-5页 *
一种基于折线逼近操作的极化码译码算法;马秋然 等;《http://kns.cnki.net/kcms/detail/51.1196.TP.20190618.0905.001.html》;20190618;第1-6页 *

Also Published As

Publication number Publication date
CN111047007A (zh) 2020-04-21

Similar Documents

Publication Publication Date Title
Carmichael et al. Deep positron: A deep neural network using the posit number system
CN107729989B (zh) 一种用于执行人工神经网络正向运算的装置及方法
Imani et al. CFPU: Configurable floating point multiplier for energy-efficient computing
CN106990937B (zh) 一种浮点数处理装置和处理方法
CN107340993B (zh) 运算装置和方法
CN110689125A (zh) 计算装置
CN107305485B (zh) 一种用于执行多个浮点数相加的装置及方法
Tambe et al. Adaptivfloat: A floating-point based data type for resilient deep learning inference
CN111047007B (zh) 一种针对量化后的lstm的激活函数计算单元
Kumar Implementation and analysis of power, area and delay of array, Urdhva, Nikhilam Vedic multipliers
CN108196822A (zh) 一种双精度浮点开方运算的方法及系统
Spagnolo et al. Aggressive approximation of the softmax function for power-efficient hardware implementations
Khan et al. Comparative analysis of different algorithm for design of high-speed multiplier accumulator unit (MAC)
Klinefelter et al. Error-energy analysis of hardware logarithmic approximation methods for low power applications
Molahosseini et al. A new residue to binary converter based on mixed-radix conversion
US7945061B1 (en) Scalable architecture for subspace signal tracking
Daud et al. Hybrid modified booth encoded algorithm-carry save adder fast multiplier
Baba et al. Design and implementation of advanced modified booth encoding multiplier
Dalmia et al. Novel high speed vedic multiplier proposal incorporating adder based on quaternary signed digit number system
KR20230132795A (ko) 정규화 기능을 위한 디지털 회로
Sharma et al. Truncated Wallace based single precision floating point multiplier
WO2019174263A1 (zh) 用于随机计算的多加数加法电路
WO2019127480A1 (zh) 用于处理数值数据的方法、设备和计算机可读存储介质
Pohane et al. VLSI Designing of High Speed Parallel Multiplier Accumulator Based on Radix 4 Booths Multiplier
Bhusare et al. Fixed-width multiplier with simple compensation bias

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
CB02 Change of applicant information

Address after: 100044 1-609, floor 6, building 1, courtyard 42, Xiejie street, gaoliangqiao, Haidian District, Beijing

Applicant after: Beijing Zhongke Shengxin Technology Co.,Ltd.

Address before: Room 403-14, 4th floor, building 6, yard 54, Shijingshan Road, Shijingshan District, Beijing 100043

Applicant before: Beijing Zhongke Shengxin Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20220324

Address after: 225200 No. 58, Sanyuan South Road, Xiannv Town, Jiangdu District, Yangzhou City, Jiangsu Province

Patentee after: Yida Ind Co.,Ltd. Yangzhou

Address before: 100044 1-609, floor 6, building 1, courtyard 42, Xiejie street, gaoliangqiao, Haidian District, Beijing

Patentee before: Beijing Zhongke Shengxin Technology Co.,Ltd.

TR01 Transfer of patent right