CN112069455A - 一种log-softmax函数硬件加速计算方法 - Google Patents
一种log-softmax函数硬件加速计算方法 Download PDFInfo
- 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
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 36
- 230000001133 acceleration Effects 0.000 title claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 abstract description 19
- 238000000034 method Methods 0.000 abstract description 18
- 238000013136 deep learning model Methods 0.000 abstract description 4
- 238000012549 training Methods 0.000 abstract description 4
- 230000000694 effects Effects 0.000 abstract description 3
- 230000004044 response Effects 0.000 abstract description 3
- 230000007547 defect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/15—Correlation 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计算主要包含指数和对数运算。这两种运算在硬件上实现会消耗大量计算资源,并且计算较慢。
目前关于指数运算和对数运算的方法有:查表法;CORDIC法。查表法是指实现将数值对应的计算结果存储下来,再通过rom寻址直接得到对应的计算结果。在等同规格定点数下查表法的精度较高,但是在大范围上进行计算时需要存储大量的结果,查找表的长度非常长,需要消耗大量资源,在资源有限的硬件平台上实现成本较高。CORDIC方法利用迭代特性,能够进行资源复用,占用资源比较少,迭代次数越多,精度越高,但是需要进行流水线改造,成本较高,并且由于其旋转角度限制,CORDIC方法的计算范围有限,不能计算大范围输入值的计算。
发明内容
为克服现有技术存在的缺陷,针对指数和对数运算的特性,为了克服现有技术的计算复杂度高,所需硬件资源多,计算速度慢的缺点;本发明公开了一种log-softmax函数硬件加速计算方法。
本发明所述log-softmax函数硬件加速计算方法,其特征在于,包括以下步骤:
S1.将系统中存储的对数表存储区间设置为连续区间[a,b],a与b为区间端点;所述对数表还存储有lnk,k为处理系数, k为大于1的正整数;
S2.对log-softmax函数中对数项按照式1进行拆分:
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计算公式如下:
其中,e为自然常数,xi表示softmax的第i个数,xj表示softmax的第j个数,表示从第1个到第n个的和,n为需要计算softmax函数的个数,ln表示求自然常数为底的对数,si表示第i个数xi的softmax结果。
针对指数和对数运算的特性,为了克服现有技术的计算复杂度高,所需硬件资源多,计算速度慢的缺点,本发明提供了一种log-softmax的加速计算的方法。实现过程如下:
S1.将系统中存储的对数表存储区间设置为连续区间[a,b],a与b为区间端点;所述对数表还存储有lnk,k为处理系数, k为大于1的正整数;
S2.对log-softmax函数中对数项按照式1进行拆分:
S3.检查y值是否存储在对数表中,是则直接查对数表计算;否则将y连续乘以或除以处理系数k并使连续相乘后的值c落在区间[a,b]内;使对数拆分为-m*lnk+lnc或m*lnk+lnc,m为乘法次数,m 的取值使c落在区间[a,b]内即可;
S4.通过查表获取lnk和lnc的值,计算出log-softmax函数。
首先计算。根据指数计算的特性,可知,其中a+b+c=,拆分后的a,b,c分别作为查表的寻址地址来进行查表得到,,,再将查表得到的值相乘得到最终自然指数结果然后进行累加和除法运算,最后需要计算对数函数。
将原式中的除法运算部分转换为减法运算。
针对对数运算采用两种方式,使最终对数查表值落在设定的区间[a,b]内 ,该区间越小,存储的对数表数据量越小,对嵌入式设计计算硬件要求越低。通常可以设置区间长度不大于1,例如设定a=1,b=2,,或a=0,b=1。
如果采用累加值直接查表,由于累加值为任意数,储存对应的对数表数据量巨大,通过将需要查表的c值缩小区间到[1,2],对数表的储存数据量大幅减小。
最后得到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进行拆分:
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。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113377332A (zh) * | 2021-05-28 | 2021-09-10 | 南京大学 | 一种基于线性分段的softmax硬件实现方法 |
Citations (4)
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 | 国家计算机网络与信息安全管理中心 | 一种基于多核处理器的大批量表项快速老化的实现装置及方法 |
-
2020
- 2020-09-16 CN CN202010973909.0A patent/CN112069455A/zh active Pending
Patent Citations (4)
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)
Title |
---|
BLANCHARD PIERRE 等: "Accurate computation of the log-sum-exp and softmax functions" * |
Cited By (2)
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 |