2013-10-22 17 views
0

這是由deviceQuery.exeCUDA 5.5:我不能在內核方法中使用「printf」,我應該在VisualStucio2010「compute_xx,sm_xx」中選擇哪個設備?

Device 0: "NVS 4200M" 
CUDA Driver Version/Runtime Version   5.5/5.5 
CUDA Capability Major/Minor version number: 2.1 
(1) Multiprocessors, (48) CUDA Cores/MP:  48 CUDA Cores 

,我應該在VisualStucio2010選擇哪個設備propaty?

compute_10,sm_10或 compute_20,sm_20或 compute_30,sm_30或 compute_35,sm_35 ???

我想在內核方法中使用printf。 但我無法使用printf(); 如何在內核端使用printf?

什麼意思是「compute_xx」? sm等於流式多處理器,不是嗎? 我看過下面的文章,但他們不知道。 CUDA 4.1 printf() Error

回答

2

您可以在該設備上使用compute_20,sm_20。 如果您選擇compute_20,sm_20,您將可以使用printfin the kernel

compute_20選擇特定的「虛擬架構」 sm_20選擇特定的「設備架構」

的信息這兩個片通過nvcc使用的,設備代碼編譯器,來生成代碼。

您可以在nvcc manual

+0

閱讀更多關於編譯器架構,這些說明符的使用謝謝羅伯特Crovella!當你像你說的那樣,我能夠運行。謝謝!但是,您如何確定compute_xx和sm_xx的值。我認爲sm_xx意味着「流式多處理器」的價值。 deviceQuery.exe的結果顯示「(1)多處理器,(48)CUDA Cores/MP」它說多處理器是1,我認爲我只能使用sm_01。我想讓你告訴我們關於compute_xx的值。 在「deviceQuerry.exe」的執行結果上,我可以識別該值嗎? – kuu

+0

compute_xx和sm_xx都是基於設備查詢報告的*計算能力*(2.1)選擇的 –

相關問題