CN112734023B - 应用于循环神经网络的激活函数的可重构电路 - Google Patents

应用于循环神经网络的激活函数的可重构电路 Download PDF

Info

Publication number
CN112734023B
CN112734023B CN202110144811.9A CN202110144811A CN112734023B CN 112734023 B CN112734023 B CN 112734023B CN 202110144811 A CN202110144811 A CN 202110144811A CN 112734023 B CN112734023 B CN 112734023B
Authority
CN
China
Prior art keywords
function
bit
data
circuit
selector
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
CN202110144811.9A
Other languages
English (en)
Other versions
CN112734023A (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.)
Institute of Semiconductors of CAS
Original Assignee
Institute of Semiconductors of CAS
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 Institute of Semiconductors of CAS filed Critical Institute of Semiconductors of CAS
Priority to CN202110144811.9A priority Critical patent/CN112734023B/zh
Publication of CN112734023A publication Critical patent/CN112734023A/zh
Application granted granted Critical
Publication of CN112734023B publication Critical patent/CN112734023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Neurology (AREA)
  • Image Processing (AREA)
  • Logic Circuits (AREA)

Abstract

本发明提供了一种用于循环神经网络的激活函数的可重构电路,包括原码转换电路、一比特移位器、二比特移位器、第一选择器、第一反相器、误差补偿单元、乘法器单元、第二选择器、第二反相器和镜像电路;本发明采用重构复用的方式,以同一套电路结构,实现两种不同的激活函数,节省了硬件资源。本发明针对8比特数据位宽,进行误差补偿设计,可实现更高的计算精度。本发明的循环神经网络激活函数不占用片上存储资源,面积小,功耗低,可用于大规模网络加速器的设计中。

Description

