我一直在扫描网站上有关大型CUDA项目的问题,我发现了一些很好的回复,无论如何我还有一些疑问。
我的程序,现在(它仍然是完成的一半),输出一些数组,然后为Thrust库函数输入。
所以我的主要疑问是:
1 - 鉴于我正在使用CUDA C,我将推力函数声明为extern“C”。我不确定在头文件中声明这些函数的正确方法,经过一些谷歌搜索后我找到了以下代码,我想确定是对的:
extern "C" {
void compact(float*intxc,float*intyc,float*intzc);
void sort(float*intxc,float*intyc,float*intzc);
}
2-我在论坛上看过一些帖子,用“Main.cpp”作为主文件,使用“Main.cu”文件是不对的还是无关紧要?
编辑:经过一番思考(和建议)后,我真的认为旧问题有点沉闷。
提前感谢并感谢talonmies的建议
答案 0 :(得分:1)
在最新的(2.3版本)CUDA版本中,无需声明您的函数extern“C”。此外,这些功能只是C函数,它们与CUDA无关。
您可以将主函数放在.cu文件或.cpp文件中。如果你做前者,它必须由nvcc编译。如果你做后者,它应该由你的C ++编译器编译。该文件不必命名为“Main”。