CN108021537A - 一种基于硬件平台的softmax实现方式 - Google Patents
一种基于硬件平台的softmax实现方式 Download PDFInfo
- Publication number
- CN108021537A CN108021537A CN201810016954.XA CN201810016954A CN108021537A CN 108021537 A CN108021537 A CN 108021537A CN 201810016954 A CN201810016954 A CN 201810016954A CN 108021537 A CN108021537 A CN 108021537A
- Authority
- CN
- China
- Prior art keywords
- msup
- msub
- mrow
- look
- 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.)
- Granted
Links
- 230000006870 function Effects 0.000 claims abstract description 26
- 230000009471 action Effects 0.000 claims abstract description 6
- 238000000205 computational method Methods 0.000 claims description 2
- 238000005194 fractionation Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 claims description 2
- 238000009825 accumulation Methods 0.000 claims 1
- 238000000034 method Methods 0.000 abstract description 12
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000013461 design Methods 0.000 abstract description 5
- 238000013135 deep learning Methods 0.000 abstract description 4
- 238000001514 detection method Methods 0.000 abstract 1
- 230000001771 impaired effect Effects 0.000 abstract 1
- 229910002056 binary alloy Inorganic materials 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于各种硬件平台(CPLD、FPGA、专用芯片等)计算softmax函数的实现方式。softmax函数广泛应用于深度学习的多分类任务及注意力模型等,其中涉及到的e指数及除法计算需要消耗较多的硬件资源。设计方法通过对函数进行数学变换,将其中的e指数计算简化为一次常数乘法、一个输入范围固定的2的指数次运算和一次移位运算;将n次除法运算的简化为一次“最高非零位检测运算”、一次输入范围固定的倒数运算和一次移位运算及n次乘法运算。其中2指数及倒数运算以特殊设计的查找表实现,能以更小的存储空间实现同样精度。将本发明用在深度学习的注意力模型等中,可以在精度几乎不受损的前提下大大提高计算速度,减少计算资源和存储资源的消耗。
Description
技术领域
本发明涉及集成电路技术领域,具体涉及一种基于硬件平台的softmax计算方法及其架构设计。
背景技术
softmax函数广泛应用于深度学习的多分类任务及注意力模型等。它可将多个神经元的输出映射到(0,1)区间内,且所有项的和为1,可被看做概率,常应用于机器学习中需要计算多个输出占比或多输入各自权值的场合中。
Softmax中涉及到的e指数计算以及除法计算需要消耗的硬件资源较大,深度学习在硬件平台的实现效率和资源消耗会被这一函数的计算速度和资源需求影响。经过对函数的简单变换,将其中的指数计算以移位计算替代,并将除法以查找表方式实现,可以在精度几乎不受损的前提下大大提高计算速度,减少计算资源的消耗。
发明内容
本发明为了解决各种硬件平台(包括CPLD、FPGA、专用芯片等)上用定点数计算Softmax函数不易于实现的问题,提出了一种设计的方法,可减小硬件硬件面积、降低查找表存储参数的值域范围,从而使得在的计算相同精度下存储参数所需要的资源减少,或者在消耗相同的存储空间的情况下存储精度更高的参数,达到更高的计算精度。
本发明的理论分析如下:
1.Softmax函数的表达式为
其基本运算步骤为:
步骤一:输入n个变量xi,1≤i≤n对每个变量,计算出:
步骤二:对于计算得到的yi,求其和:
步骤三:对每个yi,除以F,得到f(xi):
2.其中基本的数字电路中的逻辑单元无法直接进行运算的步骤是步骤一的指数运算和步骤三的除法运算。以下将从三个步骤对该运算进行简化。
2.1第一步优化考虑指数运算的简化。这里我们把输入为负无穷到正无穷的e指数的计算,简化为一次常数乘法、一个输入范围为[0,1)的2的指数次运算、一次移位运算。
按照一般的计算流程,以自然对数为底数的指数运算,无法用数字电路的组合逻辑直接表示,一般采用泰勒展开逼近的方法或直接查表得结果。如果采用泰勒展开逼近的办法,需要做大量的乘除法运算,硬件面积将变得非常大。如果采用直接查表的办法,输入变量的范围从负无穷到正无穷,存储量太大。对e指数做如下变换:
设xi′=xilog2e,则有:xi′的计算由于是和一个常数(1/ln2=1.4427)做乘法,所以可以用一系列的加法运算来代替。
再对xi′进行整数和小数的拆分,使得xi′=x1i′+x2i′,其中x1i′为xi′的整数部分,x2i′为xi′的小数部分且0≤x2i′<1,如5.75=5+0.75,-6.25=-7+0.75,yi的计算可表示为
由于2指数的特殊性,就是对1的左移和右移运算,可以用查表的方法来计算,输入值的范围是[0,1),输出值的范围是[1,2)。
所以要想计算得到yi,先查表得到的值,再根据x1i′的值对查表结果进行左移或者右移即可。用这种方法来计算e指数,相对于直接计算e指数,查表的输入值和输出值的范围都大大减小了。
2.2第二步优化考虑除法运算的优化。这里我们把n次除法运算,简化为一次求一个定点二进制数除符号位以外从左往右第一个1的位置的运算、一次输入值域为[0.5,1)的倒数运算、一次移位运算、n次乘法运算。
由于n次除法运算的除数都是相同的,可以先求出F的倒数,然后每次再求yi和这个倒数的乘积。借鉴简化e指数的思路,对倒数运算进行如下考虑:
由分数计算的性质可知,|F|=2w·k,其中w为整数,0.5≤k≤1。如,6.25=8×0.7815,-3.5=-4×0.875,-0.43=-0.5×0.86。如果k可以取[0.5,1)中的任意实数,理论上所有非0实数都可以用这种方法来表示,本身这也与浮点数的表示方法类似。对于二进制定点数来说,只要找到除符号位以外从左往右第一个不是0的比特位,就可以快速计算得到w和k。比如用十进制表示的0.09375=8×0.75,用二进制表示就是0.00011,从左往右第一个为1的比特位是小数点后第四位,那么w=4-1=3,k用二进制表示就是0.11,用十进制表示就是0.75。
对比e指数的计算,F的倒数的计算也完全类似:先查表得到1/k的值,再根据w的值对该值进行左移或右移处理。这里的查表的输入值的范围是[0.5,1),输出值的范围是(1,2],同样,输入值和输出值的范围都大大减小了。
2.3第三步优化对查表的输出值的范围,采用一种改进的查找表策略进行进一步优化。
在定点数表示范围不变的情况下,提高精度就会需要更大的位宽带来更大的存储空间,而要减少存储就要牺牲精度;而如果能够缩减定点数的表示范围,相同的精度可以占用更少的存储空间,占用相同的空间可以表示更高的精度。
定义查找表一存储函数y1=2x,查找表二存储函数y2=1/x。前两步优化已经大大减小了查表的输出值的范围,这一步对其范围进行进一步的缩减:在存储查找表y=g(x)的过程中,常用的办法是把x的值对应到存储器的地址,把g(x)作为该地址所存储的数据;借鉴线性拟合的思想,这里我们不存储g(x),改为存储g(x)-(kx+b),每次访问时得到数据后再加上kx+b,就是g(x)的值。很明显,如果直线y=kx+b和曲线y=g(x)很接近,查找表的输出值值域会大大缩减,代价是返回后的数据要进一步处理;而相对于直接采用拟合的思想进行计算,这种办法可以灵活的提高精度,代价是需要更多的存储空间。
这里由于查找表对应函数的特殊性,采用这种策略计算有很大好处:需要查表计算的是函数y1=2x,0<x<1和函数y2=1/x,0.5≤x<1。从图线中可以看出,曲线y1和直线y=x+1非常接近,曲线y2和直线y=-2x+3也非常接近,而这两条直线的表达式非常简单,返回值后都不需要进行k乘以x的运算,所以在本方案中这种运算非常简便。
所以,查找表一存储的函数可改为y1=2x-x-1,其值域为[0,0.08607],对应到二进制是[0,0.001);查找表二存储的函数可改为y2=1/x+2x-3,其值域为[-0.17157,0],对应到二进制是(-0.01,0]。也就是说,如果采取相同的精度进行存储和运算,用这种方案,查找表一存储数据的位宽降低了3位,查找表二存储的数据位宽降低了1位。
进一步降低数据位宽,可以通过修改查找表的存储内容来解决:由于函数y2=1/x+2x-3在0.5≤x<1时是先单调减再单调增,所以可以直接将存储的内容的第一位去掉,具体的细节会在具体实施方法中阐明。
附图说明
图1为整个系统的设计框图;
图2为输入数据的格式;
图3为e指数的计算模块;
图4为倒数(1/F)的计算模块;
图5为计算xi′=xilog2e的常数乘法器;
具体实施方法
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
图1示出了本发明一实施例提供的硬件平台上用原码表示的定点数计算Softmax函数的系统框图,本实施例的用16位宽的定点数(最高位表示符号位,4位整数,7位小数,精度为0.0078125,表示范围-15.9921875~15.9921875)如图2所示,计算Softmax函数的硬件设计方法或实施方案如下所述。
步骤1输入n个定点数x1,x2,…,xn,数据格式如图2所示。
步骤2如图3所示,对xi做一次常数乘法,乘以的常数是log2e,得到xi′=xilog2e,按照本实施例所采用的精度,将其转换为1.0111001。那么这一常数乘法相当于做一系列的移位和加法运算,如图5所示。得到的xi′的数据格式是13位位宽,其中1位符号位,5位整数,7位小数。
步骤3如图3所示,首先判断xi′的正负,再对x1i′和x2i′赋值。若xi′≥0,x1i′等于xi′的整数部分(保留符号位,并包括5位整数),x2i′等于xi′的小数部分(无符号,7位小数);若xi′<0,x1i′等于xi′的整数部分-1(保留符号位并包括5位整数),x2i′等于1减去xi′的小数部分(无符号,7位小数)。
步骤4如图3所示,计算要用到一张查找表,查找表存储的函数是y1i=2x-x-1,值域是[0,0.08607],对应到二进制是[0,0.001),在表中存储的是因变量用二进制表示的从小数点后第四位开始的数,如果输出和输入采用一样的精度,那么在查找表中存储的数据就是四位,0000~1011。根据xi′的精度和范围,查找表一的地址表示为xi′的小数部分,即0000000~1111111;内容如下:
地址 | 0000000 | 0000001 | 0000010 | 0000011 | 0000100 | 0000101 | 0000110 | 0000111 |
数据 | 0000 | 0000 | 0000 | 0001 | 0001 | 0001 | 0001 | 0010 |
地址 | 0001000 | 0001001 | 0001010 | 0001011 | 0001100 | 0001101 | 0001110 | 0001111 |
数据 | 0010 | 0010 | 0011 | 0011 | 0011 | 0011 | 0100 | 0100 |
地址 | 0010000 | 0010001 | 0010010 | 0010011 | 0010100 | 0010101 | 0010110 | 0010111 |
数据 | 0100 | 0100 | 0101 | 0101 | 0101 | 0101 | 0110 | 0110 |
地址 | 0011000 | 0011001 | 0011010 | 0011011 | 0011100 | 0011101 | 0011110 | 0011111 |
数据 | 0110 | 0110 | 0110 | 0111 | 0111 | 0111 | 0111 | 0111 |
地址 | 0100000 | 0100001 | 0100010 | 0100011 | 0100100 | 0100101 | 0100110 | 0100111 |
数据 | 1000 | 1000 | 1000 | 1000 | 1000 | 1000 | 1001 | 1001 |
地址 | 0101000 | 0101001 | 0101010 | 0101011 | 0101100 | 0101101 | 0101110 | 0101111 |
数据 | 1001 | 1001 | 1001 | 1001 | 1001 | 1010 | 1010 | 1010 |
地址 | 0110000 | 0110001 | 0110010 | 0110011 | 0110100 | 0110101 | 0110110 | 0110111 |
数据 | 1010 | 1010 | 1010 | 1010 | 1010 | 1010 | 1010 | 1011 |
地址 | 0111000 | 0111001 | 0111010 | 0111011 | 0111100 | 0111101 | 0111110 | 0111111 |
数据 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 |
地址 | 1000000 | 1000001 | 1000010 | 1000011 | 1000100 | 1000101 | 1000110 | 1000111 |
数据 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 |
地址 | 1001000 | 1001001 | 1001010 | 1001011 | 1001100 | 1001101 | 1001110 | 1001111 |
数据 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 | 1011 |
地址 | 1010000 | 1010001 | 1010010 | 1010011 | 1010100 | 1010101 | 1010110 | 1010111 |
数据 | 1011 | 1011 | 1011 | 1010 | 1010 | 1010 | 1010 | 1010 |
地址 | 1011000 | 1011001 | 1011010 | 1011011 | 1011100 | 1011101 | 1011110 | 1011111 |
数据 | 1010 | 1010 | 1010 | 1010 | 1001 | 1001 | 1001 | 1001 |
地址 | 1100000 | 1100001 | 1100010 | 1100011 | 1100100 | 1100101 | 1100110 | 1100111 |
数据 | 1001 | 1001 | 1001 | 1000 | 1000 | 1000 | 1000 | 1000 |
地址 | 1101000 | 1101001 | 1101010 | 1101011 | 1101100 | 1101101 | 1101110 | 1101111 |
数据 | 0111 | 0111 | 0111 | 0111 | 0111 | 0110 | 0110 | 0110 |
地址 | 1110000 | 1110001 | 1110010 | 1110011 | 1110100 | 1110101 | 1110110 | 1110111 |
数据 | 0110 | 0101 | 0101 | 0101 | 0100 | 0100 | 0100 | 0011 |
地址 | 1111000 | 1111001 | 1111010 | 1111011 | 1111100 | 1111101 | 1111110 | 1111111 |
数据 | 0011 | 0011 | 0011 | 0010 | 0010 | 0001 | 0001 | 0001 |
将xi′的值输入查找表后,得到输出D1(四位二进制数)。为方便后面运算,D都取正数,不需要符号位,得到12位的D,范围是000000000000~000000001011。
步骤5如图3所示,计算yi,yi≥0,位宽28位,其格式为21位整数,7位小数。y1i=D+x+1,再根据x1i′的正负,对y1i进行移位操作:若x1i′>0,yi=y1i《x1i′;若x1i′<0,yi=y1i》|x1i′|。
步骤6如图1所示,对步骤5得到的y1,y2,…,yn,全部相加,得到F,F>0。
步骤7如图4所示,根据F从左往右第一位不是0的比特位的位置,计算得到w。若该位置在小数点之前第n位,w=n;若该位置在小数点之后第n位,w=n-1。
步骤8如图4所示,从步骤7所取位置的后一位开始截取6位有效数字,赋给k。k的范围是000000~111111。
步骤9如图4所示,用查找表二计算1/k。根据k的精度,以及发明内容中所述的公式y2=1/x+2x-3,使x=k,其值域为[-0.17157,0],对应到二进制是(-0.01,0],查找表不存储y2的符号位,并且从y2的二进制表示的小数点后第三位符号位开始存储,也就是舍去小数点后的第二位,设计得到的查找表二的内容如下:
输入k,返回值为D2(四位二进制数)。
步骤10k与两个常数比较,确定它是否在[001100,101110]区间;若在区间[001100,101110],D2′是D2前面加一个1,否则D(k)是D2前面加一个0。1/k=D(k)-2k+3。
步骤11如图4所示,将1/k赋值给1/F。再根据w的正负,对1/F进行移位操作:若w>0,1/F=1/F《w;若w<0,1/F=1/F》|w|。
步骤12如图1所示,做乘法,
Claims (8)
1.一种基于硬件平台的softmax函数计算方法,包括:
●e指数计算模块,用于计算输入向量x各个分量xi对应的结果;
●累加器模块,用于将x各个分量对应计算得到的结果进行累加;
●存储模块,用于将x各个分量对应计算得到的结果分别进行存储;
●倒数运算模块,用于计算累加结果的倒数;
●乘法模块,用于将所存储的各个结果与计算所得的倒数进行相乘。
2.根据权利要求1所述的,其中,e指数计算模块还包括:
●常数系数log2 e乘法模块,用于将输入xi变换为xi′=xi log2 e;
●2x计算模块,由公式通过进行2指数运算得到xi对应的
3.根据权利要求2所述的,其中常数系数log2 e相乘模块利用加法器和移位模块搭建而成。
4.根据权利要求2所述的,其中2x计算模块特征在于:对指数xi′进行整数和小数的拆分使得xi′=x1i′+x2i′,其中x1i′为xi′的整数部分,x2i′为xi′的小数部分,的计算可表示为
<mrow>
<msub>
<mi>y</mi>
<mi>i</mi>
</msub>
<mo>=</mo>
<msup>
<mn>2</mn>
<mrow>
<mi>x</mi>
<msup>
<msub>
<mn>1</mn>
<mi>i</mi>
</msub>
<mo>&prime;</mo>
</msup>
<mo>+</mo>
<mi>x</mi>
<msup>
<msub>
<mn>2</mn>
<mi>i</mi>
</msub>
<mo>&prime;</mo>
</msup>
</mrow>
</msup>
<mo>=</mo>
<msup>
<mn>2</mn>
<mrow>
<mi>x</mi>
<msup>
<msub>
<mn>1</mn>
<mi>i</mi>
</msub>
<mo>&prime;</mo>
</msup>
</mrow>
</msup>
<msup>
<mn>2</mn>
<mrow>
<mi>x</mi>
<msup>
<msub>
<mn>2</mn>
<mi>i</mi>
</msub>
<mo>&prime;</mo>
</msup>
</mrow>
</msup>
<mo>,</mo>
<mn>1</mn>
<mo>&le;</mo>
<mi>i</mi>
<mo>&le;</mo>
<mi>n</mi>
</mrow>
计算得到yi过程中先查表得到的值,再根据x1i′的值对查表结果进行左移或者右移。
5.根据权利要求1所述的,倒数运算模块特征在于,将倒数表示成如下形式:
<mrow>
<mfrac>
<mn>1</mn>
<mi>F</mi>
</mfrac>
<mo>=</mo>
<mfrac>
<mn>1</mn>
<msup>
<mn>2</mn>
<mi>w</mi>
</msup>
</mfrac>
<mo>&CenterDot;</mo>
<mfrac>
<mn>1</mn>
<mi>k</mi>
</mfrac>
</mrow>
先查表得到1/k的值,再根据w的值对该值进行左移或右移处理。其中w和k利用最高非零位检测模块得到。
6.根据权利要求4和权利要求5中所述的,和1/k利用查找表实现,其特征在于,查找表中不直接存储或1/k函数(统称为g(x)),而是存储g(x)-(kx+b),每次访问时得到数据后要加上(kx+b),最终得到g(x)的值。存储的函数的选择标准是,满足存储位数比直接存储g(x)小且系数简单便于硬件计算。
7.根据权利要求6所述的,计算对应的查找表中存储的结果是函数y1=2x-x-1的值,从y1用二进制表示的小数点后第四位开始存储。
8.根据权利要求6所述的,计算1/k对应的查找表中存储的结果是函数y2=1/k+2k-3的值,且查找表不存储y2的符号位,并且从y2的二进制表示的小数点后第三位符号位开始存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810016954.XA CN108021537B (zh) | 2018-01-05 | 2018-01-05 | 一种基于硬件平台的softmax函数计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810016954.XA CN108021537B (zh) | 2018-01-05 | 2018-01-05 | 一种基于硬件平台的softmax函数计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108021537A true CN108021537A (zh) | 2018-05-11 |
CN108021537B CN108021537B (zh) | 2022-09-16 |
Family
ID=62072566
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810016954.XA Active CN108021537B (zh) | 2018-01-05 | 2018-01-05 | 一种基于硬件平台的softmax函数计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108021537B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165006A (zh) * | 2018-08-07 | 2019-01-08 | 上海交通大学 | Softmax函数的设计优化及硬件实现方法及系统 |
CN109308520A (zh) * | 2018-09-26 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 实现softmax函数计算的FPGA电路及方法 |
CN110009021A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN110135086A (zh) * | 2019-05-20 | 2019-08-16 | 合肥工业大学 | 计算精度可变的softmax函数硬件电路及其实现方法 |
CN110288087A (zh) * | 2019-06-20 | 2019-09-27 | 湖南长城银河科技有限公司 | 一种实现tanh函数计算的方法、电路、芯片及系统 |
CN112036561A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN112685693A (zh) * | 2020-12-31 | 2021-04-20 | 南方电网科学研究院有限责任公司 | 一种实现Softmax函数的设备 |
CN113296732A (zh) * | 2020-06-16 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置,处理器及数据搜索方法和装置 |
CN113377332A (zh) * | 2021-05-28 | 2021-09-10 | 南京大学 | 一种基于线性分段的softmax硬件实现方法 |
CN113407793A (zh) * | 2021-07-13 | 2021-09-17 | 南京宁麒智能计算芯片研究院有限公司 | 一种softmax函数的硬件实现方法、模块、芯片和系统 |
CN114528989A (zh) * | 2022-04-24 | 2022-05-24 | 深圳比特微电子科技有限公司 | 注意力机制的激活函数加速方法、装置和注意力机制电路 |
CN114626489A (zh) * | 2022-05-17 | 2022-06-14 | 深圳比特微电子科技有限公司 | 一种softmax函数定点化实现方法和装置 |
CN114648101A (zh) * | 2022-05-13 | 2022-06-21 | 杭州研极微电子有限公司 | 基于transformer结构的softmax函数量化实现方法和装置 |
EP4092578A1 (en) * | 2021-05-18 | 2022-11-23 | Aptiv Technologies Limited | Computer-implemented method of executing softmax |
WO2023178860A1 (zh) * | 2022-03-22 | 2023-09-28 | 奥比中光科技集团股份有限公司 | 一种基于指数函数和softmax函数的优化方法、硬件系统及芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527010A (zh) * | 2008-03-06 | 2009-09-09 | 上海理工大学 | 人工神经网络算法的硬件实现方法及其系统 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
US20160180214A1 (en) * | 2014-12-19 | 2016-06-23 | Google Inc. | Sharp discrepancy learning |
CN106355246A (zh) * | 2015-10-08 | 2017-01-25 | 上海兆芯集成电路有限公司 | 三配置神经网络单元 |
-
2018
- 2018-01-05 CN CN201810016954.XA patent/CN108021537B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527010A (zh) * | 2008-03-06 | 2009-09-09 | 上海理工大学 | 人工神经网络算法的硬件实现方法及其系统 |
US20160180214A1 (en) * | 2014-12-19 | 2016-06-23 | Google Inc. | Sharp discrepancy learning |
CN106355246A (zh) * | 2015-10-08 | 2017-01-25 | 上海兆芯集成电路有限公司 | 三配置神经网络单元 |
CN105512723A (zh) * | 2016-01-20 | 2016-04-20 | 南京艾溪信息科技有限公司 | 一种用于稀疏连接的人工神经网络计算装置和方法 |
Non-Patent Citations (3)
Title |
---|
BO YUAN: "Efficient hardware architecture of softmax layer in deep neural network", 《2016 29TH IEEE INTERNATIONAL SYSTEM-ON-CHIP CONFERENCE (SOCC)》 * |
MEIQI WANG: "A High-Speed and Low-Complexity Architecture for Softmax Function in Deep Learning", 《2018 IEEE ASIA PACIFIC CONFERENCE ON CIRCUITS AND SYSTEMS》 * |
李理 等: "基于FPGA的卷积神经网络Softmax层实现", 《现代计算机(专业版)》 * |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109165006B (zh) * | 2018-08-07 | 2021-08-06 | 上海交通大学 | Softmax函数的设计优化及硬件实现方法及系统 |
CN109165006A (zh) * | 2018-08-07 | 2019-01-08 | 上海交通大学 | Softmax函数的设计优化及硬件实现方法及系统 |
CN109308520A (zh) * | 2018-09-26 | 2019-02-05 | 阿里巴巴集团控股有限公司 | 实现softmax函数计算的FPGA电路及方法 |
CN109308520B (zh) * | 2018-09-26 | 2022-05-13 | 创新先进技术有限公司 | 实现softmax函数计算的FPGA电路及方法 |
CN110009021A (zh) * | 2019-03-26 | 2019-07-12 | 深兰科技(上海)有限公司 | 一种目标识别方法及设备 |
CN110135086B (zh) * | 2019-05-20 | 2022-09-13 | 合肥工业大学 | 计算精度可变的softmax函数硬件电路及其实现方法 |
CN110135086A (zh) * | 2019-05-20 | 2019-08-16 | 合肥工业大学 | 计算精度可变的softmax函数硬件电路及其实现方法 |
CN110288087B (zh) * | 2019-06-20 | 2020-11-20 | 湖南长城银河科技有限公司 | 一种实现tanh函数计算的方法、电路、芯片及系统 |
CN110288087A (zh) * | 2019-06-20 | 2019-09-27 | 湖南长城银河科技有限公司 | 一种实现tanh函数计算的方法、电路、芯片及系统 |
CN113296732A (zh) * | 2020-06-16 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置,处理器及数据搜索方法和装置 |
CN113296732B (zh) * | 2020-06-16 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 数据处理方法和装置,处理器及数据搜索方法和装置 |
CN112036561A (zh) * | 2020-09-30 | 2020-12-04 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN112036561B (zh) * | 2020-09-30 | 2024-01-19 | 北京百度网讯科技有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN112685693B (zh) * | 2020-12-31 | 2022-08-02 | 南方电网科学研究院有限责任公司 | 一种实现Softmax函数的设备 |
CN112685693A (zh) * | 2020-12-31 | 2021-04-20 | 南方电网科学研究院有限责任公司 | 一种实现Softmax函数的设备 |
EP4092578A1 (en) * | 2021-05-18 | 2022-11-23 | Aptiv Technologies Limited | Computer-implemented method of executing softmax |
CN113377332A (zh) * | 2021-05-28 | 2021-09-10 | 南京大学 | 一种基于线性分段的softmax硬件实现方法 |
CN113377332B (zh) * | 2021-05-28 | 2023-08-22 | 南京大学 | 一种基于线性分段的softmax硬件实现方法 |
CN113407793A (zh) * | 2021-07-13 | 2021-09-17 | 南京宁麒智能计算芯片研究院有限公司 | 一种softmax函数的硬件实现方法、模块、芯片和系统 |
WO2023178860A1 (zh) * | 2022-03-22 | 2023-09-28 | 奥比中光科技集团股份有限公司 | 一种基于指数函数和softmax函数的优化方法、硬件系统及芯片 |
CN114528989B (zh) * | 2022-04-24 | 2022-09-09 | 深圳比特微电子科技有限公司 | 注意力机制电路 |
CN114528989A (zh) * | 2022-04-24 | 2022-05-24 | 深圳比特微电子科技有限公司 | 注意力机制的激活函数加速方法、装置和注意力机制电路 |
CN114648101A (zh) * | 2022-05-13 | 2022-06-21 | 杭州研极微电子有限公司 | 基于transformer结构的softmax函数量化实现方法和装置 |
CN114626489A (zh) * | 2022-05-17 | 2022-06-14 | 深圳比特微电子科技有限公司 | 一种softmax函数定点化实现方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108021537B (zh) | 2022-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108021537A (zh) | 一种基于硬件平台的softmax实现方式 | |
Ernst | A method for q-calculus | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
US8639737B2 (en) | Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format | |
US10642578B2 (en) | Approximating functions | |
CN112051980B (zh) | 一种基于牛顿迭代法的非线性激活函数计算装置 | |
CN100583024C (zh) | 一种用于浮点除法和平方根运算的预处理电路结构 | |
Li et al. | Efficient FPGA implementation of softmax function for DNN applications | |
Christilda et al. | Speed, power and area efficient 2D FIR digital filter using vedic multiplier with predictor and reusable logic | |
CN107220025A (zh) | 处理乘加运算的装置和处理乘加运算的方法 | |
CN104679721B (zh) | 一种fft处理器的运算方法 | |
CN103809931A (zh) | 一种专用高速浮点指数运算器的设计 | |
Bader et al. | An improved algorithm to compute the exponential of a matrix | |
Schwarz | High-radix algorithms for high-order arithmetic operations | |
CN103365826A (zh) | 一种小面积的基-3fft蝶形单元 | |
Gustafsson et al. | Low-complexity and high-speed constant multiplications for digital filters using carry-save arithmetic | |
Saha et al. | Area efficient architecture of Hyperbolic functions for high frequency applications | |
Saini et al. | Area Optimization of FIR Filter and its Implementation on FPGA | |
Mahzoon et al. | Multi-objective optimization of floating point arithmetic expressions using iterative factorization | |
CN107203491A (zh) | 一种用于fpga的三角脉动阵列结构qr分解装置 | |
Lyu et al. | Reconfigurable Multifunction Computing Unit Using an Universal Piecewise Linear Method | |
López et al. | Parametric decimal division using hardware description language | |
Kumar et al. | Modified Architecture of Vedic Multiplier for High Speed Applications | |
Kumar et al. | Performance evaluation of 64-Bit MAC Unitsusing Different Multipliers In Terms of Area, Power Dissipation and Delay |
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 |