应用于循环神经网络的激活函数的可重构电路
技术领域
本发明涉及集成电路技术领域,尤其涉及一种应用于循环神经网络的激活函数的可重构电路。
背景技术
为提高人工神经网络的计算效率,ASIC(专用集成电路)硬件实现是对其加速的主要途径。双曲函数(Tanh和Sigmoid)是常用的神经网络激活函数,特别是在处理具有时序信息的循环神经网络(RNN)以及它的变种网络:长短期记忆网络(LSTM)和循环门控单元(GRU)中。但因为双曲函数中包含幂运算和除法运算,使其成循环神经网络硬件化过程中的难点之一。
现有的双曲函数硬件化方法主要有:查找表(LUT)法、CORDIC法、分段线性近似(PWL)法、分段非线性近似法以及混合法。查找表法是最直接的方法,但要实现高精度。则需要较大的存储空间,在大规模的网络加速中迫于片上存储压力,LUT并不适用。CORDIC法使用的硬件资源少,但需要多个周期的迭代计算才可获得高精度。两种分段近似的方法具有相似性,分段数越多,近似函数精度越高。相比于分段线性,分段非线性近似法由于其非线性特性,具有分段少、精度高的优点,但其消耗硬件资源多。
在实现本发明构思的过程中,发明人发现相关技术中至少存在如下问题:现有技术的这些方法在实现Tanh函数和Sigmoid函数时,均要针对两种函数设计两套不同的电路,不能实现二者的重构复用,徒增硬件资源和设计成本。并且当前循环神经网络硬件加速中多采用8比特数据,网络推理精度对激活函数精度敏感。一个高精度适用于8比特循环神经网络加速器的,激活函数硬件实现方案是有必要的。
发明内容
有鉴于此,本发明的主要目的在于提供一种应用于循环神经网络的激活函数的可重构电路,以期部分地解决上述技术问题中的至少之一。
为了实现上述目的,本发明提供了一种应用于循环神经网络的激活函数的可重构电路,包括原码转换电路、一比特移位器、二比特移位器、第一选择器、第一反相器、误差补偿单元、乘法器单元、第二选择器、第二反相器和镜像电路;其中,
待处理数据输入所述原码转换电路,输出为输入数据的二进制原码形式,将原码转换电路的输出数据输入所述一比特移位器和所述二比特移位器,将两个比特移位器的输出数据输入所述第一选择器,根据模式选择信号Select选择数据的移动位数;在所述第一选择器之后采用所述第一反相器对数据进行取反操作,经过第一反相器之后的数据输入所述乘法器单元,计算经过第一反相器之后的数据的平方值;接着,输入所述第二选择器,根据模式选择信号Select选择所述乘法器单元计算结果的移动位数,在所述第二选择器之后用所述第二反相器对数据进行取反操作;最后将上述最终结果输入所述镜像电路,用于镜像计算函数自变量负半轴的函数值,进而获得完整的定义域上的函数值。
其中,所述可重构电路适用于8比特循环神经网络加速器的高精度激活函数计算电路。
其中,所述误差补偿单元用于根据原码所在值域范围对函数计算值进行误差补偿,补偿值以达到提高精度的目的。
其中,所述一比特移位器是将输入值右移一比特;所述二比特移位器是将输入值右移二比特。
其中,所述第一选择器包括两种计算模式的选择;如果模式选择信号Select为1,选择Sigmoid函数计算模式,数据向右移动2比特;如果模式选择信号Select为0,选择Tanh函数计算模式,数据向右移动1比特。
其中,所述第二选择器包括两种计算模式的选择;如果模式选择信号Select为1,选择Sigmoid计算模式,数据向右移动1比特;如果模式选择信号Select为0,选择Tanh计算模式,数据不移动。
其中,所述镜像电路包括具有奇函数性质的Tanh函数镜像和类奇函数的Sigmoid函数镜像。
其中,所述误差补偿单元包括依据精度要求的误差补偿区间划分方式。
其中,以二阶近似为基础的硬件友好的Sigmoid函数近似表达式如下式所示:
其中,以二阶近似为基础的硬件友好的Tanh函数近似表达式如下式所示:
基于上述技术方案可知,本发明的可重构电路相对于现有技术至少具有如下有益效果的一部分:
(1)本发明采用重构复用的方式,以同一套电路结构,实现两种不同的激活函数,节省了硬件资源。
(2)本发明针对8比特数据位宽,进行误差补偿设计,可实现更高的计算精度。
(3)本发明的循环神经网络激活函数不占用片上存储资源,面积小,功耗低,可用于大规模网络加速器的设计中。
附图说明
图1为本发明实施例提供的应用于循环神经网络的激活函数可重构设计结构示意图;
图2为本发明实施例提供的镜像电路的结构示意图;
图3为本发明实施例提供的Sigmoid函数和Tanh函数正半轴近似电路结构对比图;
图4为本发明实施例提供的误差补偿区间划分示意图;
图5为本发明实施例提供的Sigmoid近似函数图像及误差曲线;
图6为本发明实施例提供的Tanh近似函数图像及误差曲线。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
本发明公开了一种用于循环神经网路的激活函数的可重构电路,是适用于8比特循环神经网络加速器的高精度激活函数计算电路,本发明结构简单,硬件资源消耗少,精度高,易于直接嵌入循环神经网络加速器中。
如图1所示,为应用于循环神经网络的激活函数可重构设计结构示意图;使用电路设计中的分时复用技术,对循环神经网络中的激活函数进行可重构设计。其包含:原码转换电路、一比特移位器、二比特移位器、第一选择器、误差补偿单元、乘法器单元、第二选择器、镜像电路和必要的反相器。
原码转换电路:将输入值转换成二进制原码形式,即对于互为相反数的自变量值,只有符号位不同。
一比特移位器:将输入值右移一比特,即计算2-1x。
二比特移位器:将输入值右移二比特,即计算2-2x。
第一选择器:根据模式选择信号Select选择数据的移动位数,亦是计算模式的选择。如果模式选择信号Select为1,选择Sigmoid函数计算模式,数据向右移动2比特;如果模式选择信号Select为0,选择Tanh函数计算模式,数据向右移动1比特。
在第一选择器之后用反相器对数据进行取反操作,这里的取反操作是代替了(1-2-nx)(n=1或2)中的减法操作,以减少硬件资源的消耗;乘法器单元:用于计算经过反相器之后的数据的平方值。
第二选择器:根据模式选择信号Select选择乘法器单元计算结果的移动位数,亦是计算模式的选择。如果模式选择信号Select为1,选择Sigmoid计算模式,数据向右移动1比特,即计算2-1(1-2-2x)2;如果模式选择信号Select为0,选择Tanh计算模式,数据不移动。
在第二选择器之后用反相器对数据再次进行取反操作。即计算1-2-m(1-2-nx)2(m=1或0,n=1或2)。
至此完成的是Sigmoid函数和Tanh函数自变量正半轴的电路结设计。
本实施例的循环神经网络激活函数输出位宽为8比特(1比特的符号位,7比特的小数位)。在循环神经网络中,激活函数之前是大量的矩阵向量乘法,数据位宽被拓展,因此激活函数输入位宽可根据精度要求灵活调整。依据Sigmoid函数和Tanh函数一阶导数,以及二者在零点附近的极限值,可知输入数据的小数位宽至少为8。输入数据的整数位宽根据输入值的范围进行灵活调整。Sigmoid函数关于(0,0.5)点对称,Tanh函数关于(0,0)点对称,在硬件设计时,先实现自变量正半轴的函数值计算,负半轴通过镜像正半轴函数值来获取。基于最小二乘法,使用python分别对Sigmoid函数和Tanh函数进行二阶拟合,并通过log2变换,可以得到硬件友好的二阶近似函数。
以二阶近似为基础的硬件友好的Sigmoid函数近似计算表达式:
以二阶近似为基础的硬件友好的Tanh函数近似计算表达式:
对于正半轴,即x>0时,Sigmoid函数和Tanh函数近似电路结构如图3所示。在图3中,上半部分为Sigmoid函数近似电路结构,下半部分为Tanh函数近似电路结构。可直观发现二者的重复结构,即图3中虚线框部分所示。重复结构是反相器和乘法器,其为Sigmoid函数和Tanh函数近似电路的主要资源消耗部分。
为了完整计算全定义域上的函数值,在其后增加镜像电路模块。镜像电路:用于镜像计算函数自变量负半轴的函数值。镜像电路结构如图2所示,首先对正半轴电路计算值进行取反加一的操作,得到正半轴计算值相反数的二进制补码的。如果模式选择信号Select为0,选择Tanh函数计算模式,直接输出二进制补码。如果模式信号Select为1,选择的Sigmoid函数计算模式,此时不能直接将二进制补码输出。因为sigmoid函数关于(0,0.5)点对称,且函数值非负,若直接取二进制补码输出,输出值与实际值绝对值差1。所以,将Sigmoid计算模式下的二进制补码的最高位:符号位取反,即可得到Sigmoid函数自变量处于负半轴时的函数值。
误差补偿单元:用于根据原码所在值域范围对函数计算值进行误差补偿,补偿值以达到提高精度的目的。误差补偿区间划分示意如图4所示。对Sigmoid和Tanh近似函数的误差曲线分别进行如下划分,以获取补偿区间和补偿值。首先对误差曲线进行横向的切分(图4中横向虚线所示),切分间距Δε是近似函数的目标精度(亦最大绝对误差),再根据切分线与误差曲线的交点,确定补偿区间和补偿值。例如,图4中,横向切分线与误差曲线的交点分别为A,B,对应的横坐标为xi,xi+1,则补偿区间为x∈(xi,xi+1),补偿值为2Δε。
Sign信号是符号位,用于选择输出结果是自变量正半轴的函数值或是自变量负半轴的函数值。当Sign为1,表示自变量为负数,输出函数值选择负半轴镜像的结果;当Sign为0,表示自变量为正数,输出函数值选择正半轴计算结果。
图5上部分是Sigmoid近似函数图像、下部分是误差曲线划分及误差补偿之后误差曲线。图6上部分是Tanh近似函数图像、下部分是误差曲线划分及误差补偿之后误差曲线。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种用于循环神经网络的激活函数的可重构电路,其特征在于,包括原码转换电路、一比特移位器、二比特移位器、第一选择器、第一反相器、误差补偿单元、乘法器单元、第二选择器、第二反相器和镜像电路;其中,
待处理数据输入所述原码转换电路,输出为输入数据的二进制原码形式,将原码转换电路的输出数据输入所述一比特移位器和所述二比特移位器,将两个比特移位器的输出数据输入所述第一选择器,根据模式选择信号Select选择数据的移动位数;在所述第一选择器之后采用所述第一反相器对数据进行取反操作,经过第一反相器之后的数据输入所述乘法器单元,计算经过第一反相器之后的数据的平方值;接着,输入所述第二选择器,根据模式选择信号Select选择所述乘法器单元计算结果的移动位数,在所述第二选择器之后用所述第二反相器对数据进行取反操作;最后将上述取反操作的最终结果输入所述镜像电路,用于镜像计算函数自变量负半轴的函数值,进而获得完整的定义域上的函数值;
所述第一选择器包括两种计算模式的选择;如果模式选择信号Select为1,选择Sigmoid函数计算模式,数据向右移动2比特;如果模式选择信号Select为0,选择Tanh函数计算模式,数据向右移动1比特;
所述第二选择器包括两种计算模式的选择;如果模式选择信号Select为1,选择Sigmoid计算模式,数据向右移动1比特;如果模式选择信号Select为0,选择Tanh计算模式,数据不移动;
所述镜像电路包括具有奇函数性质的Tanh函数镜像和类奇函数的Sigmoid函数镜像。
2.根据权利要求1所述的可重构电路,其特征在于,所述可重构电路适用于8比特循环神经网络加速器的高精度激活函数计算电路。
3.根据权利要求1所述的可重构电路,其特征在于,所述误差补偿单元用于根据原码所在值域范围对函数计算值进行误差补偿,补偿值以达到提高精度的目的。
4.根据权利要求1所述的可重构电路,其特征在于,所述一比特移位器是将输入值右移一比特;所述二比特移位器是将输入值右移二比特。
5.根据权利要求1所述的可重构电路,其特征在于,所述误差补偿单元包括依据精度要求的误差补偿区间划分方式。
6.根据权利要求1所述的可重构电路,其特征在于,以二阶近似为基础的硬件友好的Sigmoid函数近似表达式如下式所示:
7.根据权利要求1所述的可重构电路,其特征在于,以二阶近似为基础的硬件友好的Tanh函数近似表达式如下式所示:
CN202110144811.9A 2021-02-02 2021-02-02 应用于循环神经网络的激活函数的可重构电路 Active CN112734023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110144811.9A CN112734023B (zh) 2021-02-02 2021-02-02 应用于循环神经网络的激活函数的可重构电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110144811.9A CN112734023B (zh) 2021-02-02 2021-02-02 应用于循环神经网络的激活函数的可重构电路

