浮点数函数运算查表计算装置的制作方法

文档序号:29927145发布日期:2022-05-07 11:31阅读:115来源:国知局
浮点数函数运算查表计算装置的制作方法

1.本发明是有关于一种浮点数函数运算查表计算装置。


背景技术:

2.以往要达到特殊数学运算需借由泰勒展开式、cordic算法、逼近算法或是量化为int8运算。
3.cordic(coordinate rotation digital computer,坐标旋转数字电脑)算法是一种通过迭代对多种数学函数求值的方法,它可以对三角函数、双曲函数和平面旋转问题进行求解。cordic算法利用迭代逼近的方法,仅仅通过加/减和移位操作,即可求出特殊函数的值,极大的方便了计算机实现。
4.然而,在多核心平行运算系统上不容易制作出多种独特算法,也容易在递回逼近过程中损失精确度。
5.故而,本发明提出一种浮点数函数运算查表计算装置,以期实现各种特殊运算式。


技术实现要素:

6.根据本发明一实例,提出一种浮点数函数运算查表计算装置包括:一位排列单元,接收一浮点数输入数据,对该浮点数输入数据进行位排列或格式转换,以产生多个位区块;一第一查表单元群组,接收该多个位区块,以该多个位区块为索引,进行查表以得到多个查表结果;以及一运算单元,对该第一查表单元群组的该多个查表结果进行运算,以得到一运算结果。
7.以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
8.图1为根据本发明一实施例的浮点数函数运算查表计算装置的功能方块图。
9.图2至图4显示本发明实施例的浮点数函数运算查表计算装置的多种操作示意图。
10.图5a显示三角函数arctan的关系图。
11.图5b与图5c显示本发明实施例的两个查表单元的索引与查表结果的关系图。
具体实施方式
12.本说明书的技术用语参照本技术领域的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为准。本发明的各个实施例分别具有一或多个技术特征。在可能实施的前提下,本技术领域具有通常知识者可选择性地实施任一实施例中部分或全部的技术特征,或者选择性地将这些实施例中部分或全部的技术特征加以组合。
13.下面结合附图对本发明的结构原理和工作原理作具体的描述:
14.请参照图1,其为根据本发明一实施例的计算装置(浮点数函数运算查表计算装
置)的功能方块图。根据本发明一实施例的计算装置100包括:位排列单元110、第一查表单元120、第二查表单元130、第三查表单元140与运算单元150。
15.在本发明实施例中,浮点数输入数据fp例如但不受限于,包括两种格式:tf32(tensorfloat-32,张量浮点32)与bfloat16(brain floating point,16位脑浮点)。其中,格式tf32为19位,包括多个位组,例如:1位的符号(sign)s1,8位的指数(exponent)e1与10位的小数(mantissa)m1。格式bfloat16为16位,包括多个位组,例如:1位的符号s2,8位的指数e2与7位的小数m2。
16.位排列单元110接收浮点数输入数据fp,对浮点数输入数据fp进行位排列或格式转换,以产生第一位区块fp_1、第二位区块fp_2与第三位区块fp_3。第一位区块fp_1、第二位区块fp_2与第三位区块fp_3分别输入至第一查表单元120、第二查表单元130与第三查表单元140。第一查表单元120、第二查表单元130与第三查表单元140可合称为第一查表单元群组。
17.第一查表单元120以第一位区块fp_1为索引,进行查表后,得到第一浮点数fp_1’(亦即查表结果)。
18.第二查表单元130以第二位区块fp_2为索引,进行查表后,得到第二浮点数fp_2’。
19.第三查表单元140以第三位区块fp_3为索引,进行查表后,得到第三浮点数fp_3’。
20.运算单元150对第一浮点数fp_1’、第二浮点数fp_2’与第三浮点数fp_3’进行运算,以得到运算结果out。运算单元150所进行运算例如但不受限于,加法运算,减法运算,乘法运算,除法运算,查表等至少一者或其任意组合。
21.为更加了解本发明实施例的计算装置100的操作原理,请搭配图2至图4。图2至图4显示本发明实施例的计算装置100的多种操作示意图。图2显示本发明实施例的计算装置100进行倒数运算的操作示意图。图3显示本发明实施例的计算装置100进行倒数开方运算的操作示意图。图4显示本发明实施例的计算装置100进行取三角函数arctan的操作示意图。
22.图2显示本发明实施例的计算装置100进行倒数运算的操作示意图。在图2中,所输入的浮点数输入数据fp以格式bfloat16为例做说明,但本发明不受限于此。
23.于图2中,运算是为求得-1.25*2
21
的倒数,-1.25*2
21
以格式bfloat16表示的话则如后所示:-1.25*2
21
=1100101000100000(16位),其中,1位的符号s2为1,8位的指数e2为10010100,而7位的小数m2为0100000。
24.经过位排列单元110的位排列或格式转换后,位排列单元110产生第一位区块fp_1、第二位区块fp_2与第三位区块fp_3,在此假设第一位区块fp_1为空的。
25.底下将说明如何产生第二位区块fp_2与第三位区块fp_3。
26.第二位区块fp_2包括16位,其中,7位为冗余(dummy)位d1(0000000),而另9位为1位的符号s2与8位的指数e2的组合(110010100)。
27.第三位区块fp_3包括16位,其中,9位为冗余位d2(000000000),而另7位为小数m2(0100000)。
28.第二位区块fp_2与第三位区块fp_3分别输入至第二查表单元130与第三查表单元140。
29.第二查表单元130以第二位区块fp_2为索引来进行查表。在此显示第二查表单元
130的一例如下,但本发明并不受限于此:
30.第二查表单元130:
31.索引查表结果0无限12
126
22
125
…ꢀ
404-2-21
……
32.由于第二位区块fp_2为0000000110010100=404,故而,经查表后可得到-2-21
。也就是说,第二查表单元130的查表结果乃是第二位区块fp_2的倒数。
33.相似地,第三查表单元140以第三位区块fp_3为索引来进行查表。在此显示第三查表单元140的一例如下,当知本发明并不受限于此:
34.第三查表单元140:
35.索引查表结果0110.992187520.984375
…ꢀ
320.8
……
36.由于第三位区块fp_2为0000000000100000=32,故而,经查表后可得到0.8。也就是说,第三查表单元140的查表结果就是第三位区块fp_3的倒数。
37.运算单元150对第二查表单元130的查表结果与第三查表单元140的查表结果进行运算(在此以乘法做说明),故而,运算结果out=(-2-21
)*0.8=0.8*(-2-21
)=-1.6*(2-22
)。
38.图3显示本发明实施例的计算装置100进行倒数开方运算的操作示意图。在图3中,所输入的浮点数输入数据fp以格式bfloat16为例做说明,但当知本发明不受限于此。
39.于图3中,运算是为求得1.25*2
21
的倒数开方结果,1.25*2
21
以格式bfloat16表示的话则如后所示:1.25*2
21
=0100101000100000(16位),其中,1位的符号s2为0,8位的指数e2为10010100,而7位的小数m2为0100000。
40.经过位排列单元110的位排列或格式转换后,位排列单元110产生第一位区块fp_1、第二位区块fp_2与第三位区块fp_3,在此假设第一位区块fp_1为空的。
41.底下将说明如何产生第二位区块fp_2与第三位区块fp_3。在产生第二位区块fp_2与第三位区块fp_3时,对指数e2进行位移,细节将于底下说明之。
42.第二位区块fp_2包括16位,其中,8位为冗余位d3(00000000),而另8位为1位的符号s2与7位指数e2”的组合(01001010),其中,7位指数e2”(1001010)乃是8位的指数e2(10010100)的前7位。
43.第三位区块fp_3包括16位,其中,8位为冗余位d4(00000000),而另8位为1位的指数e2’与7位的小数m2的组合(00100000),其中,1位的指数e2’(0)乃是8位的指数e2
(10010100)的最后1位。
44.第二位区块fp_2与第三位区块fp_3分别输入至第二查表单元130与第三查表单元140。
45.第二查表单元130以第二位区块fp_2为索引来进行查表。在此显示第二查表单元130的一例如下,当知本发明并不受限于此:
46.第二查表单元130:
[0047][0048][0049]
由于第二位区块fp_2为0000000010010100=74,故而,经查表后可得到2-10
。第二查表单元130的查表结果乃是第二位区块fp_2的倒数开方。
[0050]
相似地,第三查表单元140以第三位区块fp_3为索引来进行查表。在此显示第三查表单元140的一例如下,当知本发明并不受限于此:
[0051]
第三查表单元140:
[0052]
索引查表结果00.7070312510.70312520.703125
…ꢀ
320.6328125
……
[0053]
由于第三位区块fp_2为0000000000100000=32,故而,经查表后可得到0.6328125。也就是说,第三查表单元140的查表结果乃是第三位区块fp_3的倒数开方。
[0054]
运算单元150对第二查表单元130的查表结果与第三查表单元140的查表结果进行运算(在此以乘法做说明),故而,运算结果out=(2-10
)*0.6328125=1.265625*(2-11
)。
[0055]
图4显示本发明实施例的计算装置100进行取三角函数arctan的操作示意图。在图4中,所输入的浮点数输入数据fp以格式bfloat16为例做说明,但当知本发明不受限于此。
[0056]
于图4中,运算乃是为求得1.25*22的三角函数arctan结果,1.25*22以格式bfloat16表示的话则如后所示:1.25*22=0100000010100000(16位),其中,1位的符号s2为
0,8位的指数e2为10000001,而7位的小数m2为0100000。
[0057]
在求三角函数arctan结果时,先求其倒数(其原因将于底下另外说明之)。至于如何求倒数则可参考上述实施例,于此不多描述。值得一提的是,图4中第二位区块fp_2包括16位,其中,7位为冗余位d5(0000000),第三位区块fp_3包括16位,其中,9位为冗余位d6(000000000)。1.25*22的倒数为1.6*2-3

