在GPU上调用函数时,我可以避免使用__device__限定符吗?

时间:2015-03-22 19:09:19

标签: c++ c cuda

将在GPU上运行的函数需要限定符__device__。我目前正在编写一组通用的数学函数,可以在GPU和CPU上使用。我认为将所有这些函数限定为__device__并不是很好,因为它们也可能被包含在根本没有CUDA的其他程序中。有没有办法省略__device__

2 个答案:

答案 0 :(得分:2)

您可以在构建非CUDA目标时使用-D__device__=""进行编译,也可以使用更通用的宏,在编译CUDA时可以将其定义为__device__

答案 1 :(得分:1)

#ifndef __CUDACC__
#define __device__
#endif

或类似的。当然,你需要类似的警卫来处理在非CUDA设置中有意义的包含和功能。