2011-06-01 25 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