當我嘗試調試任意CUDA應用程序時,例如來自Nvidia的GPU計算SDK 4.0的矩陣乘法或convolutionSeparable樣品,我總是得到相同的輸出:CUDA Nvidia NSight調試:「CUDA網格啓動失敗」
Parallel Nsight Debug
CUDA grid launch failed: CUcontext: 2059192 CUmodule: 348912936 Function: _Z9matrixMulILi32EEvPfS0_S0_ii
……
……
而且具有以下內容的文件被顯示出來:
Parallel Nsight CUDA Debugger
應用貝因g使用Nexus CUDA調試器進行調試,無法找到任何關聯的源代碼 。這可能是由於多種原因:
1)CUDA尚未初始化。 確保cuInit已被調用,並返回成功的結果。
2)沒有創建CUDA上下文。 創建上下文後,可以在上下文中檢查內存。每個上下文 在Visual Studio線程視圖中顯示爲單個「線程」。 (調試| Windows |主題)
3)在任何情況下都沒有活動的CUDA網格。 必須啓動一個網格才能達到斷點。
4)您已在Visual Studio線程視圖中選擇「默認上下文」。 當上下文沒有可用的實際CUDA 時,此上下文是一個佔位符。它不顯示真實的數據。
5)沒有加載CUDA模塊。 您可以通過顯示 Visual Studio模塊視圖來查看哪些模塊已加載到每個CUDA上下文中。 (Debug | Windows | Modules)
6)未找到加載的.cubin的符號。 該模塊需要使用調試信息進行構建。建築時請指定 -G0開關。
7)運行內核時網格啓動失敗。
相應的「.CU」文件中的每個斷點在運行過程中完全被忽略。當我只運行應用程序時,如果沒有Nsight Debugging,程序將毫無問題地執行。
我能做些什麼來解決這個問題?
我的設置:
- 1xIntel GPU和1x NV 570GTX,我想使用本地調試選項
- 贏7專業版64位
- 開發信封:VS2008或VS2010
- CUDA 4.0 & Parallel Nsight 2.0
- NV驅動程序Vers。:285。38
- WPF是禁用
- TDR被禁用
- Windows上運行的基本模式(無航空)
- 項目Propertys:CUDA運行時API - > GPU->生成GPU調試信息 - >是(-G0)
我的顯示器目前由intel設備驅動,這肯定是因爲否則這會導致一些其他NSight錯誤消息。我知道,因爲我已經嘗試過了。據我所知,需要一個額外的任意圖形設備,在我看來這聽起來很合理。 – Impulse
@Impulse您是否嘗試過Parallel Nsight示例(而不是CUDA SDK示例)? – Tom
是的,我嘗試過SDK樣本,並且使用Parallel Nsight提供了matrixMul樣本。 輸出爲這個特殊的例子: 並行Nsight調試 CUDA網格發射失敗:CUcontext:46427088 CUmodule:139693888功能:_Z9matrixMulPfS_S_ii – Impulse