CN112069455A - 一种log-softmax函数硬件加速计算方法 - Google Patents

一种log-softmax函数硬件加速计算方法 Download PDF

Info

Publication number
CN112069455A
CN112069455A CN202010973909.0A CN202010973909A CN112069455A CN 112069455 A CN112069455 A CN 112069455A CN 202010973909 A CN202010973909 A CN 202010973909A CN 112069455 A CN112069455 A CN 112069455A
Authority
CN
China
Prior art keywords
log
softmax function
interval
calculation
value
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.)
Pending
Application number
CN202010973909.0A
Other languages
English (en)
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.)
Chipintelli Technology Co Ltd
Original Assignee
Chipintelli 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 Chipintelli Technology Co Ltd filed Critical Chipintelli Technology Co Ltd
Priority to CN202010973909.0A priority Critical patent/CN112069455A/zh
Publication of CN112069455A publication Critical patent/CN112069455A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种log‑softmax函数硬件加速计算方法,包括以下步骤:将系统中存储的对数表查询区间设置为连续区间(a,b),a与b为区间端点;对log‑softmax函数中对数项进行拆分:使其拆分为‑p*lnk+lnc,p为乘法次数,最终使c落在区间(a,b)内;通过查表获取lnk和lnc的值,计算出log‑softmax函数。本发明在嵌入式应用有限的硬件资源下,将log‑softmax函数的指数计算分成多个查找表来计算,对数运算也通过公式等效查表计算获得,大大提高了log‑softmax运算的速度,减小了计算复杂度,所需硬件资源也大幅减小。采用这种方法的深度学习模型,在不影响识别效果的情况下,提高了响应速度和训练速度,节省大量硬件资源。

Description

