特斯拉双精度

时间:2010-08-11 14:14:12

标签: double cuda opencl

我正在寻找信息,在tesla gpu中如何实现双精度硬件。我已经读过,两个流处理器正在处理单个double值,但我没有找到任何来自nvidia的官方文件。

提前致谢。 PPS 为什么大多数GPU只用单精度计算(因为颜色可以存储为RR.GG.BB.TT,其中每个字符都是8位值)?

PS google it for me没有帮助

3 个答案:

答案 0 :(得分:3)

不支持double不是像你说的那样存储格式(RR.GG.BB.TT),而是使用本机内部函数(以及专用硬件)来处理double(add,mul,madd等)上的操作。

无论如何,大多数GPU仅支持单精度,因为大多数GPU市场都在游戏市场,游戏玩家不需要双精度。此外,大多数游戏玩家都在寻找良好的性价比。在晶体管预算(和TDP)方面实施DP是成本很高的,如果游戏不使用双精度,这是毫无意义的。

这就是为什么你会看到高端ATI GPU支持双倍(HD 59xx和HD 58xx,但不是中端和入门级GPU,如HD 57xx及更低)。

@karlphillip: 是的,对于像GTX 260这样的GPU,IEEE754(种类)是正确的,但目前的ATI和NVIDIA正在支持IEEE 754-2008高端部件。

关于硬件实现,这是IHV通常不会告诉的秘密:)

答案 1 :(得分:2)

特斯拉不是GPU,它是一系列具有各种高端GPU的协处理器。如果您的特斯拉内置Fermi GPU,它应该具有良好的双精度性能。

请参见第9页的Fermi white paper

单精度对于常规GPU计算更为重要,因为它对于此类应用程序已足够。

答案 2 :(得分:1)

根据Wiki

对于双精度(仅在较新的GPU中支持,如GTX 260 [12]),与IEEE 754标准有一些偏差:舍入到最近偶数是唯一支持的倒数,舍入的舍入模式,和平方根。在单精度中,不支持非正规和信令NaN;只支持两种IEEE舍入模式(斩波和舍入到最近的偶数),并且这些模式是在每个指令而不是在控制字中指定的;并且除法/平方根的精度略低于单精度。

你去了,他们实现了IEEE 754的大部分规范,但实际的实现可能是私密的和秘密的。