CN109165006B - Softmax函数的设计优化及硬件实现方法及系统 - Google Patents
Softmax函数的设计优化及硬件实现方法及系统 Download PDFInfo
- Publication number
- CN109165006B CN109165006B CN201810892536.7A CN201810892536A CN109165006B CN 109165006 B CN109165006 B CN 109165006B CN 201810892536 A CN201810892536 A CN 201810892536A CN 109165006 B CN109165006 B CN 109165006B
- Authority
- CN
- China
- Prior art keywords
- bit width
- result
- unit
- data
- lookup table
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
Softmax函数可以完成标量到概率的转换,被广泛应用在深度神经网络分类器中的输出层。时下,多分类问题作为深度学习的重要应用有着分类类别越来越多,精度要求越来越高的应用趋势。本发明提出了一种Softmax函数的设计优化及硬件实现方法及系统,针对大量输入数据个数、广输入范围与高精度要求,本发明通过两遍输入的输入模式进行计算以减少片上存储资源、通过可配置查找表以应对多种输入定点化方案、通过硬件决定输出定点化方案以提高精度。
Description
技术领域
本发明设计深度神经网络分类器领域,具体设计一种Softmax函数的设计优化及硬件实现方法及系统。
背景技术
Softmax函数可以完成标量到概率的转换,被广泛应用在深度神经网络分类器中的输出层。相比于其他只需要简单加法与乘法的层级如卷积层、池化层、全连接层,Softmax层需要较为复杂的指数运算和除法运算,这给Softmax函数的硬件设计带来相应困难。本发明根据函数性质,拆分指数运算的查找表以减少存储资源,把除法化成一次求倒运算和多次乘法运算以减小计算量。
时下,多分类问题作为深度学习的重要应用有着分类类别越来越多,精度要求越来越高的应用趋势。针对大量输入数据个数、广输入范围与高精度要求,本发明通过两遍输入的输入模式进行计算以减少片上存储资源、通过可配置查找表以应对多种输入定点化方案、通过硬件决定输出定点化方案以提高精度。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种Softmax函数的设计优化及硬件实现方法及系统。
根据本发明提供的一种Softmax函数的设计优化及硬件实现方法,包括如下步骤:
第一输入步骤:进行第一遍输入;
第一指数运算步骤:针对多个输入数据,通过查找表实现指数运算;
累加步骤:对多个输入数据的指数运算结果求和,得到分母;
求倒步骤:对分母求倒得出分母的倒数;
第二输入步骤:进行第二遍输入;
第二指数运算步骤:通过查找表实现指数运算,计算出分子;
最终乘法步骤:对分母的倒数和分子相乘,得到最终结果。
优选地,所述查找表由外部配置并存储在片上。
优选地,还包括查找表拆分步骤:将1个寻址位宽为16位的查找表分为4个寻址位宽为4位的查找表,并使用3个乘法器,求出4个查找表数据的积,得到完整的指数运算结果。
优选地,采用restoring算法实现对分母求导。
优选地,还包括数量级获取步骤:获取同一组数据的指数运算结果并按位求或,获取分母结果,实现输出定点化。
根据本发明提供额一种Softmax函数的设计优化及硬件实现系统,包括如下单元:
指数运算单元:通过查找表实现指数运算;
累加单元:用于对多个输入数据的指数运算结果求和,得到分母;
求倒单元:用于对分母求倒得出分母的倒数;
分子运算单元:通过查找表实现指数运算,计算出分子;
最终乘法单元:用于对分母的倒数和分子相乘,得到最终结果。
优选地,所述查找表由外部配置并存储在片上。
优选地,还包括查找表拆分单元:用于将1个寻址位宽为16位的查找表分为4个寻址位宽为4位的查找表,并使用3个乘法器,求出4个查找表数据的积,得到完整的指数运算结果。
优选地,采用restoring算法实现对分母求导。
优选地,还包括数量级获取单元:用于获取同一组数据的指数运算结果并按位求或,获取分母结果,实现输出定点化。
与现有技术相比,本发明具有如下的有益效果:
1、本发明采用两遍输入的输入模式,使得系统不用存储指数计算的结果,从而大幅减少片上存储资源;
2、本发明通过可配置查找表应对多种输入定点化方案;
3、本发明通过硬件决定输出定点化方案以提高精度。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为Softmax函数的设计优化及硬件实现方法及系统的系统框图;
图2为Softmax函数的设计优化及硬件实现系统的指数运算单元的结构示意图;
图3为Softmax函数的设计优化及硬件实现方法的求倒单元运算流程图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
如图1至图3所示,本发明基于深度神经网络分类器中分类类别越来越多、精度要求越来越高的趋势,针对大输入个数、广输入范围和高精度要求,设计了一种深度学习中的Softmax函数的设计优化及硬件实现方法以及一种深度学习中的Softmax函数的设计优化及硬件实现系统。
本发明的Softmax函数的输入模式为:
Softmax函数的运算包括三个部分:指数运算、求和运算和求倒运算。
本发明针对大量输入数据个数,采用两遍输入的输入模式。第一遍输入进行指数、求和计算出分母然后求倒计算出分母的倒数第二遍输入计算出分子将第一遍输入与第二遍输入结果分别相乘计算出最终结果f(xi)。两遍输入的输入模式使得系统不用存储指数计算的结果,从而大幅减少片上存储资源。
具体的,本发明的指数运算依靠查找表来实现,所述查找表由外界进行配置并存储在片上。为了优化查找表的大小,本发明利用指数计算的基本性质x=ea+b+c+d=ea×eb×ec×ed,将1个寻址位宽为16位的查找表分为4个寻址位宽为4位的查找表,也就是说每个查找表有16个数据,每个数据位宽设置为20位。通过将查找表分割,查找表的数据量大大减小,大小仅为160Byte。需要使用3个乘法器,求出4个查找表数据的积,得到完整的指数运算结果。
本发明通过可配置查找表技术适配了多种输入定点化方案,对于实数范围的输入数据都可以进行指数运算。在一个Soc系统中,该查找表可由主控上的软件生成,通过接口配置到片上。根据定点化方案,该软件使用本发明的查找表生成策略来生成查找表。
查找表生成策略在指数运算单元的设计中有重要意义。好的查找表生成策略能有效增加指数运算单元输出的位宽利用率,在位宽相同的情况下获得更高的精度。下面基于16位定点化方案描述查找表数值的生成策略及其原理。
指数运算单元查找表的拆分原理为:
设指数运算单元的定点输入X为一个十六位的二进制数,其表示的浮点数为X×LSBX,其中LSBX是X的最低位表示的权重。将X每四位一组拆分成四个数,即X[15∶0]={A[3∶0],B[3∶0],C[3∶0],D[3∶0]},可得X=A×212+B×28+C×24+D,将A,B,C,D分别输入四个查找表可分别得到将这四个数相乘后得到即指数运算单元的最终结果。然而,在本发明的系统中,不需要得到而只需得到因为对于softmax计算,其中C为常数。从而,可以将四个查找表结果修改为 其中C1C2C3C4=C。
查找表生成公式介绍:
查找表生成策略在于让每个查找表输入为最大值时输出也取到最大值即20’b1111_1111_1111_1111_1111。使运算结果的有效位尽可能处在高位,从而减小之后截掉数据低位带来的误差。
对于除了最高位查找表以外的其他三个查找表,查找表输出的二进制数值为其中[x]表示x的整数部分。当输入B取到最大值B=4’b1111时,该查找表的输出也取到最大值20’b1111_1111_1111_1111_1111。对于最高位查找表,查找表输出的二进制数值为其中mod为取模运算,该运算的作用是处理最高位的符号位,而k是[(A+8)mod16]能取到的最大值,由数据范围得到。这样的设计使查找表每个输入对应的输出都尽可能大,也就意味着,在截取位数相同的条件下,截位导致的相对误差被降到了最小。
更为具体的,因为Softmax中除法运算的分母总是相同的,所以可以将除法运算分解为一个求倒运算和多个乘法运算。求倒单元采用restoring算法实现。求倒单元运算流程如图3所示。
本发明可以通过数量级获取单元做到硬件决定输出定点化方案,最大程度增加有效输出位数占总输出位宽的比重。该方案相对于固定定点化方案的输出,相同位宽下精度有极大的提升;相对于仅根据输入定点化方案调整输出定点化方案的设计,相同位宽下精度仍有相当大的提升。
数量级获取单元的具体运算方式如下:
数量级获取单元会获取同一组数据的指数运算结果并按位求或,最终的求或结果通过计数与判断数得高位连续为零的个数Z1。同时数量级获取单元也会得到累加器的结果并通过计数与判断数得高位连续为零的个数Z2。接着把Z1与Z2传给求倒单元从而让求倒单元取得指数运算单元结果和累加器结果的有效位,达到不损失精度条件下减小位宽从而减小资源与功耗的目的。同时因为求倒运算的延迟与位宽紧密相关,求倒运算的延迟也相应减小了。输出的定点化方案也可由Z1和Z2算得,设输出总位宽为Wout,输出定点化方案小数位宽为Wfrac,指数运算单元输出位宽为Wexp,累加器输出位宽为Waccu,则Wfrac=(Wexp-Z1)-(Waccu-Z2)-(Wout-1)。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种Softmax函数的设计优化及硬件实现方法,其特征在于,包括如下步骤:
第一输入步骤:进行第一遍输入;
第一指数运算步骤:针对多个输入数据,通过查找表实现指数运算;
累加步骤:对多个输入数据的指数运算结果求和,得到分母;
求倒步骤:对分母求倒得出分母的倒数;
第二输入步骤:进行第二遍输入;
第二指数运算步骤:通过查找表实现指数运算,计算出分子;
最终乘法步骤:对分母的倒数和分子相乘,得到最终结果;
通过数量级获取单元做到硬件决定输出定点化方案,数量级获取单元的具体运算方式如下:
数量级获取单元会获取同一组数据的指数运算结果并按位求或,最终的求或结果通过计数与判断数得高位连续为零的个数Z1,同时数量级获取单元也会得到累加器的结果并通过计数与判断数得高位连续为零的个数Z2,接着把Z1与Z2传给求倒单元从而让求倒单元取得指数运算单元结果和累加器结果的有效位,达到不损失精度条件下减小位宽从而减小资源与功耗的目的;同时因为求倒运算的延迟与位宽紧密相关,求倒运算的延迟也相应减小了,输出的定点化方案也由Z1和Z2算得,设输出总位宽为Wout,输出定点化方案小数位宽为Wfrac,指数运算单元输出位宽为Wexp,累加器输出位宽为Waccu,则Wfrac=(Wexp-Z1)-(Waccu-Z2)-(Wout-1)。
2.根据权利要求1所述的Softmax函数的设计优化及硬件实现方法,其特征在于,所述查找表由外部配置并存储在片上。
3.根据权利要求1所述的Softmax函数的设计优化及硬件实现方法,其特征在于,还包括查找表拆分步骤:
将1个寻址位宽为16位的查找表分为4个寻址位宽为4位的查找表,并使用3个乘法器,求出4个查找表数据的积,得到完整的指数运算结果。
4.根据权利要求1所述的Softmax函数的设计优化及硬件实现方法,其特征在于,采用restoring算法实现对分母求导。
5.根据权利要求1所述的Softmax函数的设计优化及硬件实现方法,其特征在于,还包括数量级获取步骤:
获取同一组数据的指数运算结果并按位求或,获取分母结果,实现输出定点化。
6.一种Softmax函数的设计优化及硬件实现系统,其特征在于,包括如下单元:
指数运算单元:通过查找表实现指数运算;
累加单元:用于对多个输入数据的指数运算结果求和,得到分母;
求倒单元:用于对分母求倒得出分母的倒数;
分子运算单元:通过查找表实现指数运算,计算出分子;
最终乘法单元:用于对分母的倒数和分子相乘,得到最终结果;
通过数量级获取单元做到硬件决定输出定点化方案,数量级获取单元的具体运算方式如下:
数量级获取单元会获取同一组数据的指数运算结果并按位求或,最终的求或结果通过计数与判断数得高位连续为零的个数Z1,同时数量级获取单元也会得到累加器的结果并通过计数与判断数得高位连续为零的个数Z2,接着把Z1与Z2传给求倒单元从而让求倒单元取得指数运算单元结果和累加器结果的有效位,达到不损失精度条件下减小位宽从而减小资源与功耗的目的;同时因为求倒运算的延迟与位宽紧密相关,求倒运算的延迟也相应减小了,输出的定点化方案也由Z1和Z2算得,设输出总位宽为Wout,输出定点化方案小数位宽为Wfrac,指数运算单元输出位宽为Wexp,累加器输出位宽为Waccu,则Wfrac=(Wexp-Z1)-(Waccu-Z2)-(Wout-1)。
7.根据权利要求6所述的Softmax函数的设计优化及硬件实现系统,其特征在于,所述查找表由外部配置并存储在片上。
8.根据权利要求6所述的Softmax函数的设计优化及硬件实现系统,其特征在于,还包括查找表拆分单元:
用于将1个寻址位宽为16位的查找表分为4个寻址位宽为4位的查找表,并使用3个乘法器,求出4个查找表数据的积,得到完整的指数运算结果。
9.根据权利要求6所述的Softmax函数的设计优化及硬件实现系统,其特征在于,采用restoring算法实现对分母求导。
10.根据权利要求6所述的Softmax函数的设计优化及硬件实现系统,其特征在于,还包括数量级获取单元:
用于获取同一组数据的指数运算结果并按位求或,获取分母结果,实现输出定点化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810892536.7A CN109165006B (zh) | 2018-08-07 | 2018-08-07 | Softmax函数的设计优化及硬件实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810892536.7A CN109165006B (zh) | 2018-08-07 | 2018-08-07 | Softmax函数的设计优化及硬件实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109165006A CN109165006A (zh) | 2019-01-08 |
CN109165006B true CN109165006B (zh) | 2021-08-06 |
Family
ID=64895407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810892536.7A Active CN109165006B (zh) | 2018-08-07 | 2018-08-07 | Softmax函数的设计优化及硬件实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109165006B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110135086B (zh) * | 2019-05-20 | 2022-09-13 | 合肥工业大学 | 计算精度可变的softmax函数硬件电路及其实现方法 |
CN111178516A (zh) * | 2019-12-11 | 2020-05-19 | 浙江大学 | 一种基于分段查找表的softmax函数计算方法及硬件系统 |
CN112685693B (zh) * | 2020-12-31 | 2022-08-02 | 南方电网科学研究院有限责任公司 | 一种实现Softmax函数的设备 |
GB2604142B (en) * | 2021-02-25 | 2023-02-22 | Imagination Tech Ltd | Implementation of softmax and exponential in hardware |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992284A (zh) * | 2017-11-27 | 2018-05-04 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
CN108021537A (zh) * | 2018-01-05 | 2018-05-11 | 南京大学 | 一种基于硬件平台的softmax实现方式 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8180633B2 (en) * | 2007-03-08 | 2012-05-15 | Nec Laboratories America, Inc. | Fast semantic extraction using a neural network architecture |
CN107423026B (zh) * | 2017-04-21 | 2021-07-13 | 中国人民解放军国防科学技术大学 | 一种正余弦函数计算的实现方法及装置 |
CN107451552A (zh) * | 2017-07-25 | 2017-12-08 | 北京联合大学 | 一种基于3d‑cnn和卷积lstm的手势识别方法 |
-
2018
- 2018-08-07 CN CN201810892536.7A patent/CN109165006B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107992284A (zh) * | 2017-11-27 | 2018-05-04 | 中国航空无线电电子研究所 | 一种可编程器件的除法功能实现方法 |
CN108021537A (zh) * | 2018-01-05 | 2018-05-11 | 南京大学 | 一种基于硬件平台的softmax实现方式 |
Also Published As
Publication number | Publication date |
---|---|
CN109165006A (zh) | 2019-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109165006B (zh) | Softmax函数的设计优化及硬件实现方法及系统 | |
CN110852416B (zh) | 基于低精度浮点数数据表现形式的cnn硬件加速计算方法及系统 | |
CN110852434B (zh) | 基于低精度浮点数的cnn量化方法、前向计算方法及硬件装置 | |
CN108021537B (zh) | 一种基于硬件平台的softmax函数计算方法 | |
CN109214509B (zh) | 一种用于深度神经网络高速实时量化结构和运算实现方法 | |
CN111832719A (zh) | 一种定点量化的卷积神经网络加速器计算电路 | |
CN110362292A (zh) | 一种基于近似4-2压缩器的近似乘法运算方法和近似乘法器 | |
CN111382860B (zh) | 一种lstm网络的压缩加速方法及fpga加速器 | |
CN111488133A (zh) | 高基数近似布斯编码方法和混合基数布斯编码近似乘法器 | |
CN114647399B (zh) | 一种低能耗高精度近似并行定宽乘法累加装置 | |
CN110888623B (zh) | 数据转换方法、乘法器、加法器、终端设备及存储介质 | |
CN112434801A (zh) | 一种按照比特精度进行权重拆分的卷积运算加速方法 | |
WO2023178860A1 (zh) | 一种基于指数函数和softmax函数的优化方法、硬件系统及芯片 | |
CN110187866B (zh) | 一种基于双曲cordic的对数乘法计算系统及方法 | |
US7912891B2 (en) | High speed low power fixed-point multiplier and method thereof | |
WO2022170811A1 (zh) | 一种适用于混合精度神经网络的定点乘加运算单元及方法 | |
Takagi | Generating a power of an operand by a table look-up and a multiplication | |
CN110825346B (zh) | 一种低逻辑复杂度的无符号近似乘法器 | |
CN110837624B (zh) | 一种针对sigmoid函数的近似计算装置 | |
CN110879697B (zh) | 一种近似计算tanh函数的装置 | |
Abdelhamid et al. | Applying the residue number system to network inference | |
CN115062768A (zh) | 一种逻辑资源受限平台的Softmax硬件实现方法及系统 | |
CN115526131A (zh) | 多级编码近似计算Tanh函数的方法及装置 | |
WO2023078364A1 (zh) | 矩阵乘法的运算方法及装置 | |
CN107015783B (zh) | 一种浮点角度压缩实现方法及装置 |
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 |