CN102609236B - 一种应用于gpu中的幂指数运算装置和运算方法 - Google Patents

一种应用于gpu中的幂指数运算装置和运算方法 Download PDF

Info

Publication number
CN102609236B
CN102609236B CN201210019688.9A CN201210019688A CN102609236B CN 102609236 B CN102609236 B CN 102609236B CN 201210019688 A CN201210019688 A CN 201210019688A CN 102609236 B CN102609236 B CN 102609236B
Authority
CN
China
Prior art keywords
mrow
mtd
mtr
mover
msub
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
Application number
CN201210019688.9A
Other languages
English (en)
Other versions
CN102609236A (zh
Inventor
魏继增
李炳超
常轶松
郭炜
孙济洲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phytium Technology Co Ltd
Original Assignee
Tianjin University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tianjin University filed Critical Tianjin University
Priority to CN201210019688.9A priority Critical patent/CN102609236B/zh
Publication of CN102609236A publication Critical patent/CN102609236A/zh
Application granted granted Critical
Publication of CN102609236B publication Critical patent/CN102609236B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)

Abstract

本发明涉及集成电路领域,特别是公开了一种应用于GPU中的幂指数运算硬件装置和运算方法:第一步,计算log2cosθ:第二步,计算xlog2cosθ;第三步,计算2mul_result;第四步,得到2mul_result之后,就可以用IEEE754单精度浮点数表示cosxθ的近似值。与现有技术相比,本发明能够在满足嵌入式系统因为空间大小和功耗而受限制的计算能力的同时,快速而又比较准确的图形处理单元完成Phong模型中的高光计算,为集成电路的设计提供了具有更好的图形处理能力的嵌入式系统设计。

Description