[0058]
在图4中,运算单元150包括:乘法单元151、比较器152、乘法单元153、量化单元154、第四查表单元155与第五查表单元156。第四查表单元155与第五查表单元156可合称为第二查表单元群组。
[0059]
乘法单元151用以将第二查表单元130的查表结果与第三查表单元140的查表结果相乘,以得到第一乘法结果。
[0060]
比较器152将浮点数输入数据fp与其倒数结果进行比较以得到一比较结果。在一可能实例中,比较结果是浮点数输入数据fp与其倒数结果的较小者。在此例中,浮点数输入数据fp为1.25*22与其倒数结果为1.6*2-3
,故比较器152输出倒数结果(1.6*2-3
)。
[0061]
乘法单元153将比较器152的比较结果乘上一常数,以得到第二乘法结果。在此例如但不受限于,常数为100。以上例而言,第二乘法结果为100*(1.6*2-3
)=20。
[0062]
量化单元154将乘法单元153的第二乘法结果进行量化至整数运算,以得到一量化结果。如果量化单元154的量化结果小于等于1,则由第四查表单元155以量化单元154的量化结果为索引来进行查表。如果量化单元154的量化结果大于1,则由第五查表单元156以量化单元154的量化结果为索引来进行查表。
[0063]
在此例中,由于量化单元154的运算结果大于1,由第五查表单元156进行查表。相似地,第五查表单元156以量化单元154的运算结果为索引来进行查表。在此显示第四查表单元155与第五查表单元156的一例如下,当知本发明并不受限于此:
[0064]
第四查表单元155:
[0065][0066][0067]
第五查表单元156:
[0068]
索引查表结果090

