2013-09-28 132 views
2

我想問一下如何調試使用VS 2010和Nsight從mexfunction調用的cuda內核。我按照http://http.developer.nvidia.com/NsightVisualStudio/2.2/Documentation/UserGuide/HTML/Content/Attach_CUDA_to_Process.htm中的說明進行操作,但附加按鈕未啓用以附加matlab。通過使用Nsight GPU調試Matlab來調試cuda內核mexfunction

PS:Win 7的64倍,Matlab的2011 x64上,相較於2010年,CUDA SDK 5.5 64x中,Nsight 3.1 64倍,蘋果牛9600

enter image description here

+0

請注意,除了Matlab行之外,Type列中沒有指定CUDA類型。這意味着在此過程中不會識別CUDA使用情況。無論如何,我已經在您所引用的網頁中嘗試過這些指導方針,而且我也遇到了同樣的問題。我的配置是Win 7 64x,Matlab 2010a x64,VS 2010,CUDA 5.0 64x,Nsight 3.1 64x。引用過程中我不明白的是,在調用mex函數之前,Nsight應該如何識別CUDA的用法。因此,我在內核調用之前設置了一個斷點,並嘗試從相同/新的Visual Studio IDE進行連接,但沒有任何更改。 – JackOLantern

+0

爲了供你參考,這篇文章[在Visual Studio中調試cuda文件](http://stackoverflow.com/questions/14386982/debugging-cuda-files-in-visual-studio)也有同樣未解決的問題。 – JackOLantern

+0

看看這個http://http.developer.nvidia.com/NsightVisualStudio/3.0/Documentation/UserGuide/HTML/Content/Attach_CUDA_to_Process.htm它沒有幫助我,但它是我發現與我們的問題相關的更近的信息。 – Darkmoor

回答

2
  1. 打開Nsight監視器Nsight的Visual Studio 3.1版 - > Nsight監視器
  2. 圍棋Nsight監視器選項(在任務欄上的左邊) - > CUDA - >使用這個監視器CUDA連接 - >真
  3. 添加環境變量NSIGHT_CUDA_DEBUGGER = 1通過高級系統設置 - >環境變量並在用戶系統兩個面板中添加上述變量。
  4. 啓動Matlab和Visual Studio,並嘗試將Matlab與Nsight調試器和限定符計算機名稱並且它是。

測試Matlab 2011a 64x和VS 2010 SP1。

enter image description here

+0

看起來沒有必要將'NSIGHT_CUDA_DEBUGGER = 1'設置爲_user_環境變量。將它設置爲_system_環境變量對我來說已經足夠了。 – JackOLantern

+0

好的,謝謝! – Darkmoor

1

這足以設置NSIGHT_CUDA_DEBUGGER環境變量只是MATLAB,所以你不必通過使每一道工序地連接到你的整個系統變慢。引用NVIDIA的Nsight文檔:

設置NSIGHT_CUDA_DEBUGGER=1可能會降低應用程序的性能,因爲調試器已駐留。 Tesla™設備和無頭設備的影響極小;在具有桌面的顯示設備上是最嚴重的,其中調試器可能需要序列化本來是異步的啓動。因此,並不總是需要將NSIGHT_CUDA_DEBUGGER=1設置在系統範圍或用戶範圍

要設置它在運行的MATLAB會話(和備用系統的其餘部分):

>> setenv('NSIGHT_CUDA_DEBUGGER','1') 

命中刷新或重新選擇Nsight GPU調試器和它的作品:

enter image description here

您仍然需要配置Nsight以允許連接,但這是一次性設置:

enter image description here