一种应用于GPU中的幂指数运算装置和运算方法
技术领域
本发明涉及集成电路领域,特别是涉及一种应用于嵌入式系统中涉及图形学中Phong光照模型里的高光计算方法。
背景技术
Phong光照计算模型是一种能够产生真实感很强的颜色计算方法,该计算模型与物理事实足够接近,对各种光照条件和材质属性都能获得很好的绘制效果,但是该算法计算量大,运算复杂,特别是,其中的高光计算部分还应用了幂指数运算cosxθ,是Phong光照计算模型中最耗时的部分。随着3D图形应用对图像真实感的要求越来越高,Phong模型也越来越多得应用到光照计算中。而对于嵌入式系统,其处理器能力有限。将Phong光照模型应用到嵌入式系统当中,需要快速准确的计算出cosxθ的结果,并且在集成电路设计时还要满足嵌入式系统面积和功耗的要求。
目前,计算幂指数的方法主要有查找表法和分段直线近似法。查找表(Look UpTable,LUT)将预先计算好的值存进Ram中,然后根据输入x在表中查找出最接近的结果。这种方法采样点越多,结果的精度就越高,但是同时所需的存储空间就越大。而且这种方法只能用于单输入,对cosxθ的查找需要三步。图形硬件中的特殊功能单元(Special FunctionUnit,SFU)是一种基于查找表的方法,能够计算除倒数,倒数的平方根,以2为底的对数,以2为底的指数以及求小数部分五种功能。利用SFU查找出cosxθ的结果的步骤为:
1)根据输入cosθ在LUT中找出对应的系数c0,c1,c2;
2)计算c0+c1gcosθ+c2gcos2θ,得到log2cosθ的近似结果;
3)计算mul_result=xlog2cosθ;
4)根据输入mul_result在LUT中查找出对应的系数c3,c4,c5;
5)计算c3+c4gmul_result_c5gmul_result2,即得到cosxθ的近似值。
用SFU计算cosxθ所花费的资源太多。需要用到两块LUT,七次乘法,四次加法,计算所需的cycle数也比较长。并且精度越高,LUT就会越大。因此,这种方法不适合应用于嵌入式系统中。
分段直线近似法分别将区间[0,1]的log2(1+f)曲线和2f曲线用分段直线去近似。分的段数越多,结果就越精确,但同时硬件的开销也会增大。目前主要有三段和8段两种分段方法。三段(记做3u-3u)将区间[0,1]分为[0,1/4]、[1/4,3/4]、[3/4,1]三个区间;八段(记做8-8)将区间[0,1]按1/8的间隔平均分成8段。以上两种分段直线近似的方法与查找表法相比,硬件的开销会小一些,误差会比查找表法大,把这种方法应用到图形算法中,生成图形像素的RGB颜色值的误差会比较大(最大为3)。但是,可以对分段方法做一些优化,以提高精度,减小误差。
有上述现有技术的分析可知,查找表法所占用的硬件资源比较多,计算也比较耗时。传统的分段直线近似法虽然占用的硬件资源比较少,但是误差比较大。
发明内容
基于上述现有技术,本发明提出一种应用于GPU中的幂指数运算装置和运算方法,基于分段直线近似的方法实现了Phong模型中的高光计算中的幂指数运算。
本发明提出了一种应用于GPU中的幂指数运算方法,该方法包括以下步骤:
第一步,计算log2cosθ,数学表达式为:
Ci表示各个分段区间表达式中的常数项;Ci和ai的定点表示值查表获得;e、f表示IEEE754单精度浮点数的指数部分、尾数部分;
第二步,计算xlog2cosθ,x表示高光系数,θ表示反射光线和观察方向之间的夹角,x是一个32位定点数,高8bit表示整数部分,其余位表示小数部分,计算采用CSA乘法器,得到结果mul_result,如果mul_result大于127,则表示结果溢出,最终cosxθ的结果为0;
第三步,计算2mul_result,包括以下步骤:
将mul_result在小数点处拆分成整数部分和小数部分,分别记做int_part和fra_part,如式(1)所示:
2mul_result=2int_part+fra_part=2int_part-121+fra_part (1)
式(1)中,21+fra_part用分段直线去近似,令frac=1+fra_part,则有
将式(2)的计算结果保留小数点后面的23位,记做exp_fra_result;
其中,计算2frac,数学表达式为:
第四步,得到exp_fra_result之后,用IEEE754单精度浮点数表示cosxθ的近似值。
本发明还提出了一种应用于GPU中的幂指数运算装置,该运算装置包括log2cosθ运算单元和2frac运算单元,所述log2cosθ运算单元包括第一、第二多路选择器,二进制23位乘以16位的CSA乘法器和第一、第二加法器;第一多路选择器包括a0~a7共8路输入,s[7:0]为选通信号,且s[7:0]为八位2进制数,第二多路选择器包括c0~c7共8路输入,s[7:0]为选通信号,且s[7:0]为八位2进制数;所述二进制23位乘以16位的CSA乘法器用于实现log2cosθ运算,数学表达式为:
Ci为各个分段区间表达式中的常数项,Ci和ai的定点表示值查表获得;e、f表示IEEE754单精度浮点数的指数部分、尾数部分;
第一多路选择器的输入为B0~B7表示反对数表达式中的各个常数项,由frac的高三位直接选通;第二多路选择器的输入为frac>>7、0,选通信号是s1[1:0];第三多路选择器的输入为frac>>5、frac>>4、0,选通信号是s1[3:2];第四多路选择器的输入为frac>>3、frac>>2、0,选通信号是s1[6:4];以及一个22位CSA加法器、一个23位CSA加法器、一个31位CSA加法器和一个31位CPA加法器,所述一个22位CSA加法器、一个23位CSA加法器、一个31位CSA加法器和一个31位CPA加法器实现的运算,其数学表达式为:
其中,0≤frac<1,上述数学式的计算结果是一个不小于1的定点数,只保留小数点后面的23bit。
与现有技术相比,本发明能够在满足嵌入式系统因为空间大小和功耗而受限制的计算能力的同时,快速而又比较准确的图形处理单元完成Phong模型中的高光计算,为集成电路的设计提供了具有更好的图形处理能力的嵌入式系统设计。
附图说明
图1本发明的cosxθ计算流程图;
图2为IEEE754单精度浮点数格式图;
图3为指数e,尾数f的定点表示方法示意图;
图4为cosxθ的近似结果表示图;
图5为三种分段方法门数对比图;
图6为本发明的幂指数运算方法流程图;
图7为cosxθ在各种分段情况下的误差;
图8为基准图形;
图9为不同RGB数表示图;
图10为不同像素点数表示图;
图11为对数误差曲线图;
图12为log2cosθ运算单元框图;
图13为反对数误差曲线图;
图14为2frac运算单元框图。
具体实施方式
为了满足嵌入式系统对面积和功耗的要求,同时能让应用于嵌入式系统的图形处理单元快速而又比较准确的完成Phong模型中的高光计算,在本发明中,使图形处理单元生成的图形的RGB的颜色误差控制在[-1,1]之间。
而本发明(记做8u-8)所采用的分段方法资源的开销小于查找表法,速度也比查找表法快,精度比传统的分段方法要高,误差小。
下面结合附图和具体实施例对本发明的技术方案作进一步说明。本发明是基于分段直线近似的。
Phong模型的高光计算公式如式(1):
Is=ksLscosxθ (1)
式(1)中,ks表示在入射的镜面反射光中有多少被反射;Ls表示入射光颜色;x表示高光系数,x一般大于0;θ是反射光线和观察方向之间的夹角。由式(1)可得到式(2):
本发明中,输入是cosθ和x。cosθ用IEEE754单精度浮点数表示,x用32bit的无符号定点数表示,其中,高8bit表示整数部分,其余表示小数部分。
由式(2)可知,如图1所示,对cosxθ的计算基本上可以分为三步:
第一步,先计算log2cosθ。
第二步,计算xlog2cosθ,结果记为mul_result。
第三步,计算2mul_result
如图2所示,IEEE754单精度浮点数中,最高位表示符号位,次高8bit表示指数部分,低23bit表示尾数部分。
进而,cosθ可以表示成式(3):
cosθ=(-1)s(1+f)2e-127 (3)
如图3所示,把图2中的指数部分e和尾数部分f分别用小数点位于第23bit和24bit之间的31位定点数表示。
1、log2cosθ的计算过程
暂不考虑cosθ的符号位,根据式(3),可以得到log2cosθ的计算表达式,如式(4):
log2cosθ=(127-e)-log2(1+f) (4)
在本发明中,log2(1+f)的计算采用8段不等间距直线近似,如式(5):
这样,就可以得到log2(1+f)的近似结果,进而可以得到log2cosθ的近似结果,并且结果是一个小数点位于第23bit和24bit之间的定点数。
2、xlog2cosθ的计算过程
x是一个32位定点数,高8bit表示整数部分,其余位表示小数部分。为了加快计算速度,xlog2cosθ的计算采用的是CSA乘法器,得到结果mul_result。如果mul_result大于127,则表示结果溢出,最终cosxθ的结果为0。
3、2mul_result的计算过程
将mul_result在小数点处拆分成整数部分和小数部分,分别记做int_part和fra_part,如式(6)所示:
2mul_result=2int_part+fra_part=2int_part-121+fra_part (6)
式(6)中,21+fra_part用分段直线去近似,令frac=1+fra_part,则有
由于0≤frac<1,所以式(7)的结果是一个不小于1的定点数,只需保留小数点后面的23bit即可,记做exp_fra_result。
4、最终结果表示
得到exp_fra_result之后,就可以用IEEE754单精度浮点数表示cosxθ的近似值,如图4所示。
本发明的具体实施例:
对数部分分段的间距及各个段的参数如表1所示:
表1 log2(1+f)近似直线参数对应表
f a b f a b
0~8/32 1.2856 0.0062 26/32~28/32 0.7825 0.2223
8/32~16/32 1.0510 0.0633 28/32~30/32 0.7569 0.2448
16/32~22/32 0.9058 0.1337 30/32~31/32 0.7387 0.2617
22/32~26/32 0.8246 0.1886 31/32~32/32 0.7270 0.2730
对数曲线的误差公式可以表示为式(8):
1og_error=log2(1+f)-aif-bi,i=0,1,2,…7,(0≤f<1) (8)
误差曲线如图11所示。
图示只是理论上的误差,在实际用硬件实现时,还要有舍入误差。
a用一个16bit的定点数表示,最高位表示整数部分,将所有的a都乘以2^15,就可以得到定点表示的a。然后再让a和f相乘,这里需要用一个23*16bit的CSA乘法器。b用23bit定点数表示,并且23bit均表示小数。
式(9)中,Ci为各个分段区间表达式中的常数项。Ci和ai的定点表示值如表2所示:
表2 Ci和ai的定点表示值
i C a i C a
0 1065300803 42127 4 1063488264 25641
1 1064822011 34439 5 1063299983 24802
2 1064231279 29681 6 1063157710 24206
3 1063771188 27020 7 1063063182 23822
对于ai和bi的选择,需要用的f的高5位,对应关系如表2所示。
表2 f,a,b关系对照表
f[22:18] a b f[22:18] a b f[22:18] a b f[22:18] a b
00000 a0 b0 01000 a1 b1 10000 a2 b2 11000 a3 b3
00001 a0 b0 01001 a1 b1 10001 a2 b2 11001 a3 b3
00010 a0 b0 01010 a1 b1 10010 a2 b2 11010 a4 b4
00011 a0 b0 01011 a1 b1 10011 a2 b2 11011 a4 b4
00100 a0 b0 01100 a1 b1 10100 a2 b2 11100 a5 b5
00101 a0 b0 01101 a1 b1 10101 a2 b2 11101 a5 b5
00110 a0 b0 01110 a1 b1 10110 a3 b3 11110 a6 b6
00111 a0 b0 01111 a1 b1 10111 a3 b3 11111 a7 b7
从表可以得出,ai和bi与f[22:18]的关系如下,其中ABCDE分别表示f[22],f[21],f[20],f[19],f[18]。由表2可以得到:
同理可得:
s7=ABCDE
这样,用s[7:0]=[s0,s1,s2,s3,s4,s5,s6,s7]组成多路选择器的选择信号。用Verilog描述s[7:0]对Ci和ai的选择:
如图12所示的log2cosθ运算单元框图,是对下面公式的硬件实现:
该运算单元包括第一、第二多路选择器,乘法器(本发明中选用23位乘以16位(均是二进制)的CSA乘法器)和第一、第二加法器。
因为不同的cosθ值对应的是不同的i,即8段直线中的某一段,所以给一个cosθ,就有与其对应的ai,Ci,e和f。计算log2cosθ,首先需要确定cosθ对应的ai和Ci(e和f直接根据cosθ就能得到),这样才能进行式(10)中的计算。第一多路器包括a0~a7共8路输入,s[7:0]为选通信号。s[7:0]是八位2进制数,具体选通方法如下:
若s[7:0]=10000000输出=a0
若s[7:0]=01000000输出=a1
若s[7:0]=00100000输出=a2
若s[7:0]=00010000输出=a3
若s[7:0]=00001000输出=a4
若s[7:0]=00000100输出=a5
若s[7:0]=00000010输出=a6
若s[7:0]=00000001输出=a7
其余情况,输出为0。
同理,第二多路选择器也是这个道理。
所谓的CPA,就是CarryPropagateAdder,进位传播加法器,实际上就是传统的加法器。
乘法的本质是加法,比如3*4,就是4个3相加,3+3+3+3。换算成二进制亦是如此,如下:
13*6=78
同理,如果是一个23位二进制数乘以一个16位二进制数,那么就会有16个二进制数相加。如果采用传统的加法,运算的速度肯定会很慢;如果采用CSA,最大限度的开发其中的并行性,则速度就会相对快一些。这也是本发明之所以选用CSA来实现硬件的原因。
综上,图12就是log2cosθ=(Ci+(-e))+(-(ai×f)),这里省略了减法转加法的那一步。
反对数部分采用8段等间距直线近似。对应的参数如表3所示:
表3 2frac近似直线参数表
frac k l frac k l
0~1/8 92/128 1024/1024 4/8~5/8 131/128 924/1024
1/8~2/8 101/128 1015/1024 5/8~6/8 143/128 864/1024
2/8~3/8 111/128 995/1024 6/8~7/8 155/128 792/1024
3/8~4/8 121/128 964/1024 7/8~8/8 169/128 695/1024
反对数部分的误差可表示为式(11):
exp_error=2fra-kfrac-li,i=0,1,2,…7(0≤frac<1) (11)
误差曲线如图13所示。
图14是对下式的实现,
这时,采用移位加法代替乘法。l用24bit定点数表示,最高位表示整数,其余部分表示小数。
同样,图14中通过多路选择器来表示,s1[6:0]是选通信号,s1[6:0]是由frac的高三位译码得到的。第一多路选择器的输入为B0~B7表示上式中的各个常数项,由frac的高三位直接选通;第二多路选择器的输入为frac>>7、0,选通信号是s1[1:0];第三多路选择器的输入为frac>>5、frac>>4、0,选通信号是s1[3:2];第四多路选择器的输入为frac>>3、frac>>2、0,选通信号是s1[6:4];还包括一个22位CSA加法器、一个23位CSA加法器、一个31位CSA加法器和一个31位CPA加法器。
例如,frac=3/16,frac的高三位为001,选通B1=8314881,frac∈[1/8,1/4),由表4可得,s1[6:0]=0111111,即s1[6:4]=011,选通s1[3:2]=11,选通frac>>5;s1[1:0]=11,选通frac>>7。
其中,B0~B7表示各个段表达式中的常数项,s1[6:0]是由frac的高3位进行译码得到的,译码器如表4所示:
表4译码对照表
frac[22:20] 000 001 010 011 100 101 110 111
s[6:0] 0111000 0111111 1010010 1110011 0001110 1100010 1001010 1000111

