CN117270811A - 非线性算子近似计算方法、装置、神经网络处理器 - Google Patents
非线性算子近似计算方法、装置、神经网络处理器 Download PDFInfo
- Publication number
- CN117270811A CN117270811A CN202311549349.6A CN202311549349A CN117270811A CN 117270811 A CN117270811 A CN 117270811A CN 202311549349 A CN202311549349 A CN 202311549349A CN 117270811 A CN117270811 A CN 117270811A
- Authority
- CN
- China
- Prior art keywords
- floating point
- operator
- point number
- calculation result
- calculation
- 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
- 238000004364 calculation method Methods 0.000 title claims abstract description 335
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 54
- 238000007667 floating Methods 0.000 claims abstract description 287
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000005265 energy consumption Methods 0.000 abstract description 8
- 238000004422 calculation algorithm Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 17
- 238000010606 normalization Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
-
- 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/50—Adding; Subtracting
-
- 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/52—Multiplying; Dividing
-
- 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
- G06N3/0455—Auto-encoder networks; Encoder-decoder 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
-
- 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/08—Learning methods
-
- 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)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Nonlinear Science (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种非线性算子近似计算方法、装置、神经网络处理器,其装置包括:浮点数近似计算单元,用于输入非线性算子的浮点数数据,对所述非线性算子的浮点数数据进行近似计算,输出初始近似计算结果;查找补偿单元,用于输入非线性算子的浮点数数据,输出所述非线性算子的浮点数数据的补偿值;所述浮点数加法器,还用于输入所述初始近似计算结果和所述初始近似计算结果的补偿值,将所述初始近似计算结果和所述初始近似计算结果的补偿值相加,输出目标近似计算结果;非线性算子包括指数算子和平方根算子。本发明的方法,提高了神经网络处理器的计算性能和节约神经网络处理器的计算资源和能耗。
Description
技术领域
本发明涉及计算机人工智能领域,具体涉及一种非线性算子近似计算方法、装置、神经网络处理器。
背景技术
Transformer是一种非常成功的神经网络架构,用于自然语言处理任务,如机器翻译和语言建模,在Transformer中,exp和sqrt算子被频繁使用,例如注意力机制中的权重归一化和神经网络层的规范化中,在提升模型性能、加速训练和稳定训练过程方面发挥了重要作用。在Transformer中,经过点积计算后,得到的注意力分数需要进行 Softmax(归一化指数函数)运算,以将这些分数归一化为注意力权重。在Softmax运算中,指数函数(exponential)被应用于注意力分数,以确保分数为非负数并进行归一化,使得所有的注意力权重之和为1。Layer Normalization(层归一化函数)是一种用于规范化神经网络层输出的技术。在 Transformer 的多头注意力中,通过计算每个头部的注意力权重,并对值进行加权平均,然后应用 Layer Normalization。其计算主要涉及到均值、方差、缩放和平移等操作,其中开平方根运算用于计算方差。所以指数运算和开平方根运算在 Transformer 网络中主要用于确保注意力权重的归一化和层规范化的稳定性,有助于缓解梯度问题和加速训练过程。在层归一化中,通过计算特征维度上的均值和方差,对每个样本进行归一化。exp算子和sqrt算子被用于计算标准差,以保证输入特征的归一化效果。所以如果神经网络处理器要支持Transformer模型,就必须要需要支持exp和sqrt等算子的实现。
其次,sqrt和exp算子在神经网络和科学计算领域中扮演着重要角色,然而神经网络处理器目前在精确计算这些函数时所需的资源和时间开销巨大,限制了计算的速度和效率。
发明内容
为了解决现有技术中的缺陷,本发明提供了一种非线性算子近似计算方法、装置、神经网络处理器。
在一些实施方式中,本发明提供了一种非线性算子近似计算装置,应用于神经网络处理器,所述非线性算子近似计算装置包括一个浮点数乘法器、一个浮点数加法器、一个浮点数除法器,具体包括:
浮点数近似计算单元,用于输入非线性算子的浮点数数据,对所述非线性算子的浮点数数据进行近似计算,输出初始近似计算结果;具体包括:输入指数算子的浮点数数据、与所述浮点数乘法器对应的第一参数至所述浮点数乘法器,并将所述浮点数乘法器的计算结果、与所述浮点数加法器对应的第二参数输入至所述浮点数加法器,以使得所述浮点数加法器输出初始近似计算结果;或;输入平方根算子的浮点数数据、与所述浮点数加法器对应的第三参数至所述浮点数加法器,并将所述浮点数加法器的计算机结果输出到所述浮点数除法器,以使得所述浮点数除法器输出初始近似计算结果;
其中,所述指数算子和所述平方根算子为非线性算子;
查找补偿单元,用于输入非线性算子的浮点数数据,输出所述非线性算子的浮点数数据的补偿值;
所述浮点数加法器,还用于输入所述初始近似计算结果和所述初始近似计算结果的补偿值,将所述初始近似计算结果和所述初始近似计算结果的补偿值相加,输出目标近似计算结果。
在一些实施方式中,所述浮点数近似计算单元,还包括:
浮点数计算模块,用于对所述指数算子的浮点数数据或对所述平方根算子的浮点数数据进行近似计算,结合所述对应的初始近似计算结果的补偿值,得到浮点数表示的目标近似计算结果;
浮点数转定点数模块,用于将所述浮点数表示的目标近似计算结果转为定点整数表示的目标近似计算结果。
在一些实施方式中,所述浮点数计算模块,还用于:
对所述指数算子的浮点数数据进行近似计算,得到所述指数算子的初始近似计算结果,计算公式如下:
;
其中,;S为浮点数的符号位;E为浮点数的指数部分,M为浮点数的尾数部分;/>为浮点数的偏置量;
将上述与调整F相减,/>,得到:
;
,令/>,/>,则所述指数算子的初始近似计算结果为:
;
令Y、A和B为浮点数,那么浮点数表示的初始近似计算结果为:
;
其中,当计算的浮点数为单精度浮点数时,,/>;当计算的浮点数为半精度浮点数时,/>,/>;
;
其中,;C为所述第一参数,,D为所述第二参数,/>。
在一些实施方式中,所述浮点数转定点数模块,还用于:
将所述指数算子的初始近似计算结果从浮点数表示转为定点整数表示,计算公式如下:
;
其中,为浮点数转为定点整数表示后的指数算子的初始近似计算结果。
在一些实施方式中,所述浮点数加法器,还用于:将所述指数算子的初始近似计算结果和所述指数算子的初始近似计算结果的补偿值相加,输出所述指数算子的目标近似计算结果,公式如下:
;
其中,为所述指数算子的初始近似计算结果的补偿值。
在一些实施方式中,所述浮点数计算模块,还用于:
对所述平方根算子的浮点数数据进行近似计算,得到浮点数表示的所述平方根算子的初始近似计算结果,计算公式如下:
;
其中,为所述平方根算子的初始近似计算结果;/>为所述第三参数,令,则/>,/>;当计算的浮点数为单精度浮点数时,;当计算的浮点数为半精度浮点数时,/>;
在一些实施方式中,所述浮点数转定点数模块,还用于:
将所述平方根算子的初始近似计算结果从浮点数表示转为定点整数表示,计算公式如下:
;
其中,;/>;;/>;/>。
在一些实施方式中,所述浮点数加法器,还用于:将所述平方根算子的初始近似计算结果和所述平方根算子的初始近似计算结果的补偿值相加,输出所述平方根算子的目标近似计算结果,公式如下:
;
其中,为所述平方根算子的初始近似计算结果的补偿值。
在一些实施方式中,本发明提供一种神经网络处理器,包括:所述的非线性算子近似计算装置。
在一些实施方式中,一种非线性算子近似计算方法,其特征在于,应用于所述的非线性算子近似计算装置,包括:
输入非线性算子的浮点数数据,对所述非线性算子的浮点数数据进行近似计算,输出初始近似计算结果;具体包括:输入指数算子的浮点数数据、与所述浮点数乘法器对应的第一参数至所述浮点数乘法器,并将所述浮点数乘法器的计算结果、与所述浮点数加法器对应的第二参数输入至所述浮点数加法器,以使得所述浮点数加法器输出初始近似计算结果;或;输入平方根算子的浮点数数据、与所述浮点数加法器对应的第三参数至所述浮点数加法器,并将所述浮点数加法器的计算机结果输出到所述浮点数除法器,以使得所述浮点数除法器输出初始近似计算结果;
其中,所述指数算子和所述平方根算子为非线性算子;
输出所述非线性算子的浮点数数据的补偿值输入非线性算子的浮点数数据,输出所述非线性算子的浮点数数据的补偿值;
输入所述初始近似计算结果和所述初始近似计算结果的补偿值,将所述初始近似计算结果和所述初始近似计算结果的补偿值相加,输出目标近似计算结果。
与现有技术相比,本发明具有如下的有益效果:
本发明提供了一种能够快速实现sqrt算子和exp算子的方法,以提高神经网络处理器的计算性能和节约神经网络处理器的计算资源和能耗。
在本申请中,设计了一种简化的算法和硬件,使得本申请神经网络处理器仅使用一个浮点数乘法器、一个浮点数加法器和一个浮点数除法器,便能对指数函数和平方根函数进行快速计算,因此提升了神经网络处理器的处理速度。
本申请只需要输入与浮点数乘法器关联的固定的参数一、与浮点数加法器关联的固定的参数二、参数三,进一步提升了神经网络处理器的处理速度。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例提供的非线性算子近似计算装置的示意图;
图2为本发明实施例的指数运算中定点域浮点对应关系图;
图3为本发明实施例提供的近似计算与补偿算法整体示意图;
图4为本发明实施例提供的Exp算子和Sqrt算子的近似计算硬件模块图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
为了让神经网络处理器更好地支持各种模型,尤其是Transformer模型,迫切需要一种让神经网络处理器能够高效执行exp和sqrt算子计算任务的解决方案。然而,在让神经网络处理保持计算结果精度的同时实现高效计算一直是一项具有挑战性的任务。
本发明的动机和初衷是为了解决这一问题,旨在通过近似计算算法,提供一种高效、可靠且精度可控的sqrt和exp算子实现方法。能够在保持神经网络处理器的合理精度的前提下,显著降低神经网络处理器的计算复杂度和执行时间,从而实现计算任务的加速和计算资源的节约。该近似计算方法的设计初衷是在牺牲合理计算结果精度的前提下,尽可能减少计算资源和能耗,通过选取适当的近似计算技术,能够以更高的效率来逼近sqrt和exp的精确计算结果。
首先,本发明为了让神经网络处理器能够更好地支持各种模型,引入了一种新的近似计算算法,用于在所需精度范围内近似计算exp和sqrt算子,需求为浮点数输入,中间近似计算所需要的所有运算单元均为浮点数近似计算单元,最后的近似计算结果也为浮点数输出。通过精心设计和优化的近似算法,能够显著降低计算复杂度,实现更快的计算速度,满足对计算性能的苛刻要求。这种创新的近似计算方法不仅能够快速地计算exp和sqrt,还能够确保计算结果与精确计算接近,从而不牺牲计算精度。
SQRT函数 – 根号,返回数字的平方根。EXP函数 – 指数,返回e的n次方。e=2.71828182845904...
现有技术一般是通过多项式分段拟合的复杂算法,需要使用若干个加法器和若干个乘法器对指数函数和平方根函数进行计算,由于使用若干个加法器和若干个乘法器对指数函数和平方根函数进行计算,即需要使用到计算量庞大的硬件,会导致整个神经网络处理器的处理速度非常慢。其中,现有技术的参数数量繁多:由于是通过多项式分段拟合的复杂算法,需要在不同分段时在不同范围内去配置不同参数,会导致算法经过更多级的参数计算,导致整个神经网络处理器的处理过程更加复杂,进而降低了神经网络处理器的处理速度。
在本申请中,设计了一种简化的算法和硬件,使得本申请神经网络处理器仅使用一个浮点数乘法器、一个浮点数加法器和一个浮点数除法器,便能对指数函数和平方根函数进行快速计算,因此提升了神经网络处理器的处理速度。由于设计了这个简化算法,神经网络处理器只需要用到一个浮点数乘法器、一个浮点数加法器和一个浮点数除法器,因此本申请只需要输入与浮点数乘法器关联的固定的参数一、与浮点数加法器关联的固定的参数二、参数三,进一步提升了神经网络处理器的处理速度。下面描述一下具体实施示例,在一个实施例中,本发明提供一种非线性算子近似计算装置,应用于神经网络处理器,所述非线性算子近似计算装置包括一个浮点数乘法器、一个浮点数加法器、一个浮点数除法器,具体包括:
浮点数近似计算单元,用于输入非线性算子的浮点数数据,对所述非线性算子的浮点数数据进行近似计算,输出初始近似计算结果;具体包括:输入指数算子的浮点数数据、与所述浮点数乘法器对应的第一参数至所述浮点数乘法器,并将所述浮点数乘法器的计算结果、与所述浮点数加法器对应的第二参数输入至所述浮点数加法器,以使得所述浮点数加法器输出初始近似计算结果;或;输入平方根算子的浮点数数据、与所述浮点数加法器对应的第三参数至所述浮点数加法器,并将所述浮点数加法器的计算机结果输出到所述浮点数除法器,以使得所述浮点数除法器输出初始近似计算结果;
其中,所述指数算子和所述平方根算子为非线性算子;
查找补偿单元,用于输入非线性算子的浮点数数据,输出所述非线性算子的浮点数数据的补偿值;
所述浮点数加法器,还用于输入所述初始近似计算结果和所述初始近似计算结果的补偿值,将所述初始近似计算结果和所述初始近似计算结果的补偿值相加,输出目标近似计算结果。
在本实施例中,设计了一种简化的算法和硬件,使得本申请神经网络处理器仅使用一个浮点数乘法器、一个浮点数加法器和一个浮点数除法器,便能对指数函数和平方根函数进行快速计算,因此提升了神经网络处理器的处理速度。
在本申请的一个实施例中,所述浮点数近似计算单元,还包括:
浮点数转定点数模块,用于将所述浮点数表示的目标近似计算结果转为定点整数表示的目标近似计算结果。
在本申请的一个实施例中,所述浮点数近似计算单元,还包括所述浮点数近似计算模块,还用于:
对所述指数算子的浮点数数据进行近似计算,得到所述指数算子的初始近似计算结果,计算公式如下:
;
其中,;S为浮点数的符号位;E为浮点数的指数部分,M为浮点数的尾数部分;/>为浮点数的偏置量;
将上述与调整F相减,/>,得到:
;
,令/>,/>,则所述指数算子的初始近似计算结果为:
;
令Y、A和B为浮点数,那么浮点数表示的初始近似计算结果为:
;
其中,当计算的浮点数为单精度浮点数时,,/>;当计算的浮点数为半精度浮点数时,/>,/>;
;
其中,;/>,。
其中,C为图3中的参数1,D为图3中的参数2,参数1和参数2均为根据算法原理和实验计算后,通过外部模块输入。
在本申请的一个实施例中,所述浮点数转定点数模块,还用于:
将所述指数算子的初始近似计算结果从浮点数表示转为定点整数表示,计算公式如下:
;
其中,为浮点数转为定点整数表示后的指数算子的初始近似计算结果。
在本申请的一个实施例中,所述浮点数加法器,还用于:将所述指数算子的初始近似计算结果和所述指数算子的初始近似计算结果的补偿值相加,输出所述指数算子的目标近似计算结果,公式如下:
;
其中,为所述指数算子的初始近似计算结果的补偿值。
在一些实施方式中,所述浮点数计算模块,还用于:
对所述平方根算子的浮点数数据进行近似计算,得到浮点数表示的所述平方根算子的初始近似计算结果,计算公式如下:
;
其中,为所述平方根算子的初始近似计算结果;令/>,则/>,;当计算的浮点数为单精度浮点数时,/>;当计算的浮点数为半精度浮点数时,/>。
其中,为图3中的参数3。
在本申请的一个实施例中,所述浮点数转定点数模块,还用于:
将所述平方根算子的初始近似计算结果从浮点数表示转为定点整数表示,计算公式如下:
;
其中,;/>;;/>;/>。
在本申请的一个实施例中,所述浮点数加法器,还用于:将所述平方根算子的初始近似计算结果和所述平方根算子的初始近似计算结果的补偿值相加,输出所述平方根算子的目标近似计算结果,公式如下:
;
其中,为所述平方根算子的初始近似计算结果的补偿值。
在本申请的一个实施例中,本发明提供一种神经网络处理器,包括:所述的非线性算子近似计算装置。
在本申请的一个实施例中,一种非线性算子近似计算方法,其特征在于,应用于所述的非线性算子近似计算装置,包括:
输入非线性算子的浮点数数据,对所述非线性算子的浮点数数据进行近似计算,输出初始近似计算结果;具体包括:输入指数算子的浮点数数据、与所述浮点数乘法器对应的第一参数至所述浮点数乘法器,并将所述浮点数乘法器的计算结果、与所述浮点数加法器对应的第二参数输入至所述浮点数加法器,以使得所述浮点数加法器输出初始近似计算结果;或;输入平方根算子的浮点数数据、与所述浮点数加法器对应的第三参数至所述浮点数加法器,并将所述浮点数加法器的计算机结果输出到所述浮点数除法器,以使得所述浮点数除法器输出初始近似计算结果;
其中,所述指数算子和所述平方根算子为非线性算子;
输入非线性算子的浮点数数据,输出所述非线性算子的浮点数数据的补偿值;
输入所述初始近似计算结果和所述初始近似计算结果的补偿值,将所述初始近似计算结果和所述初始近似计算结果的补偿值相加,输出目标近似计算结果;
其中,所述非线性算子包括指数算子和平方根算子。
在本申请的一个实施例中,本发明提供一种电子设备,包括:所述的非线性算子近似计算装置。
由于在神经网络计算任务中,对算法的精度要求很高,需要算子的实现尽可能不损失精度。本发明通过近似计算算法实现了sqrt和exp的快速计算,这一步骤显著提高了计算速度。然而,近似计算算法的计算结果可能会引入一定的误差,从而影响了计算结果的精度,这对于要求高精度的神经网络应用来说是不可接受的。
因此,本发明采用了查找表补偿技术来解决这个问题。预先计算了一系列输入-输出对,并将精确计算结果与近似计算结果的差值存储在查找表中。在计算时,首先利用近似计算得到的初步结果,然后通过查找表进行插值和修正,得到精确的计算结果。通过这种智能的补偿机制,能够在保证计算速度的同时,不损失计算结果的精度。
下面描述一下具体实施示例,在一个实施例中,本发明提供一种非线性算子近似计算方法,包括:
在本实施例中,通过查找表补偿技术,将近似计算算法得到的结果与预先计算的精确结果进行比较,并通过查找表中的插值和修正,对近似计算结果进行修正,以获得准确的计算结果。这样,既保证了计算的高效性,又不损失计算结果的精度。
查找表补偿的关键在于构建合适的查找表。我们通过预先计算一组离散的输入-输出对,并存储在查找表中。对于每个输入值,我们使用精确计算方法获得精确的输出值,并将其存储在查找表中。在计算时,我们使用近似计算算法获得初始的近似结果,并利用查找表进行修正,以获得精确的计算结果。
这种基于近似计算和查找表补偿的方法具有多重优势。首先,通过近似计算算法的快速计算,大大提高了计算效率,适用于计算密集型的应用场景。其次,通过查找表补偿技术的修正,可以保证计算结果的精度,满足对精度要求高的应用需求。此外,查找表的设计和存储方式灵活,可以根据实际应用的需要进行优化。
在本发明的一个实施例中,首先采用了一种新的近似计算算法,能够在一定精度范围内近似计算exp和sqrt算子,并且能实现浮点数输入,中间近似计算所需要的所有运算单元均为浮点数近似计算单元,最后的近似计算结果也为浮点数输出。这种近似计算方法大幅降低了计算复杂度,显著提高了计算速度,满足了对计算性能的要求。通过精心设计的近似算法,我们能够在保证计算结果与精确计算接近的同时,大大减少了计算的时间和资源消耗。
其次,为了确保计算结果的精度,引入了查找表补偿技术,提前计算了一系列输入-输出对,并将精确计算结果存储在查找表中。在计算时首先使用近似计算得到的初步结果,然后通过查找表进行插值和修正得到精确的计算结果,这种方式使神经网络处理器能够在保持计算速度的同时,不损失计算结果的精度。通过精心设计的查找表补偿技术,能够准确地修正近似计算引入的误差,从而得到与精确计算结果相近的输出。
具体步骤如下所示:
步骤1:首先将需要进行指数和平方根运算的浮点数数据,输入到相应的近似计算模块中,进行近似计算,得到近似计算结果。
步骤2:其次将上述输入的浮点数数据输入到查找表模块中,输出得到针对近似计算结果的补偿值数据。
步骤3:将步骤1中得到的近似计算结果与步骤2得到的补偿值进行相加,最终得到指数或平方根运算的高精度计算结果。
Exp(指数)近似计算实现原理:
根据方案需求exp和sqrt算子均由浮点数实现,根据IEEE 754对浮点数的标准如下所示。
本方案中的近似计算的硬件模块中均采用浮点数近似计算单元进行,所以exp和sqrt算子的近似计算均由浮点数实现,根据IEEE 754对浮点数的标准如下所示:
;
单精度浮点数的bias(偏置值)为127,双精度浮点数的偏置值为1023,在实际实现时,可以根据算法要求的精度进行具体的修改,以下推导暂时按照单精度浮点数算法进行说明。
将单精度浮点数的32位看成定点整型数,代表的数字大小为,而将其视为浮点数时,其大小为/>,当时S和M均为0的时候,有/>,这表示如果要计算2的X次幂,就相当于把X加上偏置bias后再左移offset位,并计算其相应的浮点数对应的数值。那么此时就可以计算出以2为底的指数函数的值,如图2所示:
如果想计算ex,可以是,就能得到/>进行计算。如果为整数,那么计算出的结果并不包含误差,但是如果为小数,则其结果中的小数会进入到浮点型数的M为部分,导致误差的产生,所以此时需要一个补偿值C对算是计算得到的结果进行补偿。经过调研和实验,当/>的时候均方误差最小,因此通过外部模块输入C作为补偿。
综上所述,以e为底的指数函数可以近似表示为以下形式:
;
其中,令/>。则公式可以表示为:
;
由于本方案设计的算法原理中均为浮点数参与的计算,所以在近似计算模块中采用浮点数计算单元,也就是要保证模块的输入为浮点数数据。同时为了满足模块输出为浮点数的方案需求,要求输出也为浮点数。所以根据上面的推导,如果要计算,如下面公式所示:
;
首先就要明确输入Y为浮点数,同样也为浮点数,为浮点数,其中/>。
当计算为单精度浮点数的时候,/>;当计算为半精度浮点数时,/>,/>。
由于A、Y、B均为浮点数,所以最终计算结果也为浮点数。
这样在硬件中就需要一个浮点数乘法,浮点数加法,以及一个浮点数乘法计算单元,为了进一步简化算法,将左移offsett(浮点数乘2的offset次方)的根据乘法的结合律乘到括号中去。
;
令,/>后,由于A、B和offset根据上文推导都是离线已知的,所以可以离线计算C和D的值,这样在硬件上节省了一个浮点数的乘法器,通常资源消耗较高,加快了运算速度,节约了硬件的能耗。得到下面式子:
;
但是此时temp_a的值还不是的值,还需要进行下面的计算:
;
因为是浮点数计算,所以计算结果也为浮点数运算,如果计算为单精度浮点数,那么“转定点整数表示操作”就是将单精度浮点数转为定点整数表示。经过转化后数值大小几乎不变,但是由于从IEEE754的浮点数表示转为了定点数表示,所以二进制的表示有变化。之后进行一下操作得到最终的计算结果:
;
之前经过计算得到temp_b,为定点数表示,但是该定点数的值依旧不是最终答案,还需要将temp_b这个二进制表示的定点数,按照IEEE754浮点数的表示标准进行解读,得到的浮点数值才是的值。也就是说该操作并未对二进制数进行修改,可以直接输出,当做浮点数进行解读即可。所以综合的公式就是:
;
通过上面这种新的近似计算算法,可以实现exp的近似计算,C、Y和D都为浮点数输入,仅通过一个浮点数乘法和一个浮点数加法,以及浮点数转定点数的模块就实现了浮点数输入,中间计算模块仅为浮点计算模块,最终的输出也为浮点数的exp近似计算的快速算法,极大的节省了硬件资源的消耗,在保证一定精度的同时实现了exp算子的快速计算。
Sqrt(开平方根)近似计算实现原理:
Sqrt求平方根算子的近似算法实现,是由上文中exp指数近似算法实现的基础上推导、演化并改进得来,同样能够实现浮点数输入,中间计算单元仅为浮点计算模块,且最终的输出结果也是浮点数的功能。
根据exp近似算法实现的说明,令,则/>,通过该关系可以得到:
;
反解得到:
;
;
其中ln2是常数,offset与bias的选择与exp近似算法中一致,也为常数,此时X虽然是浮点数输入,但是计算需要以定点数参与运算,计算单元也都是定点数计算单元,所以暂时还不满足要求。
同时Power算子的公式为:
;
因此需要对该公式进行等价转换:
;
当s=1时,y必须为整数。将上面对ln(x)和exp的公式带入上面的公式可以得到如下公式:
;
考虑到X和Y是相同的量化等级,同时X为浮点数输入,Y为定点数输入,因此offset_y=offset_x,bias_x=bias_y,因此可以对上面的公式进一步简化,化简可以得到:
;
所以如果要进行开平方根的运算,就可以化简为下面的公式:
;
因为,令/>,得下面公式:
;
从硬件资源消耗来进行优化,可以根据乘法的结合律和分配律进行化简得:;
这样就只需要一个浮点数加法和浮点数乘法得到最终的值。
为了保证输入为浮点数,输出为浮点数,而且中间的当计算单元也仅为浮点数计算单元,所以需要下面的操作:
;
看为定点整数操作就是将浮点数X输入的表示,当做定点整数来解读,此时二进制表示不变,但是数值大小会随着“当成定点数解读”而改变。
因为项目中神经网络处理器中exp和sqrt算子的近似计算模块采用浮点数计算单元的需求,需要通过浮点数计算单元来完成近似计算,所以还需要进行以下操作:
;
“转浮点数表示操作”就是在保证输入X_1的数值不变的情况下,将二进制数转换为IEEE754浮点数二进制进行表示。这样最终实现数值大小不变,将输入的定点数二进制数表示转变为了IEEE浮点数二进制数表示。然后带入下式:
;
将浮点数temp_a带入下面式子,得到浮点数temp_b:
;
但是此时的浮点数并非最终sqrt的输出答案,还需要将该浮点数转定点数整数表示:
随后将该浮点数转为定点整数表示:
;
此时二进制表示的temp_c需要按照IEEE754的浮点数表示标准进行解读,解读的值就是最终sqrt算子输出的浮点数值。
。
示例性的,如图3所示,在平方根的近似计算中,首先输入待计算的浮点数,然后将该浮点数看做整型的定点数后,与参数进行相加,然后再除以2。之后将该结果转为整型的定点数后,经过一定的延时模块,最终输出得到初始近似计算结果。
在指数的近似计算中,首先输入待计算的浮点数,然后将该浮点数与参数1(前文中的C)相乘后,再与参数2(前文中的D)进行相加。之后经过浮点转定点模块,最终得到指数运算的初始近似计算结果。
近似计算与补偿技术硬件具体方案:示例性的,如图4所示,首先将输入数据输入到近似计算单元中得到相应的初始近似计算结果,同时输入到误差补偿单元中的得到补偿值。然后再将初始近似计算结果与补偿值经过加法单元后得到最终的目标近似计算结果。其中的有效信号来表示源端信号的有效性,准备信号则表示接收端是否可以进行数据的接收,通过有效信号和准备信号来完成数据传输的握手协议。
近似计算可能会引入一定的误差,这对于要求高精度的神经网络应用来说是不可接受的。因此,本专利同时采用了查找表补偿技术来解决这个问题。预先计算一系列输入-输出对,并将精确计算结果与近似计算结果的差值存储在查找表中。在计算时,我们首先利用近似计算得到的初步结果,然后通过查找表进行插值和修正,得到精确的计算结果。通过这种补偿机制,能够在保证计算速度的同时,不损失计算结果的精度。
近似计算可能会引入一定的误差,这对于要求高精度的神经网络应用来说是不可接受的。因此,本专利同时采用了查找表补偿技术来解决这个问题。在预先选定的输入数据范围内,根据上述算法得到算子的近似计算结果,同时也要计算得到该算子的精确计算结果,将精确计算结果与近似计算结果的差值存储在查找表中,查找表低层硬件实现为SRAM(静态随机存取存储器)。
本发明提出来一种exp(指数运算)和sqrt(平方根运算)非线性算子的算法方案,不仅通过高效的近似算法来快速完成算子的计算,同时又为了保证神经网络计算中的精度,采用查找表对近似算法的结果进行精度补偿,从而完成在不损失精度条件下的神经网络处理器中的非线性算子的快速计算。
近似计算是一种通过牺牲计算精度来换取计算效率和能耗优化的技术。在神经网络处理器中(AI加速器)中,近似计算被广泛应用于神经网络的计算任务中,其中包括exp和sqrt等算子。神经网络为了能够精确实现这些算子的计算,通常会需要耗费大量的时间,由于典型数学库中的幂运算程序速度较慢,用快速近似值替换它们可以大大减少总的计算时间。本发明通过近似计算方法,使用更简单、更快速的计算方式来替代精确计算,以提高计算性能和效率。
为了提高计算精度,在近似计算之后,还可以使用查找表来进行补偿。查找表补偿算法的基本思想是预先计算一组离散的输入-输出对,并将其存储在查找表中。在运行时,通过查找表来获取近似计算结果,并对其进行修正,以提高计算的准确性。
通过近似算法和查找表补偿的方式来实现复杂算子的计算工作有很多好处:
首先,可以提高计算效率,精确计算exp和sqrt算子需要执行复杂的数学运算,而近似计算方法使用更简化的计算模型,可以大幅度降低计算复杂度和执行时间。
其次,通过近似计算,神经网络处理器能够在更短的时间内完成大量计算任务,提高整体计算效率。
再者,通过近似计算方法还可以对能耗进行优化,近似计算方法通常具有更低的能耗需求。由于近似计算使用了更简单的计算模型,可以减少计算电路的复杂性和功耗。在大规模的神经网络计算中,采用近似计算可以降低功耗消耗,从而实现功耗的有效利用。
同时,使用查找表补偿算法的优势在于可以根据具体应用需求和资源限制进行灵活调整,通过合理的离散化和插值技术,查找表可以在牺牲一定存储空间的情况下,显著提高近似计算方法的精度,此外,查找表补偿算法的实现相对简单,易于集成到现有的神经网络处理器计算架构中。
总而言之,近似计算在神经网络处理器中为神经网络的计算任务带来了显著的优化,同时通过查找表的补偿,来实现精度不损失的计算。所以该方法在提高计算效率、降低能耗等方面具有明显的优势,为算子计算的性能提升和应用场景的扩展提供了有力的支持。
在本实施例中,本发明提出了一种创新的技术方案,结合近似计算和查找表补偿,旨在加速计算速度、节约计算资源,并保持计算结果的精度。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本发明的实施例和实施例中的特征可以任意相互组合。
Claims (10)
1.一种非线性算子近似计算装置,其特征在于,应用于神经网络处理器,所述非线性算子近似计算装置包括一个浮点数乘法器、一个浮点数加法器、一个浮点数除法器,具体包括:
浮点数近似计算单元,用于输入非线性算子的浮点数数据,对所述非线性算子的浮点数数据进行近似计算,输出初始近似计算结果;具体包括:输入指数算子的浮点数数据、与所述浮点数乘法器对应的第一参数至所述浮点数乘法器,并将所述浮点数乘法器的计算结果、与所述浮点数加法器对应的第二参数输入至所述浮点数加法器,以使得所述浮点数加法器输出初始近似计算结果;或;输入平方根算子的浮点数数据、与所述浮点数加法器对应的第三参数至所述浮点数加法器,并将所述浮点数加法器的计算机结果输出到所述浮点数除法器,以使得所述浮点数除法器输出初始近似计算结果;
其中,所述指数算子和所述平方根算子为非线性算子;
查找补偿单元,用于输入非线性算子的浮点数数据,输出所述非线性算子的浮点数数据的补偿值;
所述浮点数加法器,还用于输入所述初始近似计算结果和所述初始近似计算结果的补偿值,将所述初始近似计算结果和所述初始近似计算结果的补偿值相加,输出目标近似计算结果。
2.根据权利要求1所述的非线性算子近似计算装置,其特征在于,所述浮点数近似计算单元,还包括:
浮点数转定点数模块,用于将所述浮点数表示的目标近似计算结果转为定点整数表示的目标近似计算结果。
3.根据权利要求2所述的非线性算子近似计算装置,其特征在于,所述浮点数近似计算单元,还包括:浮点数近似计算模块,用于:
对所述指数算子的浮点数数据进行近似计算,得到所述指数算子的初始近似计算结果,计算公式如下:
;
其中,;S为浮点数的符号位;E为浮点数的指数部分,M为浮点数的尾数部分;/>为浮点数的偏置量;
将上述与调整F相减,/>,得到:
;
,令/>,/>,则所述指数算子的初始近似计算结果为:
;
令Y、A和B为浮点数,那么浮点数表示的初始近似计算结果为:
;
其中,当计算的浮点数为单精度浮点数时,,/>;当计算的浮点数为半精度浮点数时,/>,/>;
;
其中,;C为所述第一参数,/>,D为所述第二参数,/>。
4.根据权利要求3所述的非线性算子近似计算装置,其特征在于,所述浮点数转定点数模块,还用于:
将所述指数算子的初始近似计算结果从浮点数表示转为定点整数表示,计算公式如下:
;
其中,为浮点数转为定点整数表示后的指数算子的初始近似计算结果。
5.根据权利要求4所述的非线性算子近似计算装置,其特征在于,所述浮点数加法器,还用于:将所述指数算子的初始近似计算结果和所述指数算子的初始近似计算结果的补偿值相加,输出所述指数算子的目标近似计算结果,公式如下:
;
其中,为所述指数算子的初始近似计算结果的补偿值。
6.根据权利要求2所述的非线性算子近似计算装置,其特征在于,所述浮点数计算模块,还用于:
对所述平方根算子的浮点数数据进行近似计算,得到浮点数表示的所述平方根算子的初始近似计算结果,计算公式如下:
;
其中,为所述平方根算子的初始近似计算结果;/>为所述第三参数,令/>,则/>,/>;当计算的浮点数为单精度浮点数时,/>;当计算的浮点数为半精度浮点数时,/>。
7.根据权利要求6所述的非线性算子近似计算装置,其特征在于,所述浮点数转定点数模块,还用于:
将所述平方根算子的初始近似计算结果从浮点数表示转为定点整数表示,计算公式如下:
;
其中,;/>;;/>;/>。
8.根据权利要求7所述的非线性算子近似计算装置,其特征在于,所述浮点数加法器,还用于:将所述平方根算子的初始近似计算结果和所述平方根算子的初始近似计算结果的补偿值相加,输出所述平方根算子的目标近似计算结果,公式如下:
;
其中,为所述平方根算子的初始近似计算结果的补偿值。
9.一种神经网络处理器,其特征在于,包括:如权利要求1~8中任一项所述的非线性算子近似计算装置。
10.一种非线性算子近似计算方法,其特征在于,应用于如权利要求1~8中任一项所述的非线性算子近似计算装置,包括:
输入非线性算子的浮点数数据,对所述非线性算子的浮点数数据进行近似计算,输出初始近似计算结果;具体包括:输入指数算子的浮点数数据、与所述浮点数乘法器对应的第一参数至所述浮点数乘法器,并将所述浮点数乘法器的计算结果、与所述浮点数加法器对应的第二参数输入至所述浮点数加法器,以使得所述浮点数加法器输出初始近似计算结果;或;输入平方根算子的浮点数数据、与所述浮点数加法器对应的第三参数至所述浮点数加法器,并将所述浮点数加法器的计算机结果输出到所述浮点数除法器,以使得所述浮点数除法器输出初始近似计算结果;
其中,所述指数算子和所述平方根算子为非线性算子;
输入非线性算子的浮点数数据,输出所述非线性算子的浮点数数据的补偿值;
输入所述初始近似计算结果和所述初始近似计算结果的补偿值,将所述初始近似计算结果和所述初始近似计算结果的补偿值相加,输出目标近似计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311549349.6A CN117270811B (zh) | 2023-11-21 | 2023-11-21 | 非线性算子近似计算方法、装置、神经网络处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311549349.6A CN117270811B (zh) | 2023-11-21 | 2023-11-21 | 非线性算子近似计算方法、装置、神经网络处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117270811A true CN117270811A (zh) | 2023-12-22 |
CN117270811B CN117270811B (zh) | 2024-02-02 |
Family
ID=89218082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311549349.6A Active CN117270811B (zh) | 2023-11-21 | 2023-11-21 | 非线性算子近似计算方法、装置、神经网络处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117270811B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1795627A (zh) * | 2003-04-03 | 2006-06-28 | 北方电讯网络有限公司 | 光通信系统中非线性效应的电域补偿 |
US20070073798A1 (en) * | 2005-09-28 | 2007-03-29 | Donofrio David D | Enhanced floating-point unit for extended functions |
CN111984227A (zh) * | 2020-08-26 | 2020-11-24 | 南京大学 | 一种针对复数平方根的近似计算装置及方法 |
CN112051980A (zh) * | 2020-10-13 | 2020-12-08 | 浙江大学 | 一种基于牛顿迭代法的非线性激活函数计算装置 |
CN112734023A (zh) * | 2021-02-02 | 2021-04-30 | 中国科学院半导体研究所 | 应用于循环神经网络的激活函数的可重构电路 |
US11106430B1 (en) * | 2019-05-16 | 2021-08-31 | Facebook, Inc. | Circuit and method for calculating non-linear functions of floating-point numbers |
US20210406645A1 (en) * | 2020-06-29 | 2021-12-30 | Aselsan Elektronik San. Ve Tic. A. S. | Method for Low Resource and Low Power Consuming Implementation of Nonlinear Activation Functions of Artificial Neural Networks |
WO2022168604A1 (ja) * | 2021-02-05 | 2022-08-11 | コニカミノルタ株式会社 | ソフトマックス関数の近似計算装置、近似計算方法および近似計算プログラム |
CN115270071A (zh) * | 2022-07-08 | 2022-11-01 | 南京大学 | 一种近似计算softmax函数的装置 |
CN115293978A (zh) * | 2022-07-11 | 2022-11-04 | 上海为旌科技有限公司 | 卷积运算电路和方法、图像处理设备 |
CN115526131A (zh) * | 2022-09-06 | 2022-12-27 | 江南大学 | 多级编码近似计算Tanh函数的方法及装置 |
US20230078203A1 (en) * | 2021-09-03 | 2023-03-16 | Qualcomm Incorporated | Configurable nonlinear activation function circuits |
CN117032625A (zh) * | 2023-08-31 | 2023-11-10 | 中国电子科技集团公司第五十八研究所 | 一种低延时的浮点平方根函数硬件实现方法 |
CN117056651A (zh) * | 2023-07-14 | 2023-11-14 | 西安电子科技大学芜湖研究院 | 一种Sigmoid函数的近似计算方法及近似计算状态机 |
-
2023
- 2023-11-21 CN CN202311549349.6A patent/CN117270811B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1795627A (zh) * | 2003-04-03 | 2006-06-28 | 北方电讯网络有限公司 | 光通信系统中非线性效应的电域补偿 |
US20070073798A1 (en) * | 2005-09-28 | 2007-03-29 | Donofrio David D | Enhanced floating-point unit for extended functions |
US11106430B1 (en) * | 2019-05-16 | 2021-08-31 | Facebook, Inc. | Circuit and method for calculating non-linear functions of floating-point numbers |
US20210406645A1 (en) * | 2020-06-29 | 2021-12-30 | Aselsan Elektronik San. Ve Tic. A. S. | Method for Low Resource and Low Power Consuming Implementation of Nonlinear Activation Functions of Artificial Neural Networks |
CN111984227A (zh) * | 2020-08-26 | 2020-11-24 | 南京大学 | 一种针对复数平方根的近似计算装置及方法 |
CN112051980A (zh) * | 2020-10-13 | 2020-12-08 | 浙江大学 | 一种基于牛顿迭代法的非线性激活函数计算装置 |
CN112734023A (zh) * | 2021-02-02 | 2021-04-30 | 中国科学院半导体研究所 | 应用于循环神经网络的激活函数的可重构电路 |
WO2022168604A1 (ja) * | 2021-02-05 | 2022-08-11 | コニカミノルタ株式会社 | ソフトマックス関数の近似計算装置、近似計算方法および近似計算プログラム |
US20230078203A1 (en) * | 2021-09-03 | 2023-03-16 | Qualcomm Incorporated | Configurable nonlinear activation function circuits |
CN115270071A (zh) * | 2022-07-08 | 2022-11-01 | 南京大学 | 一种近似计算softmax函数的装置 |
CN115293978A (zh) * | 2022-07-11 | 2022-11-04 | 上海为旌科技有限公司 | 卷积运算电路和方法、图像处理设备 |
CN115526131A (zh) * | 2022-09-06 | 2022-12-27 | 江南大学 | 多级编码近似计算Tanh函数的方法及装置 |
CN117056651A (zh) * | 2023-07-14 | 2023-11-14 | 西安电子科技大学芜湖研究院 | 一种Sigmoid函数的近似计算方法及近似计算状态机 |
CN117032625A (zh) * | 2023-08-31 | 2023-11-10 | 中国电子科技集团公司第五十八研究所 | 一种低延时的浮点平方根函数硬件实现方法 |
Non-Patent Citations (2)
Title |
---|
朱世凯等: "基于存储计算的可重构加速架构设计", 《计算机工程与设计》, pages 1071 - 1075 * |
马小霞;李文新;金田;赵彦荣;夏加高;: "多核浮点非线性运算协处理器的设计与实现", 计算机工程, no. 02, pages 131 - 136 * |
Also Published As
Publication number | Publication date |
---|---|
CN117270811B (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gao et al. | Design and implementation of an approximate softmax layer for deep neural networks | |
US4999801A (en) | Floating point operation unit in division and square root operations | |
CN110852416A (zh) | 基于低精度浮点数数据表现形式的cnn加速计算方法及系统 | |
CN112051980B (zh) | 一种基于牛顿迭代法的非线性激活函数计算装置 | |
CN110852434A (zh) | 基于低精度浮点数的cnn量化方法、前向计算方法及装置 | |
CN111984227A (zh) | 一种针对复数平方根的近似计算装置及方法 | |
CN111813371B (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
CN111443893A (zh) | 一种基于cordic算法的n次根计算装置及方法 | |
CN112651496A (zh) | 一种处理激活函数的硬件电路及芯片 | |
WO2022170811A1 (zh) | 一种适用于混合精度神经网络的定点乘加运算单元及方法 | |
Chen et al. | Approximate softmax functions for energy-efficient deep neural networks | |
CN117270811B (zh) | 非线性算子近似计算方法、装置、神经网络处理器 | |
CN111666064B (zh) | 基于cordic的三角函数循环迭代求解方法和装置 | |
CN111984226A (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
CN109298848A (zh) | 双模式浮点除法平方根的电路 | |
GB2530883A (en) | Implementing a square root operation in a computer system | |
CN111930342B (zh) | 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法 | |
JP2020098469A (ja) | 演算処理装置および演算処理装置の制御方法 | |
CN115062768A (zh) | 一种逻辑资源受限平台的Softmax硬件实现方法及系统 | |
WO2022164678A1 (en) | Digital circuitry for normalization functions | |
CN113377333A (zh) | 基于抛物线综合法求复数的n次开根号的硬件计算系统和方法 | |
Mishra et al. | Design and implementation of a low power area efficient Bfloat16 based CORDIC processor | |
Wang et al. | SOLE: Hardware-Software Co-design of Softmax and LayerNorm for Efficient Transformer Inference | |
KR20230143041A (ko) | 다중 모드 활성화 함수를 위한 가속기 장치 | |
Yuan | Resource-saving Design Scheme Based on Look-Up Table for Activation Functions |
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 |