一种log-softmax函数硬件加速计算方法
技术领域
本发明属于人工智能技术领域,涉及一种嵌入式算法,具体涉及一种log-softmax函数硬件加速计算方法。
背景技术
近年来,深度学习发展迅猛,log-Softmax函数在各种深度学习模型中经常作为训练或者预测的常用函数。log-Softmax计算主要包含指数和对数运算。这两种运算在硬件上实现会消耗大量计算资源,并且计算较慢。
目前关于指数运算和对数运算的方法有:查表法;CORDIC法。查表法是指实现将数值对应的计算结果存储下来,再通过rom寻址直接得到对应的计算结果。在等同规格定点数下查表法的精度较高,但是在大范围上进行计算时需要存储大量的结果,查找表的长度非常长,需要消耗大量资源,在资源有限的硬件平台上实现成本较高。CORDIC方法利用迭代特性,能够进行资源复用,占用资源比较少,迭代次数越多,精度越高,但是需要进行流水线改造,成本较高,并且由于其旋转角度限制,CORDIC方法的计算范围有限,不能计算大范围输入值的计算。
发明内容
为克服现有技术存在的缺陷,针对指数和对数运算的特性,为了克服现有技术的计算复杂度高,所需硬件资源多,计算速度慢的缺点;本发明公开了一种log-softmax函数硬件加速计算方法。
本发明所述log-softmax函数硬件加速计算方法,其特征在于,包括以下步骤:
S1.将系统中存储的对数表存储区间设置为连续区间[a,b],a与b为区间端点;所述对数表还存储有lnk,k为处理系数, k为大于1的正整数;
S2.对log-softmax函数中对数项按照式1进行拆分:
Figure 136217DEST_PATH_IMAGE001
----1;
Figure 325889DEST_PATH_IMAGE002
求和得到y;
S3.检查y值是否存储在对数表中,是则直接查对数表计算;否则将y连续乘以或除以处理系数k并使连续相乘后的值c落在区间[a,b]内;使对数拆分为-m*lnk+lnc或m*lnk+lnc,m为乘法次数,m 的取值使c落在区间[a,b]内即可;
S4.通过查表获取lnk和lnc的值,计算出log-softmax函数。
具体的:所述步骤S3中,如果发现y值未存储在对数表中;
当y值大于b时,将y连续除以系数k;
当y值大于0小于a时,将y连续乘以系数k。
具体的:b-a不大于一。
具体的:a=0或1,b=a+1,k=2。
具体的:a=1,b=2。
本发明在嵌入式应用有限的硬件资源下,将log-softmax函数的指数计算分成多个查找表来计算,对数运算也通过公式等效查表计算获得,大大提高了log-softmax运算的速度,减小了计算复杂度,所需硬件资源也大幅减小。采用这种方法的深度学习模型,在不影响识别效果的情况下,提高了响应速度和训练速度,节省大量硬件资源。
附图说明
图1是本发明所述log-softmax函数硬件加速计算方法的一个具体实施方式流程示意图。
具体实施方式
下面对本发明的具体实施方式作进一步的详细说明。
现有的log-softmax计算公式如下:
Figure 288029DEST_PATH_IMAGE003
其中,e为自然常数,xi表示softmax的第i个数,xj表示softmax的第j个数,
Figure 854140DEST_PATH_IMAGE004
表示从第1个
Figure 483704DEST_PATH_IMAGE005
到第n个
Figure 844278DEST_PATH_IMAGE005
的和,n为需要计算softmax函数的个数,ln表示求自然常数为底的对数,si表示第i个数xi的softmax结果。
针对指数和对数运算的特性,为了克服现有技术的计算复杂度高,所需硬件资源多,计算速度慢的缺点,本发明提供了一种log-softmax的加速计算的方法。实现过程如下:
S1.将系统中存储的对数表存储区间设置为连续区间[a,b],a与b为区间端点;所述对数表还存储有lnk,k为处理系数, k为大于1的正整数;
S2.对log-softmax函数中对数项按照式1进行拆分:
Figure 231397DEST_PATH_IMAGE001
----1;
Figure 397937DEST_PATH_IMAGE002
求和得到y;
S3.检查y值是否存储在对数表中,是则直接查对数表计算;否则将y连续乘以或除以处理系数k并使连续相乘后的值c落在区间[a,b]内;使对数拆分为-m*lnk+lnc或m*lnk+lnc,m为乘法次数,m 的取值使c落在区间[a,b]内即可;
S4.通过查表获取lnk和lnc的值,计算出log-softmax函数。
首先计算
Figure 288532DEST_PATH_IMAGE005
。根据指数计算的特性,可知
Figure 85587DEST_PATH_IMAGE006
,其中a+b+c=
Figure 694423DEST_PATH_IMAGE007
,拆分后的a,b,c分别作为查表的寻址地址来进行查表得到
Figure 930232DEST_PATH_IMAGE008
Figure 940913DEST_PATH_IMAGE009
Figure 908869DEST_PATH_IMAGE010
,再将查表得到的值相乘得到最终自然指数结果然后进行累加和除法运算,最后需要计算对数函数。
由对数的运算特性可知
Figure 70248DEST_PATH_IMAGE001
将原式中的除法运算部分转换为减法运算。
针对对数运算采用两种方式,使最终对数查表值落在设定的区间[a,b]内 ,该区间越小,存储的对数表数据量越小,对嵌入式设计计算硬件要求越低。通常可以设置区间长度不大于1,例如设定a=1,b=2,,或a=0,b=1。
①当
Figure 781852DEST_PATH_IMAGE002
累加值大于1时,取k=1/2,将累加后的值
Figure 709357DEST_PATH_IMAGE002
一直乘1/2至得到c,其中c为[1,2]之间,即除2一直至得到的商c大于1小于2,落入设定的区间[1,2];
将累加值分解
Figure 848214DEST_PATH_IMAGE011
,则
Figure 431642DEST_PATH_IMAGE012
(j) ,其中
Figure 9254DEST_PATH_IMAGE013
可以通过查表得到。
如果采用累加值直接查表,由于累加值为任意数,储存对应的对数表数据量巨大,通过将需要查表的c值缩小区间到[1,2],对数表的储存数据量大幅减小。
②当累加值小于1大于0时,可以先乘以
Figure 994528DEST_PATH_IMAGE014
使得
Figure 304286DEST_PATH_IMAGE015
大于2,再按照①中的方式计算
Figure 375010DEST_PATH_IMAGE015
,最后结果等于
Figure 225155DEST_PATH_IMAGE016
,其中(m-v)小于0。
最后得到log-softmax的结果。
对于区间[a,b]的设置和k的具体值,主要考虑因素为对数值的查找表大小,由于ln(x)在0<x<1时,取值变化非常快,相同精度下需要的查找表消耗更多的资源。同时,当n取值越大,kn+1-kn越大,查找表也越大。k越大,对应查找表也会增大。因此优选取k=2,n=0, a=1,b=2。理论上k取其他正整数也可以,不过考虑到硬件上都是二进制存储,加上对应查找表所占空间也较小,因此优先取k=2。
本发明在嵌入式应用有限的硬件资源下,将log-softmax函数的指数计算分成多个查找表来计算,对数运算也通过公式等效查表计算获得,大大提高了log-softmax运算的速度,减小了计算复杂度,所需硬件资源也大幅减小。采用这种方法的深度学习模型,在不影响识别效果的情况下,提高了响应速度和训练速度,节省大量硬件资源。
前文所述的为本发明的各个优选实施例,各个优选实施例中的优选实施方式如果不是明显自相矛盾或以某一优选实施方式为前提,各个优选实施方式都可以任意叠加组合使用,所述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书内容所作的等同结构变化,同理均应包含在本发明的保护范围内。

Claims (4)