Claims (2)

1.一种应用于GPU中的幂指数运算方法,其特征在于,该方法包括以下步骤:
第一步,计算log2 cosθ,数学表达式为:
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&amp;theta;</mi> <mo>=</mo> <mn>127</mn> <mo>-</mo> <mi>e</mi> <mo>-</mo> <msub> <mi>log</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>f</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mn>0</mn> <mo>&amp;le;</mo> <mi>f</mi> <mo>&lt;</mo> <mn>1</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>&amp;cong;</mo> <mn>127</mn> <mo>-</mo> <mi>e</mi> <mo>-</mo> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>f</mi> <mo>-</mo> <msub> <mi>b</mi> <mi>i</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...7</mn> </mrow> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>e</mi> <mo>-</mo> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>f</mi> </mrow> </mtd> <mtd> <mrow></mrow> </mtd> </mtr> </mtable> </mfenced>
Ci表示各个分段区间表达式中的常数项;Ci和ai的定点表示值查表获得;e、f表示IEEE754单精度浮点数的指数部分、尾数部分;
第二步,计算x log2 cosθ,x表示高光系数,θ表示反射光线和观察方向之间的夹角,x是一个32位定点数,高8bit表示整数部分,其余位表示小数部分,计算采用CSA乘法器,得到结果mul_result,如果mul_result大于127,则表示结果溢出,最终cosxθ的结果为0;
第三步,计算2mul_result,包括以下步骤:
将mul_result在小数点处拆分成整数部分和小数部分,分别记做int_part和fra_part,如式(1)所示:
2mul_result=2int_part+fra_part=2int_part-121+fra_part (1)
式(1)中,21+fra_part用分段直线去近似,令frac=1+fra_part,则有
<mrow> <mtable> <mtr> <mtd> <mrow> <msup> <mn>2</mn> <mrow> <mn>1</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mo>_</mo> <mi>p</mi> <mi>a</mi> <mi>r</mi> <mi>t</mi> </mrow> </msup> <mo>=</mo> <msup> <mn>2</mn> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> </msup> <mo>&amp;cong;</mo> <msub> <mi>k</mi> <mi>i</mi> </msub> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mo>...</mo> <mn>7</mn> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mn>0</mn> <mo>&amp;le;</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&lt;</mo> <mn>1</mn> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
将式(2)的计算结果保留小数点后面的23位,记做exp_fra_result;
其中,计算2frac,数学表达式为:
<mrow> <mtable> <mtr> <mtd> <mtable> <mtr> <mtd> <mrow> <msup> <mn>2</mn> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> </msup> <mo>&amp;cong;</mo> <msub> <mi>k</mi> <mi>i</mi> </msub> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <msub> <mi>l</mi> <mi>i</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...7</mn> <mo>,</mo> <mn>0</mn> <mo>&amp;le;</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&lt;</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mn>8388610</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>8314881</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>1</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>1</mn> <mo>/</mo> <mn>4</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>3</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>8151042</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>1</mn> <mo>/</mo> <mn>4</mn> <mo>,</mo> <mn>3</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>4</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>7897089</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>3</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>1</mn> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>7569409</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>1</mn> <mo>/</mo> <mn>2</mn> <mo>,</mo> <mn>5</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>3</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>7077889</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>5</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>3</mn> <mo>/</mo> <mn>4</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>6488066</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>3</mn> <mo>/</mo> <mn>4</mn> <mo>,</mo> <mn>7</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>4</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>5693440</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>7</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> <mo>;</mo> </mrow>
第四步,得到exp_fra_result之后,用IEEE754单精度浮点数表示cosxθ的近似值。
2.一种应用于GPU中的幂指数运算装置,其特征在于,该运算装置包括log2 cosθ运算单元和2frac运算单元,所述log2 cosθ运算单元包括第一、第二多路选择器,二进制23位乘以16位的CSA乘法器和第一、第二加法器;第一多路选择器包括a0~a7共8路输入,s[7:0]为选通信号,且s[7:0]为八位2进制数,第二多路选择器包括c0~c7共8路输入,s[7:0]为选通信号,且s[7:0]为八位2进制数;所述二进制23位乘以16位的CSA乘法器用于实现log2 cosθ运算,数学表达式为:
<mfenced open = "" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>log</mi> <mn>2</mn> </msub> <mi>c</mi> <mi>o</mi> <mi>s</mi> <mi>&amp;theta;</mi> <mo>=</mo> <mn>127</mn> <mo>-</mo> <mi>e</mi> <mo>-</mo> <msub> <mi>log</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>f</mi> <mo>)</mo> </mrow> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mn>0</mn> <mo>&amp;le;</mo> <mi>f</mi> <mo>&lt;</mo> <mn>1</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>&amp;cong;</mo> <mn>127</mn> <mo>-</mo> <mi>e</mi> <mo>-</mo> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>f</mi> <mo>-</mo> <msub> <mi>b</mi> <mi>i</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...7</mn> </mrow> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <msub> <mi>C</mi> <mi>i</mi> </msub> <mo>-</mo> <mi>e</mi> <mo>-</mo> <msub> <mi>a</mi> <mi>i</mi> </msub> <mi>f</mi> </mrow> </mtd> <mtd> <mrow></mrow> </mtd> </mtr> </mtable> </mfenced> 1
Ci为各个分段区间表达式中的常数项,Ci和ai的定点表示值查表获得;e、f表示IEEE754单精度浮点数的指数部分、尾数部分;
所述的2frac运算单元包括:第一多路选择器的输入为B0~B7表示反对数表达式中的各个常数项,由frac的高三位直接选通;第二多路选择器的输入为frac>>7、0,选通信号是s1[1:0];第三多路选择器的输入为frac>>5、frac>>4、0,选通信号是s1[3:2];第四多路选择器的输入为frac>>3、frac>>2、0,选通信号是s1[6:4];以及一个22位CSA加法器、一个23位CSA加法器、一个31位CSA加法器和一个31位CPA加法器,所述一个22位CSA加法器、一个23位CSA加法器、一个31位CSA加法器和一个31位CPA加法器实现的运算,其数学表达式为:
<mrow> <mtable> <mtr> <mtd> <mtable> <mtr> <mtd> <mrow> <msup> <mn>2</mn> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> </msup> <mo>&amp;cong;</mo> <msub> <mi>k</mi> <mi>i</mi> </msub> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <msub> <mi>l</mi> <mi>i</mi> </msub> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>...7</mn> <mo>,</mo> <mn>0</mn> <mo>&amp;le;</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&lt;</mo> <mn>1</mn> </mrow> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mtd> </mtr> <mtr> <mtd> <mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mn>8388610</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>8314881</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>1</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>1</mn> <mo>/</mo> <mn>4</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>3</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>8151042</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>1</mn> <mo>/</mo> <mn>4</mn> <mo>,</mo> <mn>3</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>4</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>7897089</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>3</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>1</mn> <mo>/</mo> <mn>2</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>7569409</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>1</mn> <mo>/</mo> <mn>2</mn> <mo>,</mo> <mn>5</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>3</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>7077889</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>5</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>3</mn> <mo>/</mo> <mn>4</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>5</mn> <mo>+</mo> <mover> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> </mrow> <mo>&amp;OverBar;</mo> </mover> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>6488066</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>3</mn> <mo>/</mo> <mn>4</mn> <mo>,</mo> <mn>7</mn> <mo>/</mo> <mn>8</mn> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>2</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>4</mn> <mo>+</mo> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&gt;</mo> <mo>&gt;</mo> <mn>7</mn> <mo>+</mo> <mn>5693440</mn> </mrow> </mtd> <mtd> <mrow> <mi>f</mi> <mi>r</mi> <mi>a</mi> <mi>c</mi> <mo>&amp;Element;</mo> <mo>&amp;lsqb;</mo> <mn>7</mn> <mo>/</mo> <mn>8</mn> <mo>,</mo> <mn>1</mn> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> <mo>;</mo> </mrow>
其中,0≤frac<1,上述数学式的计算结果是一个不小于1的定点数,只保留小数点后面的23bit。
CN201210019688.9A 2012-01-21 2012-01-21 一种应用于gpu中的幂指数运算装置和运算方法 Active CN102609236B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210019688.9A CN102609236B (zh) 2012-01-21 2012-01-21 一种应用于gpu中的幂指数运算装置和运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210019688.9A CN102609236B (zh) 2012-01-21 2012-01-21 一种应用于gpu中的幂指数运算装置和运算方法

