CN111580784B - 一种幂函数计算装置及幂函数计算方法 - Google Patents
一种幂函数计算装置及幂函数计算方法 Download PDFInfo
- Publication number
- CN111580784B CN111580784B CN202010281365.1A CN202010281365A CN111580784B CN 111580784 B CN111580784 B CN 111580784B CN 202010281365 A CN202010281365 A CN 202010281365A CN 111580784 B CN111580784 B CN 111580784B
- Authority
- CN
- China
- Prior art keywords
- power function
- input information
- value
- circuit
- specified
- 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.)
- Active
Links
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/552—Powers or roots, e.g. Pythagorean sums
-
- 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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种幂函数计算装置及幂函数计算方法,其中,装置包括:输入电路,用于接收第一输入信息;存储电路,用于存储指定幂函数查找表;第一判断电路,连接输入电路,用于判断第一输入信息是否处于预设区间内;移位电路,连接第一判断电路,用于在第一输入信息未处于预设区间内时,利用第一移位值对第一输入信息进行移位得到第二信息,第二信息在预设区间内;运算电路,连接移位电路及存储电路,用于使用处于预设区间内的第一输入信息或第二信息在指定幂函数查找表中进行查找得到查表结果,并利用查表结果及幂函数的指数进行第一计算获取第一输入信息的幂函数值。用以在数字电路中实现特殊幂函数的计算,并且输出结果精度高。
Description
技术领域
本发明涉及数字电路技术领域,具体涉及一种幂函数计算装置及幂函数计算方法。
背景技术
随着科技的进步,无论云计算、大数据还是人工智能,都将成为未来市场的主流,推动着人类的进步。这些领域在发展的同时会涉及到大量数据的处理,数据处理性能的优劣直接关系到它们的发展,而能效比和吞吐率作为数据处理性能的关键部分,尤为重要。基于专用集成电路(Application Specific Integrated Circuit,ASIC)和现场可编程门阵列(Field-Programmable Gate Array,FPGA)的异构系统因具有较高的能效比和吞吐率而成为业界研究焦点之一。
在实际业务应用时,各种算子的硬件实现存在一定程度上的困难,特别是特殊幂函数在数字电路中的实现。一般实现幂函数的方案有平方根倒数速算法(Fast InverseSquare Root)。这种方法因其浮点特性及消耗较多乘法器,并且局限于幂函数中的n=2的情形,并不能在数字电路中实现当n不等于2的特殊幂函数的计算。
发明内容
本发明提供一种幂函数计算装置及幂函数计算方法,用以在数字电路中实现特殊幂函数的计算,并且输出结果精度高。
为解决上述技术问题,本发明提供的第一个技术方案为:提供一种幂函数计算装置,包括:输入电路,用于接收第一输入信息;存储电路,用于存储指定幂函数查找表;第一判断电路,连接所述输入电路,用于判断所述第一输入信息是否处于预设区间内;移位电路,连接所述第一判断电路,用于在所述第一输入信息未处于所述预设区间内时,利用第一移位值对所述第一输入信息进行移位得到第二信息,所述第二信息在所述预设区间内;运算电路,连接所述移位电路及所述存储电路,用于使用处于所述预设区间内的所述第一输入信息或所述第二信息在指定幂函数查找表中进行查找得到查表结果,并利用所述查表结果及所述幂函数的指数进行第一计算获取所述第一输入信息的幂函数值。
其中,所述装置还包括:第二判断电路及数值转换电路;其中,所述第二判断电路连接所述输入电路及所述第一判断电路,用于判断所述第一输入信息是否为定点数值;数值转换电路,连接所述第二判断电路及所述第一判断电路,用于在所述第一输入信息不为定点数值时,利用第一定标值将所述第一输入信息转换为定点数值。
其中,所述存储电路用于存储经过第一压缩的第一查找表;或所述存储电路用于存储经过第二次压缩的第二查找表;其中,所述第二次压缩基于所述第一次压缩进行。
其中,所述存储电路用于存储预设区间内的多个组中的每组中的指定位置的采样点的指定函数值,以及其他所述采样点的指定幂函数值与所述指定位置的采样点的指定幂函数值的差值;其中,所述差值去除了与同组中其他差值共同的基数部分。
其中,所述存储电路用于存储每组中指定位置的所述采样点的原始数值,以及至少部分其他所述采样点的修正值,其中,所述修正值为相邻所述采样点的幂函数值得差值与颗粒度得差值,其中,所述颗粒度为所述组中所有采样点的平均差值的取整结果。
其中,所述幂函数的指数为大于等于-1的负数。
其中,所述运算电路包括乘法器及加法器,所述运算电路通过所述乘法器及所述加法器利用所述查表结果及所述幂函数的指数进行第一计算获取所述第一输入信息的幂函数值。
为解决上述技术问题,本发明提供的第二个技术方案为:提供一种幂函数计算方法,包括:接收第一输入信息;判断所述第一输入信息是否处于预设区间内;若是,使用所述第一输入信息在所述指定幂函数查找表中进行查找得到查表结果,若否,利用第一移位值对所述第一输入信息进行移位得到第二信息,所述第二信息在所述预设区间内,再使用所述第二信息在指定幂函数查找表中进行查找得到查表结果;利用所述查表结果及所述幂函数的指数进行第一计算获取所述第一输入信息的幂函数值。
其中,所述第一计算包括移位运算以及加法运算和/或乘法运算。
其中,所述指定幂函数的指数为-0.5。
其中,所述判断所述第一输入信息是否处于预设区间内的步骤之前还包括:判断所述第一输入信息是否为定点数值;若否,利用第一定标值将所述第一输入信息转换为定点数值;若是,则执行判断所述第一输入信息是否处于预设区间内的步骤。
其中,所述利用所述查表结果及所述幂函数的指数进行第一计算获取所述第一输入信息的幂函数值的步骤包括:利用所述查找表结果、所述查找表结果对应的定标值、所述第一定标值、所述第一输入信息的幂函数值对应的定标值、所述第一移位值及所述幂函数的指数计算得出所述第一输入信息的幂函数值。
其中,所述幂函数的指数为大于等于-1的负数。
其中,所述使用所述第二信息在指定幂函数查找表中进行查找,和/或使用所述第一输入信息在指定幂函数查找表中进行查找之前还包括:建立所述指定幂函数查找表。
其中,所述建立所述指定幂函数查找表之后进一步包括:对所述指定幂函数查找表进行第一次压缩以得到第一查找表;对所述第一查找表进行第二次压缩,以得到第二查找表。
其中,所述对所述指定幂函数查找表进行第一次压缩以得到第一查找表包括:所述指定幂函数查找表包括所述预设区间内的多个采样点及其指定幂函数值,所述采样点被划分为多个组,每组中指定位置的采样点的指定幂函数值以原始数值的方式存储,其他所述采样点的指定幂函数值与所述指定位置的采样点的指定幂函数值的差值的方式存储,并且所述差值去除了与同组中其他差值共同的基数部分。
其中,对所述第一查找表进行第二次压缩,以得到第二查找表具体包括:每组中指定位置的所述采样点的指定幂函数值以原始数值的方式存储,至少部分其他所述采样点以修正值的方式进行存储,其中,所述修正值为相邻所述采样点的指定幂函数值的差值与颗粒度的差值,其中,所述颗粒度为所述组中所有采样点的平均差值的取整结果。
本发明的有益效果是:区别于现有技术的情况,本发明通过将不处于预设区间中的第一输入信息移位至预设区间,以得到第二信息,然后利用处于预设区间内的第一输入信息或第二信息在指定幂函数查找表中进行查找得到查找结果,并利用查表结果及幂函数的指数进行第一运算获取第一输入信息的幂函数值。以在数字电路中实现特殊幂函数的计算,并且输出结果精度高。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1是本发明幂函数计算装置的第一实施例的结构示意图;
图2是本发明幂函数计算装置的第二实施例的结构示意图;
图3是本发明幂函数计算方法的第一实施例的流程示意图;
图4是本发明幂函数计算方法的第二实施例的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图和实施例对本发明进行详细的说明。
请参见图1,为本发明幂函数计算装置的第一实施例的结构示意图。包括:输入电路11、存储电路12、第一判断电路13、移位电路14及运算电路15。其中,输入电路11用于接收第一输入信息;存储电路12用于存储指定幂函数查找表;第一判断电路13连接输入电路11,用于判断第一输入信息是否处于预设区间内;移位电路14连接第一判断电路13,用于在第一输入信息未处于预设区间内时,利用第一移位值对第一输入信息进行移位得到第二信息,第二信息在预设区间内;运算电路15连接移位电路14及存储电路12,用于使用处于预设区间内的第一输入信息或第二信息在指定幂函数查找表中进行查找得到查表结果,并利用所述查表结果及所述幂函数的指数进行第一计算获取第一输入信息的幂函数值。
具体的,输入电路11获取到第一输入信息后,通过第一判断电路13判断第一输入信息是否处于预设区间内,若第一输入信息不处于预设区间内,则通过移位电路14利用第一移位值将第一输入信息移位至预设区间内,以得到第二信息。具体的,可以利用如下公式(1)对第一输入信息进行移位:
xc=x×2s (1)
其中,x为第一输入信息,s为第一移位值,xc为处于预设区间内的第二信息。
例如,在一实施例中,若第一输入信息x为12,预设区间为[0.5,1),若要利用上述公式(1)将第一输入信息x=12移位至预设区间[0.5,1)中,可以设置第一移位值为-4,即:xc=12×2-4,计算可得xc=0.75,xc=0.75处于预设区间[0.5,1)内。第一移位值为负数,可知在对第一输入信息进行移位时,将第一输入信息右移以缩小。例如,在另一实施例中,若第一输入信息x为0.1,预设区间为[0.5,1),若要利用上述公式(1)将第一输入信息x=0.1移位至预设区间[0.5,1)中,可以设置第一移位值为3,即:xc=0.1×23,计算可得xc=0.8,xc=0.8处于预设区间[0.5,1)内。第一移位值为正数,可知在对第一输入信息进行移位时,将第一输入信息左移以放大。
将第一输入信息移位至预设区间内后,运算电路15利用位于预设区间内的第一输入信息,或位于预设区间内的第二信息在存储电路12中存储的指定幂函数查找表中进行查找得到查表结果,并利用查表结果及幂函数的指数进行第一计算获取第一输入信息的幂函数值。具体的,由于幂函数在x的负半轴有效下,其以原点对称,因此,只要在x≥0区间内对其构建查找表即可。进一步地,为简化操作,可以通过移位等方式对输入信息进行移位,将其缩小或放大至区间内即可,因此,在构建查找表时只需要在xc∈[0.5,1)区间构建,以此还能节约存储电路12的存储空间。
具体的,存储电路12存储指定幂函数查找表时,可以存储经过第一压缩的第一查找表,即仅存储预设区间内的多个组中的每组中的指定位置的采样点的指定函数值,以及其他采样点的指定幂函数值与指定位置的采样点的指定幂函数值的差值;其中,差值去除了与同组中其他差值共同的基数部分。
例如,在预设区间内均匀采集W个采样点,将W个采样点分为N组,包括G1、G2、G3……GN组,每一组分别包括M个采样点:D1、D2、D3……DM。存储电路12存储每组中第一个采样点D1的指定幂函数值B1,后续采样点D2、D3……DM分别以与第一个采样点D1的指定幂函数值B1的差值进行存储,例如,第二个采样点D2的指定幂函数值为B2,第三个采样点D3的指定幂函数值为B3,第M个采样点DM的指定幂函数值为BM。此时,第二个采样点D2的指定幂函数值B2与第一个采样点D1的指定幂函数值B1的差值为Δ1,第三个采样点D3的指定幂函数值B3与第一个采样点D1的指定幂函数值B1的差值为Δ2,第四个采样点D4的指定幂函数值B4与第一个采样点D1的指定幂函数值B1的差值为Δ3,第M个采样点DM的指定幂函数值BM与第一个采样点D1的指定幂函数值B1的差值为ΔM-1。在一实施例中,存储电路12可以只存储每组中第一个采样点D1的指定幂函数值B1以及其余采样点与第一个采样点的差值,例如Δ1、Δ2、Δ3……ΔM-1。进一步地,为节省存储电路12的存储空间,存储电路12还可以只存储第一个采样点每组中第一个采样点D1的指定幂函数值B1以及其余采样点与第一个采样点的差值,例如Δ1、Δ2、Δ3……ΔM-1,其中,Δ1、Δ2、Δ3……ΔM-1去除了其共同的基数部分,例如,若Δ1、Δ2、Δ3……ΔM-1分别为2、4、6……2(M-1),则存储电路12存储1、2、3……M-1。
存储电路12通过上述方式进行存储,可以有效的减少存储空间。例如,若每组内采样点数M为8,则对每组内的采样点的指定幂函数值都进行存储,则存储指定幂函数查找表共占用4096/8=512个分组,按照上述压缩方案对指定幂函数查找表进行存储时,每组内使用16bit存储B1,用8bit存储Δ1、Δ2、Δ3……ΔM-1去除基数部分剩余的数,则每个分组占用72bit(7×8bit+16bit)存储空间,整个指定幂函数查找表压缩后占用存储空间为36Kbit(512×72bit)。
在另一实施例中,存储电路12还可以用于存储经过第二次压缩的第二查找表,即存储每组中指定位置的采样点的原始数值,以及至少部分其他采样点的修正值,其中,修正值为相邻采样点的幂函数值得差值与颗粒度的差值,其中,颗粒度为组中所有采样点的平均差值的取整结果。
具体的,假设每组中共8个采样点,且8个采样点对应的指定幂函数值为67,78,89,101,112,123,135,146,存储电路12存储每组中最小的指定幂函数值,记为Bn,例如存储电路12存储Bn=67。利用每组中的8个数据的最大值与最小值的差值除以(M-1),即(8-1)后的商取整,称为颗粒度,记为Gr,如上述列举的8个采样点对应的8个指定幂函数值,其颗粒度Gr=(146-67)÷7=11,即颗粒度为11。计算每组指定幂函数值中除最小值外的其余数值与相邻较小值的差值,并计算此差值与颗粒度Gr的差值,以得到修正值Gv,例如,Cv={[(78-67)-11],[(89-78)-11],[(101-89)-11],[(112-101)-11],[(123-112)-11],[(135-123)-11],[(146-135)-11]}={0,0,1,0,0,1,0}。
在进行查找表查找时,可以通过每组中最小的指定幂函数值Bn,颗粒度Gr,修正值Gv查找到查找结果,例如,若要查找第七个采样点的查找结果,由于指定幂函数在预设区间内为单调递减函数,则利用最小的指定幂函数值Bn加上6个颗粒度加上修正值的和,即B=67+6×11+2=135。
利用上述压缩方案,存储电路12用16bit存储每组采样点中最小值Bn,用5bit存储颗粒度Gr,用7bit存储最小值外其余7个数值对应的修正值Cv。这样,整个查找表再压缩后占用的存储空间为18Kbit(512×(16+5+7)bit),以此进一步压缩指定幂函数查找表的占用空间,进一步节约存储电路12的存储空间。在一实施例中,第二次压缩可以基于第一次压缩进行,以进一步减少指定幂函数查找表占用的存储空间。
在一实施例中,通过本发明提供的幂函数计算装置,能够计算指数大于等于-1的负数的幂函数。且本实施例提供的运算电路15包括乘法器及加法器,运算电路15通过乘法器及加法器利用查表结果及幂函数的指数进行第一计算获取第一输入信息的幂函数值。
本实施例体提供的幂函数计算装置,其在计算得到第一输入信息对应的幂函数值过程中,将移位操作与查找表结合,且在最终得到计算结果的过程中,仅使用一个乘法器及一个加法器,其节约的计算资源。
请参见图2,为本发明提供的幂函数计算装置的第二实施例的结构示意图。与图1所示的第一实施例相比,区别在于,本实施例还包括:第二判断电路16及数值转换电路17。其中,第二判断电路16连接输入电路11及第一判断电路13,用于判断第一输入信息是否为定点数值;数值转换电路17连接第二判断电路16及第一判断电路13,用于在第一输入信息不为定点数值时,利用第一定标值将第一输入信息转换为定点数值。
具体的,由于数字电路不能识别浮点数值,因此若第二判断电路16判断到第一输入信息为浮点数值时,通过数值转换电路17利用第一定标值将第一输入信息由浮点数值转换为定点数值。具体的,可以利用如下公式(2)将第一输入信息由浮点数值转换为定点数值:
F=f×2Q (2)
其中,F是定点数值,f是浮点数值,Q是第一定标值。
本实施例提供的幂函数计算装置,其在计算得到第一输入信息对应的幂函数值过程中,能够通过数值转换电路17将为浮点数值的第一输入信息转换为定点数值,以使得其能够适用于数字电路的运算。并且该幂函数计算装置将移位操作与查找表结合,且在最终得到计算结果的过程中,仅使用一个乘法器及一个加法器,其节约的计算资源。
请参见图3,为本发明幂函数计算方法的第一实施例的流程示意图。
包括:
步骤S31:接收第一输入信息。
具体的,可通过输入电路接收第一输入信息,将第一输入信息记为x。
步骤S32:判断第一输入信息是否处于预设区间内。
具体的,可通过第一判断电路判断第一输入信息x是否处于预设区间内。在一具体实施例中,预设区间为[0.5,1)。
步骤S33:若第一输入信息处于预设区间内,使用第一输入信息在指定幂函数查找表中进行查找得到查表结果。
具体的,若第一输入信息x处于预设区间内,例如x∈[0.5,1),则直接利用第一输入信息x在指定幂函数查找表中进行查找,以得到查表结果。具体的,在一实施例中,指定幂函数可以为:其中,n为大于等于1的有理数,在一具体实施例中,指定幂函数的指数可以为-0.5,即n可以为2。
步骤S34:若第一输入信息未处于预设区间内,利用第一移位值对所述第一输入信息进行移位得到第二信息,所述第二信息在所述预设区间内。
具体的,在一实施例中可以利用如下公式(1)通过移位电路对第一输入信息进行移位:
xc=x×2s (1)
其中,x为第一输入信息,s为第一移位值,xc为处于预设区间内的第二信息。
例如,在一实施例中,若第一输入信息x为12,预设区间为[0.5,1),若要利用上述公式(1)将第一输入信息x=12移位至预设区间[0.5,1)中,可以设置第一移位值为-4,即:xc=12×2-4,计算可得xc=0.75,xc=0.75处于预设区间[0.5,1)内。第一移位值为负数,可知在对第一输入信息进行移位时,将第一输入信息右移以缩小。例如,在另一实施例中,若第一输入信息x为0.1,预设区间为[0.5,1),若要利用上述公式(1)将第一输入信息x=0.1移位至预设区间[0.5,1)中,可以设置第一移位值为3,即:xc=0.1×23,计算可得xc=0.8,xc=0.8处于预设区间[0.5,1)内。第一移位值为正数,可知在对第一输入信息进行移位时,将第一输入信息左移以放大。
步骤S35:使用第二信息在指定幂函数查找表中进行查找,得到查表结果。
具体的,利用处于预设区间内的第二信息xc在指定幂函数查找表中进行查找,得到查表结果。指定幂函数可以为:其中,n为大于等于1的有理数,在一具体实施例中,指定幂函数的指数可以为-0.5,即n可以为2。
具体的,在一实施例中,在利用处于预设区间内的第二信息或者处于预设区间内的第一输入信息在指定幂函数查找表中进行查找以得到查表结果之前,还要建立指定幂函数的查找表。在一实施例中,指定幂函数的指数可以为-0.5,即指定幂函数可以为在建立查找表时,以函数/>进行建立。需要说明的是,在建立指定幂函数的查找表时,为了便于数字电路识别,对应的值均为定点数值,若其为浮点数值,则通过例如公式(2)的方式将其转换为定点数值。
在一实施例中,在建立好查找表后,为了减少存储电路的存储空间,可以对指定幂函数的查找表进行第一次压缩,以形成第一查找表。具体的,指定幂函数查找表包括预设区间内的多个采样点及其指定幂函数值,采样点被划分为多个组,每组中指定位置的采样点的指定幂函数值以原始数值的方式存储,其他采样点的指定幂函数值与指定位置的采样点的指定幂函数值的差值的方式存储,并且差值去除了与同组中其他差值共同的基数部分。具体的,例如,在预设区间内均匀采集W个采样点,将W个采样点分为N组,包括G1、G2、G3……GN组,每一组分别包括M个采样点:D1、D2、D3……DM。存储电路12存储每组中第一个采样点D1的指定幂函数值B1,后续采样点D2、D3……DM分别以与第一个采样点D1的指定幂函数值B1的差值进行存储,例如,第二个采样点D2的指定幂函数值为B2,第三个采样点D3的指定幂函数值为B3,第M个采样点DM的指定幂函数值为BM。此时,第二个采样点D2的指定幂函数值B2与第一个采样点D1的指定幂函数值B1的差值为Δ1,第三个采样点D3的指定幂函数值B3与第一个采样点D1的指定幂函数值B1的差值为Δ2,第四个采样点D4的指定幂函数值B4与第一个采样点D1的指定幂函数值B1的差值为Δ3,第M个采样点DM的指定幂函数值BM与第一个采样点D1的指定幂函数值B1的差值为ΔM-1。在一实施例中,存储电路可以只存储每组中第一个采样点D1的指定幂函数值B1以及其余采样点与第一个采样点的差值,例如Δ1、Δ2、Δ3……ΔM-1。进一步地,为节省存储电路的存储空间,存储电路还可以只存储第一个采样点每组中第一个采样点D1的指定幂函数值B1以及其余采样点与第一个采样点的差值,例如Δ1、Δ2、Δ3……ΔM-1,其中,Δ1、Δ2、Δ3……ΔM-1去除了其共同的基数部分,例如,若Δ1、Δ2、Δ3……ΔM-1分别为2、4、6……2(M-1),则存储电路存储1、2、3……M-1。
存储电路通过上述方式进行存储,可以有效的减少存储空间。例如,若每组内采样点数M为8,则对每组内的采样点的指定幂函数值都进行存储,则存储指定幂函数查找表共占用4096/8=512个分组,按照上述压缩方案对指定幂函数查找表进行存储时,每组内使用16bit存储B1,用8bit存储Δ1、Δ2、Δ3……ΔM-1去除基数部分剩余的数,则每个分组占用72bit(7×8bit+16bit)存储空间,整个指定幂函数查找表压缩后占用存储空间为36Kbit(512×72bit)。
在另一实施例中,为了进一步压缩指定幂函数查找表的所占空间,可以对第一查找表进行第二次压缩,以得到第二查找表。具体的,每组中指定位置的采样点的指定幂函数值以原始数值的方式存储,至少部分其他采样点以修正值的方式进行存储,其中,所述修正值为相邻采样点的指定幂函数值的差值与颗粒度的差值,其中,颗粒度为所述组中所有采样点的平均差值的取整结果。例如,具体的,假设每组中共8个采样点,且8个采样点对应的指定幂函数值为67,78,89,101,112,123,135,146,存储电路存储每组中最小的指定幂函数值,记为Bn,例如存储电路存储Bn=67。利用每组中的8个数据的最大值与最小值的差值除以(M-1),即(8-1)后的商取整,称为颗粒度,记为Gr,如上述列举的8个采样点对应的8个指定幂函数值,其颗粒度Gr=(146-67)÷7=11,即颗粒度为11。计算每组指定幂函数值中除最小值外的其余数值与相邻较小值的差值,并计算此差值与颗粒度Gr的差值,以得到修正值Gc,例如,Cv={[(78-67)-11],[(89-78)-11],[(101-89)-11],[(112-101)-11],[(123-112)-11],[(135-123)-11],[(146-135)-11]}={0,0,1,0,0,1,0}。
在进行查找表查找时,可以通过每组中最小的指定幂函数值Bn,颗粒度Gr,修正值Gv查找到查找结果,例如,若要查找第七个采样点的查找结果,由于指定幂函数在预设区间内为单调递减函数,则利用最小的指定幂函数值Bn加上6个颗粒度加上修正值的和,即B=67+6×11+2=135。
利用上述压缩方案,存储电路用16bit存储每组采样点中最小值Bn,用5bit存储颗粒度Gr,用7bit存储最小值外其余7个数值对应的修正值Cv。这样,整个指定幂函数查找表再压缩后占用的存储空间为18Kbit(512×(16+5+7)bit),以此进一步压缩指定幂函数查找表的占用空间,进一步节约存储电路的存储空间。
步骤S36:利用查表结果及幂函数的指数进行第一计算获取第一输入信息的幂函数值。
在得到查表结果之后,运算电路通过查表结果及需要计算的幂函数的指数进行第一计算获取到第一输入信息对应的幂函数值。具体的,第一计算包括移位运算以及加法运算和/或乘法运算。
具体的,可以利用查找表结果、查找表结果对应的定标值、第一定标值Q、第一输入信息x的幂函数值对应的定标值、第一移位值s及幂函数的指数计算得出第一输入信息的幂函数值。
具体的,可利用如下公式(3)利用查找表结果、查找表结果对应的定标值、第一定标值Q、第一输入信息x的幂函数值对应的定标值、第一移位值s及幂函数的指数计算得出第一输入信息的幂函数值:
其中,ytable为所述查找表结果,Qt为所述查找表结果对应的定标值,Qi为所述第一定标值,Qo为所述第一输入信息的幂函数值y对应的定标值,为对/>四舍五入取整的结果,s为第一移位值,n为大于等于1的有理数,/>为幂函数的指数。
其中,当mod(Qi+s,n)=0时,则:
其中,当mod(Qi+s,n)=1时,则:
由上式可知,本申请将幂函数的计算通过查找表及移位操作,并且仅使用了一个硬件乘法器及一个硬件加法器,使其变成了数字电路中容易实现的计算。另外,本身请提供给的幂函数计算方法,其能够解决现有的只限于n=2的幂函数计算情况,且解决了现有的n=2的幂函数在数字电路中无法应用的问题。
在一具体实施例中,所述幂函数的指数为大于等于-1的负数。
本实施例所示的幂函数计算方法,通过将其在计算得到第一输入信息对应的幂函数值过程中,将移位操作与查找表结合,且在最终得到计算结果的过程中,仅使用一个乘法器及一个加法器,其节约的计算资源。
请参见图4,为本发明幂函数计算方法的第二实施例的流程示意图。本实施例中的步骤S41、步骤S44、步骤S45、步骤S46、步骤S47及步骤S48与图3所示的第一实施例中的步骤S31、步骤S32、步骤S33、步骤S34、步骤S35及步骤S36相同,区别在于,本实施例在步骤S41之后还包括:
步骤S42:判断第一输入信息是否为定点数值。
具体的,由于数字电路无法识别浮点数值,因此还需要设置第二判断电路,用以判断到第一输入信息是否为定点数值。
步骤S43:若第一输入信息不是定点数值,则利用第一定标值将所述第一输入信息转换为定点数值。
具体的,若第一输入信息是定点数值,则执行判断所述第一输入信息是否处于预设区间内的步骤,即步骤S44。若第一输入信息不是定点数值,则将其转化为定点数值。具体的,通过数值转换电路利用第一定标值将第一输入信息由浮点数值转换为定点数值。具体的,可以利用如下公式(2)将第一输入信息由浮点数值转换为定点数值:
F=f×2Q (2)
其中,F是定点数值,f是浮点数值,Q是第一定标值。
本实施例提供的幂函数计算方法,其在计算得到第一输入信息对应的幂函数值过程中,能够通过将为浮点数值的第一输入信息转换为定点数值,以使得其能够适用于数字电路的运算。并且该幂函数计算装置将移位操作与查找表结合,且在最终得到计算结果的过程中,仅使用一个乘法器及一个加法器,其节约的计算资源。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
1.一种幂函数计算装置,其特征在于,包括:
输入电路,用于接收第一输入信息;
存储电路,用于存储指定幂函数查找表;所述存储电路用于存储预设区间内的多个组中的每组中的指定位置的采样点的指定函数值,以及其他所述采样点的指定幂函数值与所述指定位置的采样点的指定幂函数值的差值;其中,所述差值去除了与同组中其他差值共同的基数部分;
和/或,所述存储电路用于存储每组中指定位置的所述采样点的指定幂函数值的原始数值,以及至少部分其他所述采样点的修正值,其中,所述修正值为相邻所述采样点的幂函数值的差值与颗粒度的差值,其中,所述颗粒度为所述组中所有采样点的平均差值的取整结果;
第一判断电路,连接所述输入电路,用于判断所述第一输入信息是否处于预设区间内;
移位电路,连接所述第一判断电路,用于在所述第一输入信息未处于所述预设区间内时,利用第一移位值对所述第一输入信息进行移位得到第二信息,所述第二信息在所述预设区间内;
运算电路,连接所述移位电路及所述存储电路,用于使用处于所述预设区间内的所述第一输入信息或所述第二信息在指定幂函数查找表中进行查找得到查表结果,并利用所述查表结果及所述幂函数的指数进行第一计算获取所述第一输入信息的幂函数值。
2.根据权利要求1所述的计算装置,其特征在于,所述装置还包括:第二判断电路及数值转换电路;
其中,所述第二判断电路连接所述输入电路及所述第一判断电路,用于判断所述第一输入信息是否为定点数值;
数值转换电路,连接所述第二判断电路及所述第一判断电路,用于在所述第一输入信息不为定点数值时,利用第一定标值将所述第一输入信息转换为定点数值。
3.根据权利要求1所述的计算装置,其特征在于,所述存储电路用于存储经过第一次压缩的第一查找表;或
所述存储电路用于存储经过第二次压缩的第二查找表;
其中,所述第二次压缩基于所述第一次压缩进行。
4.根据权利要求1所述的计算装置,其特征在于,所述幂函数的指数为大于等于-1的负数。
5.根据权利要求1所述的计算装置,其特征在于,所述运算电路包括乘法器及加法器,所述运算电路通过所述乘法器及所述加法器利用所述查表结果及所述幂函数的指数进行第一计算获取所述第一输入信息的幂函数值。
6.一种幂函数计算方法,其特征在于,所述方法包括:
接收第一输入信息;
判断所述第一输入信息是否处于预设区间内;
若是,使用所述第一输入信息在指定幂函数查找表中进行查找得到查表结果,若否,利用第一移位值对所述第一输入信息进行移位得到第二信息,所述第二信息在所述预设区间内;其中,所述指定幂函数查找表包括预设区间内的多个组中的每组中的指定位置的采样点的指定函数值,以及其他所述采样点的指定幂函数值与所述指定位置的采样点的指定幂函数值的差值;其中,所述差值去除了与同组中其他差值共同的基数部分;和/或,所述指定幂函数查找表包括每组中指定位置的所述采样点的指定幂函数值的原始数值,以及至少部分其他所述采样点的修正值,其中,所述修正值为相邻所述采样点的幂函数值的差值与颗粒度的差值,其中,所述颗粒度为所述组中所有采样点的平均差值的取整结果;
使用所述第二信息在指定幂函数查找表中进行查找得到查表结果;
利用所述查表结果及所述幂函数的指数进行第一计算获取所述第一输入信息的幂函数值。
7.根据权利要求6所述的方法,其特征在于,所述第一计算包括移位运算以及加法运算和/或乘法运算。
8.根据权利要求6所述的方法,其特征在于,所述指定幂函数的指数为-0.5。
9.根据权利要求6所述的方法,其特征在于,所述判断所述第一输入信息是否处于预设区间内的步骤之前还包括:
判断所述第一输入信息是否为定点数值;
若否,利用第一定标值将所述第一输入信息转换为定点数值;
若是,则执行判断所述第一输入信息是否处于预设区间内的步骤。
10.根据权利要求6所述的方法,其特征在于,所述幂函数的指数为大于等于-1的负数。
11.根据权利要求6所述的方法,其特征在于,所述使用所述第二信息在指定幂函数查找表中进行查找,和/或使用所述第一输入信息在指定幂函数查找表中进行查找之前还包括:
建立所述指定幂函数查找表。
12.根据权利要求11所述的方法,其特征在于,所述建立所述指定幂函数查找表之后进一步包括:
对所述指定幂函数查找表进行第一次压缩以得到第一查找表;
对所述第一查找表进行第二次压缩,以得到第二查找表。
13.根据权利要求12所述的方法,其特征在于,
所述对所述指定幂函数查找表进行第一次压缩以得到第一查找表包括:
所述指定幂函数查找表包括所述预设区间内的多个采样点及其指定幂函数值,所述采样点被划分为多个组,每组中指定位置的采样点的指定幂函数值以原始数值的方式存储,其他所述采样点的指定幂函数值与所述指定位置的采样点的指定幂函数值的差值的方式存储,并且所述差值去除了与同组中其他差值共同的基数部分。
14.根据权利要求13所述的方法,其特征在于,
对所述第一查找表进行第二次压缩,以得到第二查找表具体包括:
每组中指定位置的所述采样点的指定幂函数值以原始数值的方式存储,至少部分其他所述采样点以修正值的方式进行存储,其中,所述修正值为相邻所述采样点的指定幂函数值的差值与颗粒度的差值,其中,所述颗粒度为所述组中所有采样点的平均差值的取整结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010281365.1A CN111580784B (zh) | 2020-04-10 | 2020-04-10 | 一种幂函数计算装置及幂函数计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010281365.1A CN111580784B (zh) | 2020-04-10 | 2020-04-10 | 一种幂函数计算装置及幂函数计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580784A CN111580784A (zh) | 2020-08-25 |
CN111580784B true CN111580784B (zh) | 2023-07-25 |
Family
ID=72122770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010281365.1A Active CN111580784B (zh) | 2020-04-10 | 2020-04-10 | 一种幂函数计算装置及幂函数计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580784B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5990894A (en) * | 1997-06-16 | 1999-11-23 | Sun Microsystems, Inc. | Method for implementing the power function DP and computer graphics system employing the same |
CN1540317A (zh) * | 2003-03-27 | 2004-10-27 | ʩ¬Ĭ��������˾ | 用流体分析仪确定流体特性 |
CN101031091A (zh) * | 2006-02-28 | 2007-09-05 | 华为技术有限公司 | 视频通信终端校正视频流伽玛特性的方法及设备 |
CN101589610A (zh) * | 2007-01-25 | 2009-11-25 | 高通Mems科技公司 | 使用对数查找表的任意幂函数 |
CN107305484A (zh) * | 2016-04-19 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种非线性函数运算装置及方法 |
CN108647045A (zh) * | 2018-03-20 | 2018-10-12 | 科大讯飞股份有限公司 | 激活函数的实现方法及装置、存储介质、电子设备 |
CN109814836A (zh) * | 2018-12-28 | 2019-05-28 | 中电科仪器仪表有限公司 | 一种基于区间划分和cordic的三角函数计算方法及装置 |
CN110135086A (zh) * | 2019-05-20 | 2019-08-16 | 合肥工业大学 | 计算精度可变的softmax函数硬件电路及其实现方法 |
CN110383331A (zh) * | 2017-03-16 | 2019-10-25 | 联发科技股份有限公司 | 非局部适应性环路滤波器处理 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7167888B2 (en) * | 2002-12-09 | 2007-01-23 | Sony Corporation | System and method for accurately calculating a mathematical power function in an electronic device |
-
2020
- 2020-04-10 CN CN202010281365.1A patent/CN111580784B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5990894A (en) * | 1997-06-16 | 1999-11-23 | Sun Microsystems, Inc. | Method for implementing the power function DP and computer graphics system employing the same |
CN1540317A (zh) * | 2003-03-27 | 2004-10-27 | ʩ¬Ĭ��������˾ | 用流体分析仪确定流体特性 |
CN101031091A (zh) * | 2006-02-28 | 2007-09-05 | 华为技术有限公司 | 视频通信终端校正视频流伽玛特性的方法及设备 |
CN101589610A (zh) * | 2007-01-25 | 2009-11-25 | 高通Mems科技公司 | 使用对数查找表的任意幂函数 |
CN107305484A (zh) * | 2016-04-19 | 2017-10-31 | 北京中科寒武纪科技有限公司 | 一种非线性函数运算装置及方法 |
CN110383331A (zh) * | 2017-03-16 | 2019-10-25 | 联发科技股份有限公司 | 非局部适应性环路滤波器处理 |
CN108647045A (zh) * | 2018-03-20 | 2018-10-12 | 科大讯飞股份有限公司 | 激活函数的实现方法及装置、存储介质、电子设备 |
CN109814836A (zh) * | 2018-12-28 | 2019-05-28 | 中电科仪器仪表有限公司 | 一种基于区间划分和cordic的三角函数计算方法及装置 |
CN110135086A (zh) * | 2019-05-20 | 2019-08-16 | 合肥工业大学 | 计算精度可变的softmax函数硬件电路及其实现方法 |
Non-Patent Citations (4)
Title |
---|
G. Ramakrishna.Radial basis function identifier and pole-shifting controller for power system stabilizer application.《 IEEE Transactions on Energy Conversion》.2004,19(04),全文. * |
卢小冰.对数函数的FPGA实现.《科技资讯》.2017,(09),全文. * |
林凯文 ; 陈志坚 ; 刘东启 ; .基于泰勒展开的低成本e指数函数电路设计.《计算机应用研究》.2017,(06),全文. * |
陈明凯.一种归一化开方算法的单片机程序实现.《厦门大学学报(自然科学版) 》.2001,40(S1),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111580784A (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109063825B (zh) | 卷积神经网络加速装置 | |
US20180121789A1 (en) | Data processing method and apparatus | |
CN107479856B (zh) | 反正切函数数据结构及建立方法、函数值获取方法和装置 | |
CN111240746B (zh) | 一种浮点数据反量化及量化的方法和设备 | |
CN109325590B (zh) | 用于实现计算精度可变的神经网络处理器的装置 | |
CN111008691B (zh) | 一种权值和激活值都二值化的卷积神经网络加速器架构 | |
JP2001331474A (ja) | 単一命令複数データ指示を備えた逆離散コサイン変換の実行方法、圧縮データの伸張方法、圧縮データ信号の伸張装置、並びに、コンピュータ・プログラム製品 | |
CN111580784B (zh) | 一种幂函数计算装置及幂函数计算方法 | |
CN113377332B (zh) | 一种基于线性分段的softmax硬件实现方法 | |
CN1783060A (zh) | 乔列斯基分解算法装置 | |
CN110069284A (zh) | 一种基于opu指令集的编译方法及编译器 | |
CN112446461A (zh) | 一种神经网络模型训练方法及装置 | |
CN113283591B (zh) | 基于Winograd算法和近似乘法器的高效卷积实现方法及装置 | |
CN110751259A (zh) | 深度神经网络中的网络层运算方法及装置 | |
CN108897524A (zh) | 除法函数处理电路、方法、芯片以及系统 | |
CN115146769A (zh) | 一种基于范围可寻址查找表计算tanh函数的数字电路模块 | |
CN110555519B (zh) | 一种基于符号随机计算的低复杂度卷积神经网络架构 | |
CN113988279A (zh) | 一种支持负值激励的存算阵列输出电流读出方法及系统 | |
CN112766477B (zh) | 神经网络运算电路 | |
CN110059814A (zh) | 一种基于fpga的查找表式卷积运算硬件结构 | |
CN114285711B (zh) | 缩放信息传播方法及其在定点fft的vlsi实现中的应用 | |
CN114138336B (zh) | 一种0-1序列的k-错线性逼近方法 | |
CN113554163B (zh) | 卷积神经网络加速器 | |
WO2023004799A1 (zh) | 电子设备及神经网络量化方法 | |
CN117709408A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |