2011-06-01 69 views
0

我一直在扫描网站的大型CUDA项目的问题,我发现了一些很好的答复,无论如何,我还有一些疑问。组装一个CUDA项目

我的程序,现在(它仍然是完成的一半),输出一些数组,然后输入为Thrust库函数。

所以我的主要疑问是:

1,由于我使用的声明为extern“C” CUDA 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

这是四个不同的问题,其中三个是如此含糊以至于无法合理回答。我相信你可以做得比这更好。 – talonmies 2011-06-01 11:49:08

+0

我的评论的想法是鼓励你编辑你的原始问题,使其更好,而不是在评论中重复它..... – talonmies 2011-06-01 14:14:57

+0

我发誓,当我写作时,我正在考虑是否编辑问题或在这里发表评论.. – Bernardo 2011-06-01 14:30:35

回答

1
  1. 没有必要在最近的声明你的函数为extern“C”(发布2.3)CUDA的版本。此外,这些功能只是C函数,它们与CUDA无关。

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

+0

谢谢你的回复;)。是的,我知道该文件不需要命名为Main,但在我的情况下它需要是.cu文件,因为我有CUDA内核调用。另外我使用的是extern“C”,因为我认为在同一个程序中使用C和C++函数会给我带来麻烦,但是我已经测试了没有使用extern,并且它正在工作 – Bernardo 2011-06-02 10:24:42