2016-10-03 79 views
1

我嘗試使用CUDA SDK中的ptxjit樣本作爲儀器與GPU設備的交互基礎。加載PTX以CUDA功能運行時,以編程方式返回錯誤209.0

我已經成功地編譯了檢測代碼,並控制設備加載並執行具有CUDA功能2.0的Geforce GT440的PTX模塊。

在使用具有CUDA功能5.0的Geforce 830M(使用大黃蜂控制獨立GPU的筆記本電腦)系統上編譯相同的工具代碼時,代碼會編譯但會提供209(CUDA_ERROR_NO_BINARY_FOR_GPU)。

我試圖編譯內核以與CUDA功能5.0兼容,但沒有成功,仍然是相同的錯誤。

任何想法?

+0

沒有[MCVE],很難說出什麼問題。通常情況下''CUDA_ERROR_NO_BINARY_FOR_GPU'意味着你要麼沒有代碼的CUBIN沒有正確的體系結構,要麼你的PTX包含語法錯誤,或者在JIT編譯過程中包含其他內容,導致編譯調用失敗。 – talonmies

+0

正如我所提到的,我使用CUDA SDK上提供的代碼,但我會將它的一部分與ptx一起復制。 – prmottajr

+1

你真的在構建和運行CUDA SDK附帶的ptxjit示例項目嗎?或者你是否將這個ptxjit示例代碼放入你自己的項目中?你正在使用哪種CUDA版本? –

回答

0

最後問題出在司機身上。它認爲它隻影響用於具有CUDA Capability 5.0的GPU的PTX代碼加載功能。

我刪除了最近更新的所有nvidia驅動程序包,並安裝了CUDA SDK附帶的驅動程序和OpenGL庫。 SDK 7.5的驅動程序版本爲352.39,該驅動程序既包含原始ptxjit樣本,也包含修改後的樣本,與其他系統完全一樣。

我沒有任何具有CUDA功能3.0的GPU來測試是否會出現同樣的問題,另外,我沒有將我的桌面更新到367.44驅動程序,以查看它是否會破壞ptxjit示例。

現在,解決方案是保留CUDA SDK附帶的驅動程序,並關閉來自nvidia存儲庫的更新。

相關問題