Publications (2)

Publication Number Publication Date
CN102609236A CN102609236A (zh) 2012-07-25
CN102609236B true CN102609236B (zh) 2017-09-29

Family

ID=46526639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210019688.9A Active CN102609236B (zh) 2012-01-21 2012-01-21 一种应用于gpu中的幂指数运算装置和运算方法

Country Status (1)

Country Link
CN (1) CN102609236B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461450A (zh) * 2014-12-29 2015-03-25 东南大学 应用于嵌入式监测设备的iapws-if97物性幂次计算方法
CN113296732B (zh) * 2020-06-16 2024-03-01 阿里巴巴集团控股有限公司 数据处理方法和装置,处理器及数据搜索方法和装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
一个面向移动设备的可编程顶点处理器的设计;杨毅等;《中国科学技术大学学报》;20100215;第40卷(第2期);第140-145页 *
一种改进的基于GPU编程的光线投射算法;康健超等;《计算机工程与应用》;20110223;第48卷(第1期);第199-201页 *
使用多重纹理实时绘制Phong高光表面;朱国仲等;《计算机工程与科学》;20110715;第33卷(第7期);第85-88页 *
输出查找表算法在DSA中的应用;何洪林等;《中国医疗设备》;20110225;第26卷(第2期);第31-34、38页 *
高性能浮点处理单元设计;王伟;《中国优秀博硕士学位论文全文数据库 (硕士) 信息科技辑》;20060615(第6期);全文 *

