2013-08-21 116 views
0

後從我的CUDA程序下面的錯誤後工作:CUDA停止錯誤我有

CUDA error at scan.cu:231 code=4(cudaErrorLaunchFailure) 
"cudaMemcpy(odata, g_odata, sizeof(int) * N, cudaMemcpyDeviceToHost)" 

我固定它並重新編譯程序,但程序並未進行。它停在命令行提示符下,我不得不使用control + C來殺死它。

重新啓動機器後,它成功運行。

如何解決此問題而無需重新啓動?

我使用Ubuntu 12.04與CUDA 5.5 GTX550Ti的提振

謝謝!

回答

1

我遇到了類似的問題,CUDA根本無法在出現錯誤後無法工作,但在重新加載內核模塊後又開始工作。我對爲什麼會這樣沒有解釋,但我有一個腳本,重新加載內核模塊:

https://github.com/EmmetCaulfield/linux-misc/blob/master/usr/local/sbin/cuda-init

+0

Upvoted。我誤解了這個問題。在很多情況下,你不需要一個複雜的腳本來完成這個任務。 'sudo rmmod nvidia'本身將會卸載nvidia模塊。此後,任何CUDA操作(作爲根),例如運行'nvidia-smi -a'會自動強制重新加載模塊(這兩個操作都需要根特權才能顯示)。 –

+0

當然,但在一兩種情況下,我需要一個這樣複雜的腳本,我更喜歡只有一個腳本。 – Emmet

+0

如何運行腳本?我是Linux的新手。我試過'sudo rmmod nivida',但它說'錯誤:模塊nvidia正在使用' – user2684645