CN115469829A - 运算装置和基于运算电路的指数运算方法 - Google Patents
运算装置和基于运算电路的指数运算方法 Download PDFInfo
- Publication number
- CN115469829A CN115469829A CN202211334042.XA CN202211334042A CN115469829A CN 115469829 A CN115469829 A CN 115469829A CN 202211334042 A CN202211334042 A CN 202211334042A CN 115469829 A CN115469829 A CN 115469829A
- Authority
- CN
- China
- Prior art keywords
- exponent
- output
- base
- multiplier
- exponential
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000014509 gene expression Effects 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims description 36
- 230000004913 activation Effects 0.000 claims description 30
- 238000013528 artificial neural network Methods 0.000 claims description 13
- 235000004257 Cordia myxa Nutrition 0.000 claims description 3
- 244000157795 Cordia myxa Species 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 125000004432 carbon atom Chemical group C* 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
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/544—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 for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本公开提供了运算装置,包括:第一运算电路,配置成:根据第一指数运算式对应的第一底数和第一指数以及第二指数运算式对应的第二底数,确定第二指数运算式对应的第二指数,其中,第一底数为大于2的实数,第一指数为非零实数,第二底数为2的正整数次幂,第一指数运算式与第二指数运算式的运算结果相等;第二运算电路,配置成:采用数值拟合方式确定第三指数运算式的运算结果,其中,第三指数运算式对应的第三底数与第二底数相同,第三指数运算式对应的第三指数为第二指数的小数部分;以及第三运算电路,配置成:根据第三指数运算式的运算结果和第二指数的整数部分,确定第一指数运算式的运算结果。本公开还提供了基于运算电路的指数运算方法。
Description
技术领域
本公开涉及数值计算领域,具体地,涉及一种运算装置、基于运算电路的指数运算方法、芯片、计算设备以及计算机可读存储介质。
背景技术
指数运算是数值计算中常见的运算形式,为了使运算装置能够更加准确、快速地进行指数运算,对运算装置的算法和硬件电路方面的设计提出了越来越高的要求。
在相关技术中,可以基于指数函数(指数运算式)的泰勒展开式来确定指数运算式的运算结果,例如,基于泰勒展开式设计对应的硬件电路以进行指数运算。然而,在指数函数的自变量(即,指数运算式对应的指数)的取值范围较大时,基于泰勒展开式和对应硬件电路所得到的运算结果与真实值之间的偏差较大。另外,随着泰勒展开式的展开项数的增加,对应的硬件电路的架构会更加复杂,导致运算速度下降。
发明内容
有鉴于此,本公开提供了一种运算装置、基于运算电路的指数运算方法、芯片、计算设备以及计算机可读存储介质,以缓解、减轻、甚至消除上述问题。
根据本公开的一个方面,提供了一种运算装置,其特征在于,所述运算装置包括:第一运算电路,其配置成:根据第一指数运算式对应的第一底数和第一指数以及第二指数运算式对应的第二底数,确定第二指数运算式对应的第二指数,其中,所述第一底数为大于2的实数,所述第一指数为非零实数,所述第二底数为2的正整数次幂,所述第一指数运算式与所述第二指数运算式的运算结果相等;第二运算电路,其配置成:采用数值拟合方式确定第三指数运算式的运算结果,其中,所述第三指数运算式对应的第三底数与所述第二底数相同,所述第三指数运算式对应的第三指数为所述第二指数的小数部分;以及第三运算电路,其配置成:根据所述第三指数运算式的运算结果、所述第二指数的整数部分以及所述第二底数,确定所述第一指数运算式的运算结果。
根据本公开的一些实施例,所述第一运算电路包括第一乘法器,所述第一乘法器用于获取所述第一指数和第一系数的乘积,所述第一系数根据所述第一底数和所述第二底数被确定。
根据本公开的一些实施例,所述数值拟合方式包括多项式拟合,所述第二运算电路包括与所述多项式拟合对应的至少一个加法器和至少一个乘法器。
根据本公开的一些实施例,所述多项式拟合对应的拟合次数为三,所述第二运算电路包括第二乘法器、第三乘法器、第四乘法器、第一加法器、第二加法器以及第三加法器,并且其中:所述第二乘法器被配置成确定所述第三指数和第二系数的乘积作为第一输出;所述第一加法器被配置成确定所述第一输出和第三系数之和作为第二输出;所述第三乘法器被配置成确定所述第二输出和所述第三指数的乘积作为第三输出;所述第二加法器被配置成确定所述第三输出和第四系数之和作为第四输出;所述第四乘法器被配置成确定所述第四输出和所述第三指数的乘积作为第五输出;以及所述第三加法器被配置成确定所述第五输出和第五系数之和作为所述第三指数运算式的运算结果;其中,所述第二系数、所述第三系数、所述第四系数以及所述第五系数根据所述多项式拟合对应的拟合参数被确定。
根据本公开的一些实施例,所述多项式拟合对应的拟合次数为三,所述第二运算电路包括第五乘法器、第六乘法器、第七乘法器、第八乘法器、第九乘法器、第十乘法器、第四加法器、第五加法器以及第六加法器,并且其中:所述第五乘法器被配置成确定所述第三指数和第六系数的乘积作为第六输出;所述第六乘法器被配置成确定所述第六输出和所述第三指数的乘积作为第七输出;所述第七乘法器被配置成确定所述第七输出和所述第三指数的乘积作为第八输出;所述第八乘法器被配置成确定所述第三指数和第七系数的乘积作为第九输出;所述第九乘法器被配置成确定所述第九输出和所述第三指数的乘积作为第十输出;所述第十乘法器被配置成确定所述第三指数和第八系数的乘积作为第十一输出;所述第四加法器被配置成确定所述第十输出和所述第十一输出之和作为第十二输出;所述第五加法器被配置成确定所述第十二输出和所述第八输出之和作为第十三输出;以及所述第六加法器被配置成确定所述第十三输出和第九系数之和作为所述第三指数运算式的运算结果;其中,所述第六系数、所述第七系数、所述第八系数以及所述第九系数根据所述多项式拟合对应的拟合参数被确定。
根据本公开的一些实施例,所述第三运算电路包括移位器,所述移位器被配置成:基于所述第二指数的整数部分和所述第二底数,对所述第三指数运算式的运算结果对应的二进制编码值进行移位操作,以确定所述第一指数运算式的运算结果。
根据本公开的一些实施例,所述第二指数运算式对应的第二底数为2,并且其中所述移位操作对应的移位数等于所述第二指数的整数部分。
根据本公开的一些实施例,所述第二指数运算式对应的第二底数为4,并且其中所述移位操作对应的移位数等于所述第二指数的整数部分的二倍。
根据本公开的一些实施例,所述第一底数为自然对数的底数e,并且所述运算装置被配置成确定神经网络中的激活函数的指数运算部分的运算结果。
根据本公开的一些实施例,所述激活函数为以下中的任意一种:Softmax激活函数、Sigmoid激活函数、Tanh激活函数、Swish激活函数、Elu激活函数、Gelu激活函数以及Selu激活函数。
根据本公开的另一个方面,提供了一种基于运算电路的指数运算方法,其特征在于,所述指数运算方法包括:根据第一指数运算式对应的第一底数和第一指数以及第二指数运算式对应的第二底数,利用第一运算电路确定第二指数运算式对应的第二指数,其中,所述第一底数为大于2的实数,所述第一指数为非零实数,所述第二底数为2的正整数次幂,所述第一指数运算式与所述第二指数运算式的运算结果相等;采用数值拟合方式,利用第二运算电路确定第三指数运算式的运算结果,其中,所述第三指数运算式对应的第三底数与所述第二底数相同,所述第三指数运算式对应的第三指数为所述第二指数的小数部分;以及根据所述第三指数运算式的运算结果、所述第二指数的整数部分以及所述第二底数,利用第三运算电路确定所述第一指数运算式的运算结果。
根据本公开的又一个方面,提供了一种芯片,其特征在于,所述芯片包括可编程逻辑电路以及可执行指令中的至少之一,所述芯片在电子设备中运行,用于实现根据本公开的前述方面提供的指数运算方法。
根据本公开的又一个方面,提供了一种计算设备,其特征在于,所述计算设备包括:存储器,其被配置为存储计算机可执行指令;处理器,其被配置为当所述计算机可执行指令被处理器执行时执行根据本公开的前述方面提供的指数运算方法。
根据本公开的又一个方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,其特征在于,当所述计算机可执行指令被处理器执行时,实现根据本公开的前述方面提供的指数运算方法。
根据本公开的又一个方面,提供了一种计算机程序产品,包括计算机可执行指令,其特征在于,所述计算机可执行指令被处理器执行时实现根据本公开的前述方面提供的指数运算方法。
在本公开提供的运算装置中,运算装置利用其第一运算电路,根据第一指数运算式对应的第一底数和第一指数以及第二指数运算式对应的第二底数,确定第二指数运算式对应的第二指数(第一底数为大于2的实数,第一指数为非零实数,第二底数为2的正整数次幂,第一指数运算式与第二指数运算式的运算结果相等);运算装置进而采用数值拟合方式,利用其第二运算电路确定第三指数运算式的运算结果(第三指数运算式对应的第三底数与第二底数相同,第三指数运算式对应的第三指数为第二指数的小数部分);运算装置然后利用其第三运算电路,根据第三指数运算式的运算结果、第二指数的整数部分以及第二底数,确定第一指数运算式的运算结果。通过该运算装置,可以更加准确地并且快速地确定指数运算的运算结果。
根据在下文中所描述的实施例,本公开的这些和其他方面将是清楚明白的,并且将参考在下文中所描述的实施例而被阐明。
附图说明
在下面结合附图对于示例性实施例的描述中,本公开的技术方案的更多细节、特征和优点被公开,在附图中:
图1示意性示出了根据本公开的一些实施例的运算装置的示例性架构图;
图2示意性示出了根据本公开的一些实施例的第一运算电路的示例性架构图;
图3示意性示出了根据本公开的一些实施例的第二运算电路的示例性架构图;
图4示意性示出了根据本公开的另一些实施例的第二运算电路的示例性架构图;
图5示意性示出了根据本公开的一些实施例的基于运算电路的指数运算方法的示例性流程图;
图6图示了示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备。
具体实施方式
下面将参照附图更详细地描述本公开的若干个实施例以便使得本领域技术人员能够实现本公开的技术方案。本公开的技术方案可以体现为许多不同的形式和目的,并且不应局限于本文所阐述的实施例。提供这些实施例是为了使得本公开的技术方案清楚完整,但所描述的实施例并不限定本公开的保护范围。
除非另有定义,本文中使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员所通常理解的相同含义。将进一步理解的是,诸如那些在通常使用的字典中定义的之类的术语应当被解释为具有与其在相关领域和/或本说明书上下文中的含义相一致的含义,并且将不在理想化或过于正式的意义上进行解释,除非本文中明确地如此定义。
图1示意性示出了根据本公开的一些实施例的运算装置100的示例性架构图。如图1所示,运算装置100包括第一运算电路110、第二运算电路120和第三运算电路130。运算装置100可以用于确定第一指数运算式a x 的运算结果。示例性地,运算装置100可以集成到嵌入式神经网络处理器(Neural-network Processing Units, NPU)中,在这种情况下,运算装置100可以是NPU的一部分。替代地,运算装置100可以集成到具有通用计算能力的任何其他类型的处理器或芯片中,包括但不限于:中央处理器(Central Processing Unit, CPU)、图形处理器(Graphics Processing Unit, GPU)等,其中,GPU可以是通用计算图形处理器(General Purpose GPU, GPGPU)、全功能GPU等。替代地,运算装置100可以集成到基于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)等架构的专用处理器或芯片中。
具体地,第一运算电路110可以被配置成:根据第一指数运算式a x 对应的第一底数a和第一指数x以及第二指数运算式b y 对应的第二底数b,确定第二指数运算式b y 对应的第二指数y。其中,第一底数a为大于2的实数(例如,2.1、2.2、自然对数的底数e,等等),第一指数x为非零实数(例如,-0.123、0.2346、3、5.934、64、或者是半精度浮点数FP16表示的任意值,等等),第二底数b为2的正整数次幂(例如,2、4、8,等等),第一指数运算式a x 与第二指数运算式b y 的运算结果相等,即第一指数运算式a x 与第二指数运算式b y 满足式(1):
a x = b y (1)
根据式(1),可以得到第二指数y与第一底数a、第一指数x以及第二底数b之间的关系,如式(2)所示:
y = x / log a b (2)
第一运算电路110可以根据式(2)来确定第二指数y。示例性地,第一运算电路110可以包括一个除法器,该除法器用于获取第一指数x与log a b的商。需要说明的是,log a b的值可以是预先确定的,即第一运算电路110可以访问存储有log a b的值的存储元件(例如,寄存器、内存等)以获取log a b的值。这种存储有log a b的值的存储元件可以在第一运算电路110的外部,也可以与第一运算电路110集成在一起作为第一运算电路110的一部分。替代地,log a b的值可以通过相关技术中的拟合算法以及对应的硬件电路来确定,例如,可以通过坐标旋转数字计算算法(Coordinate Rotation Digital Computer, CORDIC),设计相应的加法器、减法器以及移位器的组合来确定log a b的值。
替代地,第一运算电路110可以包括一个乘法器,该乘法器用于获取第一指数x与log a b的倒数的乘积。log a b的倒数的确定方法可以参考上文关于确定log a b的各种方法的描述,这里不再赘述。本公开对确定log a b以及log a b的倒数的方法不做限制。
第一运算电路110所确定的第二指数y可以被表示成整数部分i和小数部分r之和,如式(3)所示:
y = i + r (3)
根据式(3),第一指数运算式a x 与第二指数运算式b y 所满足的上述式(1)可以被表示成式(4):
a x = b i ∙ b r (4)
式(4)中的b r 可以通过第二运算电路120来确定。具体地,第二运算电路120可以被配置成:采用数值拟合方式确定第三指数运算式的运算结果,其中,第三指数运算式对应的第三底数与第二底数b相同,第三指数运算式对应的第三指数为第二指数y的小数部分r,即,第三指数运算式为b r 。第二指数y的小数部分r在0和1之间(不包括端点0和1)。
例如,所述数值拟合方式可以包括但不限于:多项式拟合、指数拟合、三角函数拟合等等。示例性地,所述数值拟合方式可以采用多项式拟合,例如,可以使用一次多项式来确定第三指数运算式b r 的运算结果,如式(5)所示:
b r ≈c 0 + c 1 ∙ r (5)
作为另一示例,可以使用三次多项式来确定第三指数运算式b r 的运算结果,如式(6)所示:
b r ≈c 0 + c 1 ∙ r+ c 2 ∙ r 2 + c 3 ∙ r 3 (6)
需要说明的是,在本公开中,用来拟合第三指数运算式b r 的运算结果的数值拟合公式中的拟合参数可以使用本领域技术人员已知的任何技术来确定,例如,可以利用最小化均方差(Mean squared error, MSE)、均方根(Root mean squared error, RMSE)、和方差(The sum of squares due to error, SSE)等方式来确定数值拟合公式中的拟合参数。
示例性地,这里给出利用最小化MSE的方法来确定式(6)中三次多项式的拟合参数(c 0, c 1, c 2, c 3)的过程:
构造拟合数据集D={(x 1, y 1), (x 2, y 2), …,(x n, y n)},拟合数据集D中的任一元素(x k, y k )满足式(7):
其中,k=1,2,…n。式(6)中三次多项式的拟合参数(c 0, c 1, c 2, c 3)满足式(8):
可以将式(8)简写为式(9):
均方误差可以由式(10)表示:
其中,Y表示由元素 y 1, y 2, …, y n组成的矩阵。式(6)中三次多项式的拟合参数(c 0, c 1, c 2, c 3)可以使得式(10)所表示的均方误差L取到最小值,即式(9)中的由三次多项式的拟合参数(c 0, c 1, c 2, c 3)组成的矩阵C满足式(11):
通过式(9)、式(10)和式(11)可以确定矩阵C,从而确定三次多项式的拟合参数(c 0, c 1, c 2, c 3),如式(12)所示:
需要说明的是,为了进一步提高拟合精度,可以对第二指数y的小数部分r进行转换,示例性地,当r大于预设阈值时(例如,0.5)时,可以使用1-r或r-1来代替r进行数值拟合。具体地,以上述使用三次多项式来确定第三指数运算式b r 的运算结果的式(6)为例,此时式(6)可以转换为式(13):
b r-1≈c 0 + c 1 ∙( r-1)+ c 2 ∙( r-1)2 + c 3 ∙( r-1)3 (13)
通过式(13)便可以确定b r-1的运算结果,从而确定第三指数运算式b r 的运算结果。
根据所采用的数值拟合方式,例如,参考上述式(5)、式(6)以及式(13),可以确定第二运算电路120的对应的电路组件。示例性地,参考上述式(5),第二运算电路120可以包括一个加法器和一个乘法器,从而确定第三指数运算式b r 的运算结果。实际上,当采用多项式拟合来确定第三指数运算式b r 的运算结果,第二运算电路120包括与所述多项式拟合对应的至少一个加法器和至少一个乘法器,这是因为用于拟合第三指数运算式b r 的多项式至少是一次的,即至少存在一次乘法和一次加法的运算。
参考上述式(4),在通过第二运算电路120确定第三指数运算式b r 的运算结果之后,可以通过第三运算电路130来确定第一指数运算式a x 的运算结果。具体地,第三运算电路130可以被配置成:根据第三指数运算式b r 的运算结果、第二指数y的整数部分i以及第二底数b,确定第一指数运算式a x 的运算结果。
示例性地,可以预先确定以第二底数b为底数的不同整数次幂的值,并将这些值以查找表的形式存储在相应的存储元件中,在这种情况下,第三运算电路130可以通过第二指数y的整数部分i从该查找表中查询对应的值(即b i ),进而通过一个乘法器来确定b i 与b r 的乘积作为第一指数运算式a x 的运算结果。
替代地,当第三指数运算式b r 的运算结果由二进制编码值表示时,第三运算电路130可以包括移位器,该移位器被配置成:基于第二指数y的整数部分i,对第三指数运算式b r 的运算结果对应的二进制编码值进行移位操作,从而便捷、准确地确定第一指数运算式a x 的运算结果。示例性地,当第二底数b为2时,b i 与b r 的乘积相当于针对b r 对应的二进制编码值进行移位操作,移位数即为第二指数y的整数部分i。作为更一般性的示例,由于第二底数b为2的正整数次幂,可以通过式(14)来表示第二底数b:
b = 2 p (14)
其中,p为正整数。在针对b r 对应的二进制编码值进行移位操作时,移位数N可以通过式(15)来确定:
N = p∙ i (15)
根据式(15)可以确定第二底数的不同取值下的移位数。示例性地,当第二底数b为4时,针对b r 对应的二进制编码值进行移位操作的移位数等于第二指数y的整数部分i的二倍。
在本公开提供的运算装置100中,通过利用第一运算电路110、第二运算电路120和第三运算电路130,对第一指数运算式的运算过程进行了分解,相较于相关技术中的基于泰勒展开式的拟合算法以及对应的硬件电路,本公开提供的运算装置100能够更加准确地并且快速地确定指数运算的运算结果。另外,从数值拟合的角度看,本公开提供的运算装置100提高了指数运算的拟合精度。
需要说明的是,在本公开提供的运算装置100中,第一运算电路110、第二运算电路120和第三运算电路130之间可以具有任意连接方式以获取相关数据,这些运算电路可以电气地连接、或者通信地连接、或者一部分电气地连接而另一部分通信地连接。示例性地,第二运算电路120可以与第一运算电路110电气地连接(例如,通过导线)或通信地连接(例如,通过相关技术中的各种网络)以获取第二指数y的小数部分r,第三运算电路130可以与第一运算电路110电气地连接或通信地连接以获取第二指数y的整数部分i,并且第三运算电路130可以与第二运算电路120电气地连接或通信地连接以获取第三指数运算式b r 的运算结果。
此外,在本公开中,术语“加法器”、“乘法器”、“除法器”、“移位器”等可以采用本领域已知的各种技术来实现。示例性地,当本公开提供的运算装置100中的各种数据都采用二进制时,可以使用本领域已知的各种加法器作为本公开中的加法器,包括但不限于:诸位进位加法器、静态CMOS加法器、镜像加法器(Mirror Adder)、传输门型加法器等;可以使用本领域已知的各种乘法器作为本公开中的乘法器,包括但不限于:阵列乘法器、进位保留乘法器、树形乘法器、Booth乘法器等;可以使用本领域已知的各种移位器作为本公开中的移位器,包括但不限于:对数移位器、桶形移位器等。
图2示意性示出了根据本公开的一些实施例的第一运算电路210的示例性架构图。第一运算电路210是上文关于图1描述的第一运算电路110的一种实现方式。
如图2所示,第一运算电路210包括第一乘法器,第一乘法器用于获取第一指数x和第一系数m 1的乘积,第一系数m 1根据第一底数a和第二底数b被确定。具体地,第一系数m 1可以为log a b的倒数,如式(16)所示:
通过第一乘法器可以获取第一指数x与第一系数m 1的乘积,从而确定第二指数运算式b y 对应的第二指数y。需要说明的是,第一系数m 1的值可以是预先确定的,即第一运算电路210可以访问存储有l第一系数m 1的值的存储元件(未示出)以获取第一系数m 1的值。这种存储有第一系数m 1的值的存储元件可以在第一运算电路210的外部,也可以与第一运算电路210集成在一起作为第一运算电路210的一部分。替代地,示例性地,在第一运算电路210的外部可以有一个除法器(未示出),该除法器用于获取1与log a b的商(即第一系数m 1的值),并且第一运算电路210与该除法器电气地连接或通信地连接以获取第一系数m 1的值。通过第一运算电路210,可以准确、快速地获取第一系数m 1的值,进而有助于准确、快速地确定第一指数运算式a x 的运算结果。
图3示意性示出了根据本公开的一些实施例的第二运算电路320的示例性架构图。第二运算电路320是上文关于图1描述的第二运算电路120的一种实现方式。其中,第二运算电路320中的电路组件的配置根据上述式(6)所描述的三次多项式来确定。
如图3所示,第二运算电路320包括第二乘法器、第三乘法器、第四乘法器、第一加法器、第二加法器以及第三加法器,并且其中:
第二乘法器被配置成确定第三指数r和第二系数m 2的乘积作为第一输出o 1;第一加法器被配置成确定第一输出o 1和第三系数m 3之和作为第二输出o 2;第三乘法器被配置成确定第二输出o 2和第三指数r的乘积作为第三输出o 3;第二加法器被配置成确定第三输出o 3和第四系数m 4之和作为第四输出o 4;第四乘法器被配置成确定第四输出o 4和第三指数r的乘积作为第五输出o 5;以及第三加法器被配置成确定第五输出o 5和第五系数m 5之和作为第三指数运算式b r 的运算结果。其中,第二系数m 2、第三系数m 3、第四系数m 4以及第五系数m 5根据上述多项式拟合对应的拟合参数(即,上述式(6)所描述的三次多项式的拟合参数)被确定。具体地,上述式(6)中的三次多项式可以被表示为如下形式,如式(17)所示:
c 0 + c 1 ∙ r+ c 2 ∙ r 2 + c 3 ∙ r 3 = c 0 + r∙(c 1 + r∙(c 2 +r∙ c 3)) (17)
通过式(17)可以确定第二系数m 2、第三系数m 3、第四系数m 4以及第五系数m 5与上述式(6)所描述的三次多项式的拟合参数(c 0, c 1, c 2, c 3)之间的关系,分别如式(18)至式(21)所示:
m 2= c 3 (18)
m 3= c 2 (19)
m 4= c 1 (20)
m 5= c 0 (21)
为了更清楚地说明第二运算电路320的运算逻辑,下面结合式(18)至式(21),以及第二系数m 2、第三系数m 3、第四系数m 4和第五系数m 5,通过式(22)给出上述式(6)中的三次多项式的另一种表示方式:
c 0 + c 1 ∙ r+ c 2 ∙ r 2 + c 3 ∙ r 3 = m 5 + r∙(m 4 + r∙(m 3 +r∙ m 2)) (22)
通过第二运算电路320,可以使用较少的乘法器和加法器来实现三次多项式的计算,从而可以更加准确、快速地获取第三指数运算式b r 的运算结果,进而有助于更加准确、快速地确定第一指数运算式a x 的运算结果。
图4示意性示出了根据本公开的另一些实施例的第二运算电路420的示例性架构图。第二运算电路420是上文关于图1描述的第二运算电路120的另一种实现方式。其中,第二运算电路420中的电路组件的配置也可以根据上述式(6)所描述的三次多项式来确定。
如图4所示,第二运算电路320包括第五乘法器、第六乘法器、第七乘法器、第八乘法器、第九乘法器、第十乘法器、第四加法器、第五加法器以及第六加法器,并且其中:
第五乘法器被配置成确定第三指数r和第六系数m 6的乘积作为第六输出o 6;第六乘法器被配置成确定第六输出o 6和第三指数r的乘积作为第七输出o 7;第七乘法器被配置成确定第七输出o 7和第三指数r的乘积作为第八输出o 8;第八乘法器被配置成确定第三指数r和第七系数m 7的乘积作为第九输出o 9;第九乘法器被配置成确定第九输出o 9和第三指数r的乘积作为第十输出o 10;第十乘法器被配置成确定第三指数r和第八系数m 8的乘积作为第十一输出o 11;第四加法器被配置成确定第十输出o 10和第十一输出o 11之和作为第十二输出o 12;第五加法器被配置成确定第十二输出o 12和第八输出o 8之和作为第十三输出o 13;以及第六加法器被配置成确定第十三输出o 13和第九系数m 9之和作为第三指数运算式b r 的运算结果。其中,第六系数m 6、第七系数m 7、第八系数m 8以及第九系数m 9根据上述多项式拟合对应的拟合参数(即,上述式(6)所描述的三次多项式的拟合参数)被确定。具体地,第六系数m 6、第七系数m 7、第八系数m 8以及第九系数m 9与上述式(6)所描述的三次多项式的拟合参数(c 0, c 1,c 2, c 3)之间的关系分别如式(23)至式(26)所示:
m 6= c 3 (23)
m 7= c 2 (24)
m 8= c 1 (25)
m 9= c 0 (26)
通过第二运算电路420,可以使用乘法器和加法器来实现三次多项式的计算,从而可以准确、快速地获取第三指数运算式b r 的运算结果,进而有助于准确、快速地确定第一指数运算式a x 的运算结果。
需要说明的是,本公开旨在描述第二运算电路320和第二运算电路420的示例性架构,而对这些运算电路的电路组件之间的物理连接方式不做限制。例如,在上文关于图3和图4描述的第二运算电路320和第二运算电路420中,各个乘法器、加法器之间可以具有任意连接方式以获取相关数据,它们可以彼此电气地连接、或者通信地连接、或者一部分电气地连接而另一部分通信地连接。
根据本公开的一些实施例,第一底数a可以是自然对数的底数e,并且运算装置100可以被配置成确定神经网络中的激活函数的指数运算部分的运算结果。本公开对神经网络的类型不做限制,例如,神经网络包括但不限于卷积神经网络、全连接神经网络,任何包含以自然对数的底数e为底数的指数运算的神经网络都可以使用本公开中的运算装置100来确定对应指数运算的运算结果。
示例性地,神经网络中的激激活函数可以是以下中的任意一种:Softmax激活函数、Sigmoid激活函数、Tanh激活函数、Swish激活函数、Elu激活函数、Gelu激活函数以及Selu激活函数。这里给出Softmax激活函数和Sigmoid激活函数的表达式,分别如式(27)和式(28)所示:
使用本公开中的运算装置100来确定神经网络中的激活函数的指数运算部分的运算结果,可以加速神经网络的运算过程,并且可以使得神经网络的运算结果更加准确。
图5示意性示出了根据本公开的一些实施例的基于运算电路的指数运算方法500的示例性流程图。
具体地,在步骤510,根据第一指数运算式对应的第一底数和第一指数以及第二指数运算式对应的第二底数,利用第一运算电路确定第二指数运算式对应的第二指数,其中,所述第一底数为大于2的实数,所述第一指数为非零实数,所述第二底数为2的正整数次幂,所述第一指数运算式与所述第二指数运算式的运算结果相等。
在步骤520,采用数值拟合方式,利用第二运算电路确定第三指数运算式的运算结果,其中,所述第三指数运算式对应的第三底数与所述第二底数相同,所述第三指数运算式对应的第三指数为所述第二指数的小数部分。
在步骤530,根据所述第三指数运算式的运算结果、所述第二指数的整数部分以及所述第二底数,利用第三运算电路确定所述第一指数运算式的运算结果。
需要说明的是,关于步骤510、步骤520以及步骤530的实施方式,可以参考上文关于运算装置100的描述,即运算装置100可以用于实现指数运算方法500,当然,这仅仅是示例性地,本领域技术人员应当理解,可以使用不同于运算装置100的其他设备(例如,计算机中的处理器)来实现指数运算方法500。
根据本公开的一些实施例,提供了一种芯片(如上文所述的NPU、CPU、GPGPU等),该芯片包括可编程逻辑电路以及可执行指令中的至少之一,该芯片在电子设备中运行,用于实现本申请前述实施例提供的指数运算方法500。
图6图示了示例系统,其包括代表可以实现本文描述的各种技术的一个或多个系统和/或设备的示例计算设备600。计算设备600可以是例如服务提供商的服务器、与服务器相关联的设备、片上系统、和/或任何其他合适的计算设备或计算系统。上面参照图1描述的运算装置100可以采取计算设备600的形式。
如图6所示的示例计算设备600包括彼此通信耦合的处理系统611、一个或多个计算机可读介质612以及一个或多个I/O接口613。尽管未示出,但是计算设备600还可以包括系统总线或其他数据和命令传送系统,其将各种组件彼此耦合。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。还构思了各种其他示例,诸如控制和数据线。
处理系统611代表使用硬件执行一个或多个操作的功能。因此,处理系统611被图示为包括可被配置为处理器、功能块等的硬件元件614。这可以包括在硬件中实现为专用集成电路或使用一个或多个半导体形成的其他逻辑器件。硬件元件614不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。示例性地,处理系统611可以是嵌入式神经网络处理器(Neural-network Processing Units,NPU),在这种情况下,本公开中的运算装置100可以是处理系统611的一部分。
计算机可读介质612被图示为包括存储器/存储装置615。存储器/存储装置615表示与一个或多个计算机可读介质相关联的存储器/存储容量。存储器/存储装置615可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置615可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。计算机可读介质612可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O接口613代表允许用户使用各种输入设备向计算设备600输入命令和信息并且可选地还允许使用各种输出设备将信息呈现给用户和/或其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡、触觉响应设备等。因此,计算设备600可以以下面进一步描述的各种方式进行配置以支持用户交互。
计算设备600还包括应用616。应用616可以例如是运算装置100的软件实例,并且与计算设备600中的其他元件相组合地实现本文描述的技术。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备600的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其他传输机制的调制数据信号中。信号介质还包括任何信息传递介质。术语“调制数据信号”是指这样的信号,该信号的特征中的一个或多个被设置或改变,从而将信息编码到该信号中。作为示例而非限制,通信介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其他无线介质的无线介质。
如前所述,硬件元件614和计算机可读介质612代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其他实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其他程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件614体现的一个或多个指令和/或逻辑。计算设备600可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件614,可以至少部分地以硬件来实现将模块实现为可由计算设备600作为软件执行的模块。指令和/或功能可以由一个或多个制品(例如,一个或多个计算设备600和/或处理系统611)可执行/可操作以实现本文所述的技术、模块和示例。
在各种实施方式中,计算设备600可以采用各种不同的配置。例如,计算设备600可以被实现为包括个人计算机、台式计算机、多屏幕计算机、膝上型计算机、上网本等的计算机类设备。
本文描述的技术可以由计算设备600的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。功能还可以通过使用分布式系统、诸如通过如下所述的平台622而在“云”620上全部或部分地实现。
云620包括和/或代表用于资源624的平台622。平台622抽象云620的硬件(例如,服务器)和软件资源的底层功能。资源624可以包括在远离计算设备600的服务器上执行计算机处理时可以使用的应用和/或数据。资源624还可以包括通过因特网和/或通过诸如蜂窝或Wi-Fi网络的订户网络提供的服务。
平台622可以抽象资源和功能以将计算设备600与其他计算设备连接。平台622还可以用于抽象资源的分级以提供遇到的对于经由平台622实现的资源624的需求的相应水平的分级。因此,在互连设备实施例中,本文描述的功能的实现可以分布在整个系统1600内。例如,功能可以部分地在计算设备600上以及通过抽象云620的功能的平台622来实现。
本公开提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令在被执行时实现上述的指数运算方法。
本公开提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算设备执行上述各种可选实现方式中提供的指数运算方法。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其他功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
将理解的是,尽管第一、第二、第三等术语在本文中可以用来描述各种设备、元件、部件或部分,但是这些设备、元件、部件或部分不应当由这些术语限制。这些术语仅用来将一个设备、元件、部件或部分与另一个设备、元件、部件或部分相区分。
尽管已经结合一些实施例描述了本公开,但是其不旨在被限于在本文中所阐述的特定形式。相反,本公开的范围仅由所附权利要求来限制。附加地,尽管单独的特征可以被包括在不同的权利要求中,但是这些可以可能地被有利地组合,并且包括在不同权利要求中不暗示特征的组合不是可行的和/或有利的。特征在权利要求中的次序不暗示特征必须以其工作的任何特定次序。通过研究附图、公开内容和所附的权利要求书,本领域技术人员在实践所要求保护的主题时,能够理解和实现对于所公开的实施例的变型。此外,在权利要求中,词“包括”不排除其他元件,并且术语“一”或“一个”不排除多个。权利要求中的附图标记仅作为明确的例子被提供,不应该被解释为以任何方式限制权利要求的范围。
应当理解,为清楚起见,参考不同的功能单元对本公开的实施例进行了描述。然而,将明显的是,在不偏离本公开的情况下,每个功能单元的功能性可以被实施在单个单元中、实施在多个单元中或作为其他功能单元的一部分被实施。例如,被说明成由单个单元执行的功能性可以由多个不同的单元来执行。因此,对特定功能单元的参考仅被视为对用于提供所描述的功能性的适当单元的参考,而不是表明严格的逻辑或物理结构或组织。因此,本公开可以被实施在单个单元中,或者可以在物理上和功能上被分布在不同的单元和电路之间。
Claims (14)
1.一种运算装置,其特征在于,所述运算装置包括:
第一运算电路,其配置成:根据第一指数运算式对应的第一底数和第一指数以及第二指数运算式对应的第二底数,确定第二指数运算式对应的第二指数,其中,所述第一底数为大于2的实数,所述第一指数为非零实数,所述第二底数为2的正整数次幂,所述第一指数运算式与所述第二指数运算式的运算结果相等;
第二运算电路,其配置成:采用数值拟合方式确定第三指数运算式的运算结果,其中,所述第三指数运算式对应的第三底数与所述第二底数相同,所述第三指数运算式对应的第三指数为所述第二指数的小数部分;以及
第三运算电路,其配置成:根据所述第三指数运算式的运算结果、所述第二指数的整数部分以及所述第二底数,确定所述第一指数运算式的运算结果。
2.根据权利要求1所述的运算装置,其特征在于,所述第一运算电路包括第一乘法器,所述第一乘法器用于获取所述第一指数和第一系数的乘积,所述第一系数根据所述第一底数和所述第二底数被确定。
3.根据权利要求1所述的运算装置,其特征在于,所述数值拟合方式包括多项式拟合,所述第二运算电路包括与所述多项式拟合对应的至少一个加法器和至少一个乘法器。
4.根据权利要求3所述的运算装置,其特征在于,所述多项式拟合对应的拟合次数为三,所述第二运算电路包括第二乘法器、第三乘法器、第四乘法器、第一加法器、第二加法器以及第三加法器,并且其中:
所述第二乘法器被配置成确定所述第三指数和第二系数的乘积作为第一输出;
所述第一加法器被配置成确定所述第一输出和第三系数之和作为第二输出;
所述第三乘法器被配置成确定所述第二输出和所述第三指数的乘积作为第三输出;
所述第二加法器被配置成确定所述第三输出和第四系数之和作为第四输出;
所述第四乘法器被配置成确定所述第四输出和所述第三指数的乘积作为第五输出;以及
所述第三加法器被配置成确定所述第五输出和第五系数之和作为所述第三指数运算式的运算结果;
其中,所述第二系数、所述第三系数、所述第四系数以及所述第五系数根据所述多项式拟合对应的拟合参数被确定。
5.根据权利要求3所述的运算装置,其特征在于,所述多项式拟合对应的拟合次数为三,所述第二运算电路包括第五乘法器、第六乘法器、第七乘法器、第八乘法器、第九乘法器、第十乘法器、第四加法器、第五加法器以及第六加法器,并且其中:
所述第五乘法器被配置成确定所述第三指数和第六系数的乘积作为第六输出;
所述第六乘法器被配置成确定所述第六输出和所述第三指数的乘积作为第七输出;
所述第七乘法器被配置成确定所述第七输出和所述第三指数的乘积作为第八输出;
所述第八乘法器被配置成确定所述第三指数和第七系数的乘积作为第九输出;
所述第九乘法器被配置成确定所述第九输出和所述第三指数的乘积作为第十输出;
所述第十乘法器被配置成确定所述第三指数和第八系数的乘积作为第十一输出;
所述第四加法器被配置成确定所述第十输出和所述第十一输出之和作为第十二输出;
所述第五加法器被配置成确定所述第十二输出和所述第八输出之和作为第十三输出;以及
所述第六加法器被配置成确定所述第十三输出和第九系数之和作为所述第三指数运算式的运算结果;
其中,所述第六系数、所述第七系数、所述第八系数以及所述第九系数根据所述多项式拟合对应的拟合参数被确定。
6.根据权利要求1所述的运算装置,其特征在于,所述第三运算电路包括移位器,所述移位器被配置成:
基于所述第二指数的整数部分和所述第二底数,对所述第三指数运算式的运算结果对应的二进制编码值进行移位操作,以确定所述第一指数运算式的运算结果。
7.根据权利要求6所述的运算装置,其特征在于,所述第二指数运算式对应的第二底数为2,并且其中所述移位操作对应的移位数等于所述第二指数的整数部分。
8.根据权利要求6所述的运算装置,其特征在于,所述第二指数运算式对应的第二底数为4,并且其中所述移位操作对应的移位数等于所述第二指数的整数部分的二倍。
9.根据权利要求1所述的运算装置,其特征在于,所述第一底数为自然对数的底数e,并且所述运算装置被配置成确定神经网络中的激活函数的指数运算部分的运算结果。
10.根据权利要求9所述的运算装置,其特征在于,所述激活函数为以下中的任意一种:
Softmax激活函数、Sigmoid激活函数、Tanh激活函数、Swish激活函数、Elu激活函数、Gelu激活函数以及Selu激活函数。
11.一种基于运算电路的指数运算方法,其特征在于,所述指数运算方法包括:
根据第一指数运算式对应的第一底数和第一指数以及第二指数运算式对应的第二底数,利用第一运算电路确定第二指数运算式对应的第二指数,其中,所述第一底数为大于2的实数,所述第一指数为非零实数,所述第二底数为2的正整数次幂,所述第一指数运算式与所述第二指数运算式的运算结果相等;
采用数值拟合方式,利用第二运算电路确定第三指数运算式的运算结果,其中,所述第三指数运算式对应的第三底数与所述第二底数相同,所述第三指数运算式对应的第三指数为所述第二指数的小数部分;以及
根据所述第三指数运算式的运算结果、所述第二指数的整数部分以及所述第二底数,利用第三运算电路确定所述第一指数运算式的运算结果。
12.一种芯片,其特征在于,所述芯片包括可编程逻辑电路以及可执行指令中的至少之一,所述芯片在电子设备中运行,用于实现权利要求11所述的指数运算方法。
13.一种计算设备,其特征在于,所述计算设备包括:
存储器,其被配置成存储计算机可执行指令;
处理器,其被配置成当所述计算机可执行指令被处理器执行时执行根据权利要求11所述的指数运算方法。
14.一种计算机可读存储介质,存储有计算机可执行指令,其特征在于,当所述计算机可执行指令被处理器执行时实现根据权利要求11所述的指数运算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211334042.XA CN115469829B (zh) | 2022-10-28 | 2022-10-28 | 运算装置和基于运算电路的指数运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211334042.XA CN115469829B (zh) | 2022-10-28 | 2022-10-28 | 运算装置和基于运算电路的指数运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115469829A true CN115469829A (zh) | 2022-12-13 |
CN115469829B CN115469829B (zh) | 2023-07-04 |
Family
ID=84336938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211334042.XA Active CN115469829B (zh) | 2022-10-28 | 2022-10-28 | 运算装置和基于运算电路的指数运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115469829B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110796247A (zh) * | 2020-01-02 | 2020-02-14 | 深圳芯英科技有限公司 | 一种数据处理方法、装置、处理器及计算机可读存储介质 |
CN111191779A (zh) * | 2020-01-02 | 2020-05-22 | 深圳芯英科技有限公司 | 一种数据处理方法、装置、处理器及计算机可读存储介质 |
US20200310755A1 (en) * | 2019-03-25 | 2020-10-01 | International Business Machines Corporation | Binary floating-point multiply and scale operation for compute-intensive numerical applications and apparatuses |
CN113721884A (zh) * | 2021-09-01 | 2021-11-30 | 北京百度网讯科技有限公司 | 运算方法、装置、芯片、电子装置及存储介质 |
CN114648101A (zh) * | 2022-05-13 | 2022-06-21 | 杭州研极微电子有限公司 | 基于transformer结构的softmax函数量化实现方法和装置 |
CN114860193A (zh) * | 2022-04-13 | 2022-08-05 | 合肥工业大学 | 一种用于计算Power函数的硬件运算电路及数据处理方法 |
-
2022
- 2022-10-28 CN CN202211334042.XA patent/CN115469829B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200310755A1 (en) * | 2019-03-25 | 2020-10-01 | International Business Machines Corporation | Binary floating-point multiply and scale operation for compute-intensive numerical applications and apparatuses |
CN110796247A (zh) * | 2020-01-02 | 2020-02-14 | 深圳芯英科技有限公司 | 一种数据处理方法、装置、处理器及计算机可读存储介质 |
CN111191779A (zh) * | 2020-01-02 | 2020-05-22 | 深圳芯英科技有限公司 | 一种数据处理方法、装置、处理器及计算机可读存储介质 |
CN113721884A (zh) * | 2021-09-01 | 2021-11-30 | 北京百度网讯科技有限公司 | 运算方法、装置、芯片、电子装置及存储介质 |
CN114860193A (zh) * | 2022-04-13 | 2022-08-05 | 合肥工业大学 | 一种用于计算Power函数的硬件运算电路及数据处理方法 |
CN114648101A (zh) * | 2022-05-13 | 2022-06-21 | 杭州研极微电子有限公司 | 基于transformer结构的softmax函数量化实现方法和装置 |
Non-Patent Citations (2)
Title |
---|
FEDERICO PERINI等: "Fast approximations of exponential and logarithm functions combined with efficient storage/retrieval for combustion kinetics calculations", COMBUSTION AND FLAME * |
高建波;张盛兵;黄小平;姚涛;卢斌;: "基于AltiVec的指数运算的设计与实现", 微电子学与计算机, no. 09 * |
Also Published As
Publication number | Publication date |
---|---|
CN115469829B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180322219A1 (en) | Simplification of large networks and graphs | |
CN112074806A (zh) | 使用减小的位宽向量的块浮点计算 | |
CN108229648B (zh) | 匹配存储器中数据位宽的卷积计算方法和装置、设备、介质 | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
US10877733B2 (en) | Segment divider, segment division operation method, and electronic device | |
CN113721884B (zh) | 运算方法、装置、芯片、电子装置及存储介质 | |
US20190325301A1 (en) | Deep learning accelerator architecture with chunking gemm | |
TW202314570A (zh) | 用於加速指數函數的計算的系統及方法 | |
US11620105B2 (en) | Hybrid floating point representation for deep learning acceleration | |
US10303439B2 (en) | Logarithm and power (exponentiation) computations using modern computer architectures | |
WO2021136259A1 (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
GB2554167A (en) | Approximating functions | |
CN115469829B (zh) | 运算装置和基于运算电路的指数运算方法 | |
US11275713B2 (en) | Bit-serial linear algebra processor | |
US9612800B2 (en) | Implementing a square root operation in a computer system | |
CN118176480A (zh) | 用于加速倒数函数和平方根倒数函数的计算的系统和方法 | |
WO2019127480A1 (zh) | 用于处理数值数据的方法、设备和计算机可读存储介质 | |
Lee et al. | Design of a digit-serial multiplier over GF (2 m) using a karatsuba algorithm | |
US9959091B2 (en) | Evaluation of polynomials with floating-point components | |
CN114186186B (zh) | 矩阵计算方法及相关设备 | |
US10037191B2 (en) | Performing a comparison computation in a computer system | |
JP7506276B2 (ja) | 半導体ハードウェアにおいてニューラルネットワークを処理するための実装および方法 | |
US20210334635A1 (en) | Neural network accelerator configured to perform operation on logarithm domain | |
Bommana et al. | A Run-time Tapered Floating-Point Adder/Subtractor Supporting Vectorization | |
US20220382518A1 (en) | Exponential calculator using parallel processor systems |
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 |