【发布时间】:2012-06-19 11:47:35
【问题描述】:
我正在使用 CUDA 编写一个大规模并行 GPU 应用程序。我一直在手动优化它。我通过__fdividef_(x, y) 获得了 20% 的性能提升,并且根据 Cuda C 编程指南(第 C.2.1 节),使用类似的函数进行乘法和加法也是有益的。
函数声明如下:__fmul_[rn,rz,ru,rd](x,y)。
__fdividef(x,y) 没有用括号中的参数说明。我想知道,这些括号是什么?
如果我运行简单的代码:
int t = __fmul_(5,4);
我收到关于 __fmul_ 未定义的编译器错误。我包含了 CUDA 运行时,所以我不认为这是一个设置问题;相反,它与那些方括号有关。如何正确使用此功能?谢谢。
编辑:我应该澄清一下,编译器是 CUDA 编译器 NVCC。
【问题讨论】:
标签: c compiler-construction cuda intrinsics