组装CUDA项目

时间:2011-06-01 11:42:30

标签: cuda extern thrust

我一直在扫描网站上有关大型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的建议

1 个答案:

答案 0 :(得分:1)

  1. 在最新的(2.3版本)CUDA版本中,无需声明您的函数extern“C”。此外,这些功能只是C函数,它们与CUDA无关。

  2. 您可以将主函数放在.cu文件或.cpp文件中。如果你做前者,它必须由nvcc编译。如果你做后者,它应该由你的C ++编译器编译。该文件不必命名为“Main”。