...2078.510045
……
[0069]
第五查表单元156以量化单元154的运算结果(20)为索引来进行查表的结果为78.5,故而,运算结果out=78.5。亦即,求三角函数arctan(1.25*22)的结果为78.5。
[0070]
图5a显示三角函数arctan的关系图。图5b显示第四查表单元155的索引与查表结果的关系图。图5c显示第五查表单元156的索引与查表结果的关系图。
[0071]
如图5a所示,三角函数arctan的值(y值)缓慢饱和。当x小于1时,三角函数arctan的值(y值)呈现线性关系;当x大于1时,三角函数arctan的值(y值)呈现类似倒数关系。
[0072]
故而,在本发明实施例中,在设计第四查表单元155时,第四查表单元155的索引与查表结果可视为呈现线性关系,如图5b所示。在设计第五查表单元156时,第五查表单元156的索引与查表结果可视为呈现非线性关系(或者说,第五查表单元156的索引的倒数(1/x)与查表结果可视为呈现线性关系),如图5c所示。
[0073]
故而,在本发明实施例中,先找出浮点数输入数据fp与其倒数的较小者。之后,以浮点数输入数据fp与其倒数的较小者为基础,进行后续运算,以查表找出三角函数arctan结果。
[0074]
本发明实施例可应用于多种领域,例如但不限于,电脑视觉应用(computer vision application)、人工智能训练(ai training)、人工智能推论(ai inference)。
[0075]
此外,本发明实施例可达成在不需要cpu的情况下进行特殊运算,故而能大幅减少特殊运算所需成本。
[0076]
本发明实施例可适合于多核心平行运算系统。
[0077]
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1