2016-06-20 65 views
0

我正嘗試使用CUDA的動態並行機制,但是我無法通過編譯步驟。無法編譯/運行涉及動態並行的CUDA代碼

我正在使用Compute Capability 3.5和CUDA 7.5版GPU。

根據在我使用,我得到不同的錯誤信息,編譯命令的選項,但使用的documentation

  • 我到達一個線通向成功編譯:

    nvcc -arch=compute_35 -rdc=true cudaDynamic.cu -o cudaDynamic.out -lcudadevrt 
    

    但是當程序啓動時,所有的程序都會失敗。隨着 CUDA-MEMCHECK,每次調用API函數,我得到同樣的錯誤 消息:

    ========= CUDA-MEMCHECK 
    ========= Program hit cudaErrorUnknown (error 30) due to "unknown error" on CUDA API call to ... 
    
  • 我自己也嘗試這條線(從CUDA動態樣本的makefile拍攝):

    nvcc -ccbin g++ -I../../common/inc -m64 -dc -gencode arch=compute_35,code=compute_35 -o cudaDynamic.out -c cudaDynamic.cu 
    

    但在執行時,我得到:

    cudaDynamic.out: Permission denied 
    

我會升瞭解如何正確編譯CUDA動態代碼,因爲迄今爲止我嘗試過的所有其他編譯行都失敗了。

+0

僅僅因爲代碼在運行時失敗並不意味着您的編譯命令行不正確。通常你的命令行看起來是正確的。您的錯誤可能是您的代碼存在任何問題。你確定CUDA在你的機器上安裝正確嗎?其他CUDA代碼(例如CUDA示例)是否正確運行?如果這在Windows上,您是否可能遇到WDDM超時?您的問題中沒有足夠的信息來診斷實際錯誤。 –

+0

CUDA已正確安裝在機器上:我一直在研究非動態CUDA很長一段時間。 我在Ubuntu上運行。 我嘗試編譯示例cdpSimplePrint,但我得到以下錯誤: make:/ usr/local/cuda/bin/nvcc:未找到命令 Makefile:196:目標'cdpSimplePrint.o'的配方失敗 make: *** [cdpSimplePrint.o]錯誤127 – VincentN

+0

在您的計算機上運行'哪個nvcc'的結果是什麼? –

回答

0

我通過完全重新安裝CUDA解決了問題。

我現在可以編譯CUDA示例和我自己的代碼。