Publications (2)

Publication Number Publication Date
CN112734023A CN112734023A (zh) 2021-04-30
CN112734023B true CN112734023B (zh) 2023-10-13

Family

ID=75595621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110144811.9A Active CN112734023B (zh) 2021-02-02 2021-02-02 应用于循环神经网络的激活函数的可重构电路

Country Status (1)

Country Link
CN (1) CN112734023B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113705776B (zh) * 2021-08-06 2023-08-08 山东云海国创云计算装备产业创新中心有限公司 一种基于asic实现激活函数的方法、系统、设备和存储介质
CN113837365A (zh) * 2021-09-22 2021-12-24 中科亿海微电子科技(苏州)有限公司 实现sigmoid函数逼近的模型、FPGA电路及工作方法
CN117270811B (zh) * 2023-11-21 2024-02-02 上海为旌科技有限公司 非线性算子近似计算方法、装置、神经网络处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248841A (ja) * 1994-03-09 1995-09-26 Mitsubishi Electric Corp 非線形関数発生装置およびフォーマット変換装置
CN109816105A (zh) * 2019-01-16 2019-05-28 北京时代民芯科技有限公司 一种可配置的神经网络激活函数实现装置
CN111581593A (zh) * 2020-04-21 2020-08-25 天津大学 可配置重用的分段式查找表激活函数实现装置
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路
CN112199072A (zh) * 2020-11-06 2021-01-08 杭州海康威视数字技术股份有限公司 一种基于神经网络层的数据处理方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248841A (ja) * 1994-03-09 1995-09-26 Mitsubishi Electric Corp 非線形関数発生装置およびフォーマット変換装置
CN109816105A (zh) * 2019-01-16 2019-05-28 北京时代民芯科技有限公司 一种可配置的神经网络激活函数实现装置
CN111581593A (zh) * 2020-04-21 2020-08-25 天津大学 可配置重用的分段式查找表激活函数实现装置
CN111832719A (zh) * 2020-07-28 2020-10-27 电子科技大学 一种定点量化的卷积神经网络加速器计算电路
CN112199072A (zh) * 2020-11-06 2021-01-08 杭州海康威视数字技术股份有限公司 一种基于神经网络层的数据处理方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种神经网络的可配置激活函数模块设计;苏潮阳;应三丛;;单片机与嵌入式系统应用(04);全文 *

