我不知道我怎么会去使用__cos(x)
分别__sin(x)
与CUDA内核代码。 我抬起头,在CUDA手册中有这样的设备功能但是当我实现它的编译器只是说,我不能把在设备的主机功能。
然而,我发现有两个姐姐功能cosf(x)
和__cosf(x)
其中后者在SFU上运行,是整体比原来快得多cosf(x)
功能。 编译器不抱怨的__cosf(x)
当然功能。
有我缺少一个库? 是我错了这个三角函数?
我不知道我怎么会去使用__cos(x)
分别__sin(x)
与CUDA内核代码。 我抬起头,在CUDA手册中有这样的设备功能但是当我实现它的编译器只是说,我不能把在设备的主机功能。
然而,我发现有两个姐姐功能cosf(x)
和__cosf(x)
其中后者在SFU上运行,是整体比原来快得多cosf(x)
功能。 编译器不抱怨的__cosf(x)
当然功能。
有我缺少一个库? 是我错了这个三角函数?
作为SFU只支持某些单精度操作,不存在双精度__cos()和__sin()的设备功能。 有单精度__cosf()和__sinf()设备上功能,以及在表C-4的CUDA 4.2编程手册的详细描述的其它功能。
我假定你正在寻找更快的替代标准的数学函数罪()和cos的双精度版本()? 如果需要同样的参数的正弦和余弦,正余弦()应该被用于显著的性能提升。 如果正弦或余弦的参数由π相乘,你可能需要使用sinpi(),cospi(),或sincospi()来代替,甚至更高的性能。 例如,实现该箱穆勒算法用于产生正态分布的随机数时sincospi()是非常有用的。 此外,检查出的CUDA 5.0预览最佳性能(请注意,预览提供阿尔法发布的质量)。