2013-04-29 25 views
1

要使用MATLAB進行GPU並行計算,需要編寫一個.cu函數或內核,該函數被MATLAB腳本調用。代碼運行時,有什麼方法可以進入.cu文件?我現在正在使用GEDIT編寫CUDA內核。有人能給我一個關於如何逐步調試.cu文件的指針嗎?我沒有使用CUDA的mex東西。我只是在開發.CU文件,並直接從MATLAB調用。如何在MATLAB平臺下的MATLAB中調試.CU文件

回答

1

我還沒有試過這個,但是你可以使用Nsight EE或者cuds-gdb來連接到Matlab進程。一些疑難雜症的:用於CUDA調試

  1. 設備不應該被用於顯示器(例如,你需要在系統中有2個GPU,並連接顯示器GPU其他則用於CUDA的一個)。
  2. 你應該編譯調試信息的CU文件(通過-g -G以NVCC)
+0

TX MATE ..... @Eugene – 2013-04-30 09:36:55

0

正如尤金說,編譯.CU啓用調試

nvcc -g -G ... 

然後通過CUDA-GDB到matlab的調試選項

matlab -Dcuda-gdb 

這將執行調試器。從調試器提示:

(cuda-gdb) set cudamemcheck on 
(cuda-gdb) run -nodesktop -nojvm 

啓用cudamemcheck是可選的,但對於識別內存訪問衝突非常有用。 「運行」命令執行matlab,我總是不使用gui(-nodesktop)而不使用java虛擬機(-nojvm)。 YMMV,如果你用gui嘗試這個。

此時,您處於Matlab環境中,並且可以繼續運行任何(CUDA)程序導致的問題。您需要學習cuda-gdb命令。

編輯:根據我的經驗,必須使用「-nojvm」選項。否則爲Segfault。