1.一种log-softmax函数硬件加速计算方法,其特征在于,包括以下步骤:
S1.将系统中存储的对数表存储区间设置为连续区间[a,b],a与b为区间端点;所述对数表还存储有lnk,k为处理系数, k为大于1的正整数;
S2.对log-softmax函数中对数项按照式1进行拆分:
Figure 296096DEST_PATH_IMAGE001
----1;
Figure 386412DEST_PATH_IMAGE002
求和得到y;
S3.检查y值是否存储在对数表中,是则直接查对数表计算;否则将y连续乘以或除以处理系数k并使连续相乘后的值c落在区间[a,b]内;使对数拆分为-m*lnk+lnc或m*lnk+lnc,m为乘法次数,m 的取值使c落在区间[a,b]内即可;
S4.通过查表获取lnk和lnc的值,计算出log-softmax函数。
2.根据权利要求1所述的log-softmax函数硬件加速计算方法,其特征在于:所述步骤S3中,如果发现y值未存储在对数表中;
当y值大于b时,将y连续除以系数k;
当y值大于0小于a时,将y连续乘以系数k。
3.根据权利要求1所述的log-softmax函数硬件加速计算方法,其特征在于:b-a不大于一。
4.根据权利要求1或2所述的log-softmax函数硬件加速计算方法,其特征在于:a=0或1,b=a+1,k=2。
CN202010973909.0A 2020-09-16 2020-09-16 一种log-softmax函数硬件加速计算方法 Pending CN112069455A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010973909.0A CN112069455A (zh) 2020-09-16 2020-09-16 一种log-softmax函数硬件加速计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010973909.0A CN112069455A (zh) 2020-09-16 2020-09-16 一种log-softmax函数硬件加速计算方法

Publications (1)

Publication Number Publication Date
CN112069455A true CN112069455A (zh) 2020-12-11

Family

ID=73696056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010973909.0A Pending CN112069455A (zh) 2020-09-16 2020-09-16 一种log-softmax函数硬件加速计算方法

Country Status (1)

Country Link
CN (1) CN112069455A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377332A (zh) * 2021-05-28 2021-09-10 南京大学 一种基于线性分段的softmax硬件实现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110135086A (zh) * 2019-05-20 2019-08-16 合肥工业大学 计算精度可变的softmax函数硬件电路及其实现方法
JP2019191868A (ja) * 2018-04-24 2019-10-31 日本電信電話株式会社 学習装置、学習方法及び学習プログラム
CN111178516A (zh) * 2019-12-11 2020-05-19 浙江大学 一种基于分段查找表的softmax函数计算方法及硬件系统
CN111176811A (zh) * 2019-12-27 2020-05-19 国家计算机网络与信息安全管理中心 一种基于多核处理器的大批量表项快速老化的实现装置及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019191868A (ja) * 2018-04-24 2019-10-31 日本電信電話株式会社 学習装置、学習方法及び学習プログラム
CN110135086A (zh) * 2019-05-20 2019-08-16 合肥工业大学 计算精度可变的softmax函数硬件电路及其实现方法
CN111178516A (zh) * 2019-12-11 2020-05-19 浙江大学 一种基于分段查找表的softmax函数计算方法及硬件系统
CN111176811A (zh) * 2019-12-27 2020-05-19 国家计算机网络与信息安全管理中心 一种基于多核处理器的大批量表项快速老化的实现装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BLANCHARD PIERRE 等: "Accurate computation of the log-sum-exp and softmax functions" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377332A (zh) * 2021-05-28 2021-09-10 南京大学 一种基于线性分段的softmax硬件实现方法
CN113377332B (zh) * 2021-05-28 2023-08-22 南京大学 一种基于线性分段的softmax硬件实现方法

Similar Documents

Publication Publication Date Title
CN110379416B (zh) 一种神经网络语言模型训练方法、装置、设备及存储介质
CN108008948B (zh) 一种指令生成过程的复用装置及方法、处理装置
CN109948036B (zh) 一种分词词项权重的计算方法和装置
CN112488183A (zh) 一种模型优化方法、装置、计算机设备及存储介质
CN109583586B (zh) 一种语音识别或图像识别中的卷积核处理方法及装置
CN110929836A (zh) 神经网络训练及图像处理方法和装置、电子设备、介质
CN111160049B (zh) 文本翻译方法、装置、机器翻译系统和存储介质
CN112598123A (zh) 神经网络的权值的量化方法、量化装置及存储介质
CN112069455A (zh) 一种log-softmax函数硬件加速计算方法
CN111401514A (zh) 基于改进图卷积网络的半监督符号网络嵌入方法及系统
US11507782B2 (en) Method, device, and program product for determining model compression rate
EP4186003A1 (en) Compressing tokens based on positions for transformer models
CN111291876B (zh) 运算装置、运算方法和运算芯片
CN109871448B (zh) 一种短文本分类的方法及系统
CN114830137A (zh) 用于生成预测模型的方法和系统
WO2022063202A1 (zh) 文本分类方法、装置、设备及存储介质
CN117348837A (zh) 浮点精度模型的量化方法、装置、电子设备以及存储介质
CN114595627A (zh) 模型量化方法、装置、设备及存储介质
CN109388786B (zh) 一种文档相似度计算方法、装置、设备及介质
CN110147881B (zh) 语言处理方法、装置、设备及存储介质
CN111797984A (zh) 一种用于多任务神经网络的量化和硬件加速方法及装置
CN112215338A (zh) 神经网络计算方法和装置、电子设备及存储介质
CN113449079B (zh) 文本摘要生成方法、装置、电子设备及存储介质
CN118153634A (zh) 用于自注意力模型残差结构量化调优的方法及计算设备
CN116402115A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20201211

RJ01 Rejection of invention patent application after publication