一种针对softmax函数的高精度近似计算装置
- 国知局
- 2024-10-15 09:58:29
本发明涉及超大规模集成电路设计领域,特别是一种针对softmax函数的高精度近似计算装置。
背景技术:
1、softmax函数是神经网络中的重要组成部分,比如在神经网络中的归一化层以及transformer网络的注意力机制(attention)中。而softmax函数数学形式复杂,其包含幂函数和除法等操作,具有非线性的特点,很难在硬件上进行快速且高精度的实现。其次,在硬件加速中神经网络往往被量化,网络中的softmax函数后通常跟有一次量化操作,这会在softmax函数输出数据中引入大量零值。这些零值对网络精度没有影响,如果能在硬件加速时预测并跳除这些零值的计算将极大提高硬件能效。已有工作提出了很多softmax的拟合计算方法,但这些方法实现的softmax函数精度低,且无法预测和跳除零值操作,需要较多硬件资源开销,硬件能效低。
技术实现思路
1、本发明的目的在于克服现有softmax函数计算方法实现的精度低,需要的硬件资源开销大,能效低等不足,提供一种针对softmax函数的高精度近似计算装置。
2、为了实现以上目的,本发明的技术方案为:
3、一种针对softmax函数的高精度近似计算装置,用于实现数学等价变换后的softmax函数,如下式所示:其中,softmax函数的输入数据为长度为m的向量x=[x0,x1,…,xm-1],x′i=xi-xmax,i=0,1,…,m-1,xmax为向量x中的最大值;装置包括第一模块、第二模块和第三模块,第一模块包括第一零值预测单元、第一softmax函数计算单元和第一选择器单元,第二模块包括第二softmax函数计算单元,第三模块包括第二零值预测单元、第三softmax函数计算单元和第二选择器单元,其中,将xi与xmax输入第一零值预测单元,输出第一零值信号或x′i,将x′i输入第一softmax函数计算单元,得到第一内部信号,将第一零值信号或第一内部信号输入第一选择器单元,第一选择器单元用于选择基于第一零值信号将0作为装置的输出数据,或者将第一内部信号作为第一模块的输出数据输入第二softmax函数计算单元,得到第二内部信号,将xi、xmax和第二内部信号输入第二零值预测单元,输出第二零值信号或x″i,将x″i输入第三softmax函数计算单元,得到结果信号,将第二零值信号或结果信号输入第二选择器单元,第二选择器单元用于选择基于第二零值信号将0作为装置的输出数据,或者将结果信号作为装置的输出数据。
4、作为优选,第一零值预测单元包括依次连接的第一减法器和第一判断器,第一减法器用于对xi与xmax进行减法操作,得到x′i,x′i=x-xmax,将x′i输入判断器中,判断器用于判断x′i是否满足零值预测公式;若满足,则第一零值预测单元输出第一零值信号,若不满足,则第一零值预测单元输出x′i。
5、作为优选,第二零值预测单元包括依次连接的第二减法器和第二判断器,第二减法器用于对xi、xmax和第二内部信号进行减法操作,得到x″i,x″i=x-xmax-ln(s),ln(s)表示第二内部信号,将x″i输入第二判断器中,第二判断器用于判断x″i是否满足零值预测公式;若满足,则第二零值预测单元输出第二零值信号,若不满足,则第二零值预测单元输出x″i。
6、作为优选,零值预测公式为:
7、j<-n·ln(2);
8、其中,j为x′i或x″i,n为softmax函数量化后的位宽。
9、作为优选,第一softmax函数计算单元包括第一log2常数乘法器、第一拟合计算器、第一移位器和累加器,第一log2常数乘法器用于对输入的x′i实现x′i×log2(e)的常数乘法,得到第一常数乘法结果,其中,n表示第一常数乘法结果的整数部分,f表示第一常数乘法结果的小数部分;将第一常数乘法结果的小数部分输入第一拟合计算器中,对第一常数乘法结果的小数部分进行以2为底的幂函数计算,得到第一拟合结果a,将第一常数乘法结果的整数部分n和第一拟合结果a输入第一移位器中,对第一拟合结果a进行n次右移,得到第一右移结果r1,将每次计算得到的第一右移结果r1输入累加器中进行累加操作,得到第一内部信号s。
10、作为优选,第二softmax函数计算单元包括最高位检测器、第二移位器、第二拟合计算器、ln常数乘法器和加法器,将第一内部信号s输入最高位检测器中进行最高位检测,得到最高位结果v,将第一内部信号s和最高位结果v输入第二移位器中,对第一内部信号进行v次右移,得到第二右移结果r2,将第二右移结果输入第二拟合计算器中,对第二右移结果r2进行以2为底的对数函数计算,得到第二拟合结果b,将最高位结果v输入ln常数乘法器中,实现v×log2(e)的常数乘法,得到第二常数乘法结果c,将第二拟合结果b和第二常数乘法结果c输入加法器中进行加法操作,得到第二内部信号ln(s)。
11、作为优选,第三softmax函数计算单元包括第二log2常数乘法器、第三拟合计算器和第三移位器,第二log2常数乘法器用于对输入的x″i实现x″i×log2(e)的常数乘法,得到第三常数乘法结果,其中,n’表示第三常数乘法结果的整数部分,f’表示第三常数乘法结果的小数部分;将第三常数乘法结果的小数部分输入第三拟合计算器中,对第三常数乘法结果的小数部分进行以2为底的幂函数计算,得到第三拟合结果a’,将第三常数乘法结果的整数部分n’和第三拟合结果a’输入第三移位器中,对第三拟合结果a’进行n’次右移,得到结果信号。
12、作为优选,第一选择单元中,若第一选择单元的输入数据为第一零值信号,则跳过第二模块和第三模块的计算过程,直接将0作为装置的输出数据;若第一选择单元的输入数据为第一内部信号,则将第一内部信号作为第一模块的输出数据。
13、作为优选,第二选择单元中,若第二选择单元的输入数据为第二零值信号,则将0作为装置的输出数据;若第二选择单元的输入数据为结果信号,则将结果信号作为装置的输出数据。
14、相比于现有技术,本发明具有以下有益效果:
15、本发明提出了一种针对softmax函数的高精度近似计算装置,该装置包含的第一零值预测单元和第二零值预测单元能通过与量化原理结合预测输出零值,从而跳除softmax函数中冗余计算,进而降低装置资源功耗、面积等开销且提高能效。为实现高精度softmax函数计算,该装置包含的第一softmax函数计算单元、第二softmax函数计算单元和第三softmax函数计算单元通过数学等价变换方式改进softmax函数的格式,从而降低算法复杂度;通过引入常数乘法方式降低幂函数和对数函数的计算复杂度;基于由硬件近似计算造成的误差提出惩罚项并改进数学公式,从而提高softmax函数硬件计算的精度,最终实现softmax函数的高精度的计算目标。
技术特征:1.一种针对softmax函数的高精度近似计算装置,其特征在于,用于实现数学等价变换后的softmax函数,如下式所示:其中,softmax函数的输入数据为长度为m的向量x=[x0,x1,...,xm-1],x′i=xi-xmax,i=0,1,...,m-1,xmax为向量x中的最大值;所述装置包括第一模块、第二模块和第三模块,所述第一模块包括第一零值预测单元、第一softmax函数计算单元和第一选择器单元,所述第二模块包括第二softmax函数计算单元,所述第三模块包括第二零值预测单元、第三softmax函数计算单元和第二选择器单元,其中,将xi与xmax输入所述第一零值预测单元,输出第一零值信号或x′i,将x′i输入所述第一softmax函数计算单元,得到第一内部信号,将所述第一零值信号或所述第一内部信号输入所述第一选择器单元,所述第一选择器单元用于选择基于所述第一零值信号将0作为所述装置的输出数据,或者将所述第一内部信号作为所述第一模块的输出数据输入所述第二softmax函数计算单元,得到第二内部信号,将xi、xmax和第二内部信号输入所述第二零值预测单元,输出第二零值信号或x″i,将x″i输入所述第三sofimax函数计算单元,得到结果信号,将所述第二零值信号或所述结果信号输入所述第二选择器单元,所述第二选择器单元用于选择基于所述第二零值信号将0作为所述装置的输出数据,或者将所述结果信号作为所述装置的输出数据。
2.根据权利要求1所述的针对softmax函数的高精度近似计算装置,其特征在于,所述第一零值预测单元包括依次连接的第一减法器和第一判断器,所述第一减法器用于对xi与xmax进行减法操作,得到x′i,x′i=x-xmax,将x′i输入所述判断器中,所述判断器用于判断x′i是否满足零值预测公式;若满足,则所述第一零值预测单元输出第一零值信号,若不满足,则所述第一零值预测单元输出x′i。
3.根据权利要求2所述的针对sofimax函数的高精度近似计算装置,其特征在于,所述第二零值预测单元包括依次连接的第二减法器和第二判断器,所述第二减法器用于对xi、xmax和第二内部信号进行减法操作,得到x″i,x″i=x-xmax-ln(s),ln(s)表示第二内部信号,将x″i输入所述第二判断器中,所述第二判断器用于判断x″i是否满足零值预测公式;若满足,则所述第二零值预测单元输出第二零值信号,若不满足,则所述第二零值预测单元输出x″i。
4.根据权利要求3所述的针对softmax函数的高精度近似计算装置,其特征在于,所述零值预测公式为:
5.根据权利要求1所述的针对softmax函数的高精度近似计算装置,其特征在于,所述第一softmax函数计算单元包括第一log2常数乘法器、第一拟合计算器、第一移位器和累加器,所述第一log2常数乘法器用于对输入的x′i实现x′i×log2(e)的常数乘法,得到第一常数乘法结果,其中,n表示第一常数乘法结果的整数部分,f表示第一常数乘法结果的小数部分;将所述第一常数乘法结果的小数部分输入所述第一拟合计算器中,对所述第一常数乘法结果的小数部分进行以2为底的幂函数计算,得到第一拟合结果a,将第一常数乘法结果的整数部分n和第一拟合结果a输入所述第一移位器中,对所述第一拟合结果a进行n次右移,得到第一右移结果r1,将每次计算得到的所述第一右移结果r1输入所述累加器中进行累加操作,得到第一内部信号s。
6.根据权利要求1所述的针对softmax函数的高精度近似计算装置,其特征在于,所述第二softmax函数计算单元包括最高位检测器、第二移位器、第二拟合计算器、ln常数乘法器和加法器,将所述第一内部信号s输入所述最高位检测器中进行最高位检测,得到最高位结果v,将所述第一内部信号和最高位结果v输入所述第二移位器中,对所述第一内部信号s进行v次右移,得到第二右移结果r2,将所述第二右移结果输入所述第二拟合计算器中,对所述第二右移结果r2进行以2为底的对数函数计算,得到第二拟合结果b,将所述最高位结果v输入所述ln常数乘法器中,实现v×log2(e)的常数乘法,得到第二常数乘法结果c,将所述第二拟合结果b和第二常数乘法结果c输入所述加法器中进行加法操作,得到第二内部信号ln(s)。
7.根据权利要求1所述的针对softmax函数的高精度近似计算装置,其特征在于,所述第三softmax函数计算单元包括第二log2常数乘法器、第三拟合计算器和第三移位器,所述第二log2常数乘法器用于对输入的x″i实现x″i×log2(e)的常数乘法,得到第三常数乘法结果,其中,n’表示第三常数乘法结果的整数部分,f’表示第三常数乘法结果的小数部分;将所述第三常数乘法结果的小数部分输入所述第三拟合计算器中,对所述第三常数乘法结果的小数部分进行以2为底的幂函数计算,得到第三拟合结果a’,将第三常数乘法结果的整数部分n’和第三拟合结果a’输入所述第三移位器中,对所述第三拟合结果a’进行n’次右移,得到结果信号。
8.根据权利要求1所述的针对softmax函数的高精度近似计算装置,其特征在于,所述第一选择单元中,若所述第一选择单元的输入数据为所述第一零值信号,则跳过所述第二模块和第三模块的计算过程,直接将0作为所述装置的输出数据;若第一选择单元的输入数据为所述第一内部信号,则将所述第一内部信号作为所述第一模块的输出数据。
9.根据权利要求1所述的针对softmax函数的高精度近似计算装置,其特征在于,所述第二选择单元中,若所述第二选择单元的输入数据为所述第二零值信号,则将0作为所述装置的输出数据;若第二选择单元的输入数据为所述结果信号,则将所述结果信号作为所述装置的输出数据。
技术总结本发明公开了一种针对softmax函数的高精度近似计算装置,包括第一模块、第二模块和第三模块,第一模块包括第一零值预测单元、第一softmax函数计算单元和第一选择器单元,第二模块包括第二softmax函数计算单元,第三模块包括第二零值预测单元、第三softmax函数计算单元和第二选择器单元,第一零值预测单元和第二零值预测单元用于根据其对应输入的数据预测该装置的输出数据是否为零值,以进行跳除后续计算。第一softmax函数计算单元、第二softmax函数计算单元和第三softmax函数计算单元用于实现softmax函数的高精度计算,第一选择器单元和第二选择器单元用于选择最后的输出数据。本发明能够极大降低计算装置的功耗、面积等开销,提高装置能效。技术研发人员:焦海龙,付宇哲受保护的技术使用者:北京大学深圳研究生院技术研发日:技术公布日:2024/10/10本文地址:https://www.jishuxx.com/zhuanli/20241015/315963.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。