将在GPU上运行的函数需要限定符__device__
。我目前正在编写一组通用的数学函数,可以在GPU和CPU上使用。我认为将所有这些函数限定为__device__
并不是很好,因为它们也可能被包含在根本没有CUDA的其他程序中。有没有办法省略__device__
?
答案 0 :(得分:2)
您可以在构建非CUDA目标时使用-D__device__=""
进行编译,也可以使用更通用的宏,在编译CUDA时可以将其定义为__device__
。
答案 1 :(得分:1)
#ifndef __CUDACC__
#define __device__
#endif
或类似的。当然,你需要类似的警卫来处理在非CUDA设置中不有意义的包含和功能。