2012-12-15 191 views
2

我一直在使用CUDA 4.2一週,現在有一點問題。 當我寫的__syncthreads()函數就變成下劃線看起來是錯誤的...CUDA __syncthreads()編譯正常,但用紅色加下劃線

然後,如果我穿上它的功能會出現一個消息書寫鼠標:

標識符__syncthreads() ;未定義。

但是當我編譯我的項目輸出形式構建雲:

==========生成:1成功,0失敗,0上最新,0跳過==========

所以我猜測,一切工作正常,但事實上,Visual Studio強調該函數令我困惑...我怎樣才能讓Visual Studio知道這函數是在編譯過程之前定義的?

注:同樣的事情發生在內核調用:內核< < < ... ... >>>其中第三「<」的紅色下劃線太...

我知道,這可能是一個小問題,但我想解決它...非常感謝! 我在Win7上使用Visual Studio 2010與Cuda 4.2和Nsight 2.2

+0

是文件命名爲something.c或something.cu,而最後一個表示cuda文件而不是普通的c文件。雖然沒有與cuda的VS經驗。 –

+0

@ ks6g10 ......顯然這將是一個'cu'文件。你還可以在哪裏使用'__syncthreads'? – sgarizvi

+0

這是東西.cu – user1870996

回答

2

我在cu文件的頂部添加了以下幾行,並開始識別這些函數。出於某種原因,智能感知沒有拿起這個的#define:

#ifndef __CUDACC__ 
    #define __CUDACC__ 
#endif 

我在代碼中失去了一些顏色編碼,但我不再得到奇怪的假陽性的錯誤。

+1

這實際上對函數「__syncthreads();」但問題變成另有100多個錯誤「unknown attribute」__device_builtin__「。 – qiuhan1989

+0

有趣的是,這對我有用。我在VS社區2013 ...任何人都知道爲什麼? – Greg

相關問題