Also Published As

Publication number Publication date
CN102609236A (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
Lian et al. High-performance FPGA-based CNN accelerator with block-floating-point arithmetic
US9829956B2 (en) Approach to power reduction in floating-point operations
US8615542B2 (en) Multi-function floating point arithmetic pipeline
Liu et al. Design and analysis of inexact floating-point adders
Nam et al. Power and area-efficient unified computation of vector and elementary functions for handheld 3D graphics systems
CN103180820A (zh) 用于执行浮点除法的方法和装置
EP3447634A1 (en) Non-linear function computing device and method
KR20130079511A (ko) Scale, round, getexp, round, getmant, reduce, range 및 class 명령어들을 실행할 수 있는 곱셈 덧셈 기능 유닛
CN108196822A (zh) 一种双精度浮点开方运算的方法及系统
Jeevan et al. A high speed binary floating point multiplier using Dadda algorithm
US20080263120A1 (en) Method and system for optimizing floating point conversion between different bases
US10761806B2 (en) Transcendental calculation unit apparatus and method
CN114461176B (zh) 一种算术逻辑单元、浮点数处理方法、gpu芯片、电子设备
US9852540B2 (en) Graphics lighting engine including log and anti-log units
CN105574808A (zh) 一种流水线纹理贴图单元体系结构
EP2940576B1 (en) Approximating functions
US20040267853A1 (en) Method and apparatus for implementing power of two floating point estimation
CN110187866B (zh) 一种基于双曲cordic的对数乘法计算系统及方法
CN102609236B (zh) 一种应用于gpu中的幂指数运算装置和运算方法
US20090171994A1 (en) Device, system, and method for improving processing efficiency by collectively applying operations
WO2017185203A1 (zh) 一种用于执行多个浮点数相加的装置及方法
Pool et al. Energy-precision tradeoffs in mobile graphics processing units
CN116795324A (zh) 混合精度浮点乘法装置和混合精度浮点数处理方法
CN116700664B (zh) 一种确定浮点数平方根的方法及装置
Kuang et al. A multi-functional multi-precision 4D dot product unit with SIMD architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200923

Address after: No.5 building, Xin'an venture Plaza, marine high tech Development Zone, Binhai New Area, Tianjin

Patentee after: TIANJIN FEITENG INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 300072 Tianjin City, Nankai District Wei Jin Road No. 92

Patentee before: Tianjin University

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 300000 Building 5, Xin'an pioneer Plaza, Binhai New Area marine high tech Development Zone, Tianjin

Patentee after: Feiteng Information Technology Co.,Ltd.

Address before: 300000 Building 5, Xin'an pioneer Plaza, Binhai New Area marine high tech Development Zone, Tianjin

Patentee before: TIANJIN FEITENG INFORMATION TECHNOLOGY Co.,Ltd.