Also Published As

Publication number Publication date
CN112734023A (zh) 2021-04-30

Similar Documents

Publication Publication Date Title
CN112734023B (zh) 应用于循环神经网络的激活函数的可重构电路
US5506797A (en) Nonlinear function generator having efficient nonlinear conversion table and format converter
TWI383595B (zh) 用於低密度奇偶校驗解碼器之有效校驗節點訊息轉換近似
CN111581593B (zh) 可配置重用的分段式查找表激活函数实现装置
CN112486455B (zh) 一种基于cordic方法求复数的n次开根号的硬件计算系统及其计算方法
CN112051980B (zh) 一种基于牛顿迭代法的非线性激活函数计算装置
CN112651496A (zh) 一种处理激活函数的硬件电路及芯片
CN111984227A (zh) 一种针对复数平方根的近似计算装置及方法
JP2585649B2 (ja) 除算回路
CN113377332A (zh) 一种基于线性分段的softmax硬件实现方法
CN109614073B (zh) 四象限反正切函数硬件实现电路
Xiong et al. Hardware implementation of an improved stochastic computing based deep neural network using short sequence length
CN110837624B (zh) 一种针对sigmoid函数的近似计算装置
CN110879697B (zh) 一种近似计算tanh函数的装置
CN115526131A (zh) 多级编码近似计算Tanh函数的方法及装置
Cao et al. Cordic-based softmax acceleration method of convolution neural network on FPGA
CN108197076B (zh) 一种无溢出的圆周旋转cordic算法实现方法和装置
CN113672196B (zh) 一种基于单数字信号处理单元的双乘法计算装置和方法
CN113988279A (zh) 一种支持负值激励的存算阵列输出电流读出方法及系统
CN109190084B (zh) 一种正余弦计算的硬件实现方法
Nguyen et al. Low complexity sigmoid function implementation using probability-based piecewise linear function
CN116432711B (zh) SiLU激活函数的硬件实现方法、装置及计算设备
TWI858950B (zh) k簇殘數系統及產生k簇殘數系統的方法
CN118378000B (zh) 一种可配置的超越函数向量计算装置
CN116991359B (zh) Booth乘法器、混合Booth乘法器及运算方法

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