2012-08-08 34 views
1

Nvidia發佈了CUDA 5的擴展日食。他們也有VS2010的Nsight插件。在VS2010中,我們可以停止內核斷點處的程序執行,但是如何在Linux上的eclipse中實現這個功能?我沒有看到任何特定的按鍵來停止執行。我試圖改變觀點,但它調試爲一個正常的C/C++應用程序。我正在使用帶有Linux的Tesla C2070,Intel Xeon 8核心機器。CUDA 5調試器5

回答

2

我來自Nsight Eclipse Edition團隊。

我們的目標是專門將應用程序作爲普通的C/C++應用程序進行調試。這意味着無論您調試主機代碼還是設備代碼,都可以設置斷點,使用「run to line」等。

基本上,這個過程是Eclipse的相當標準:

  1. 創建一個項目(你也可以導入現有的可執行文件)
  2. 點擊調試按鈕
  3. 調試器將運行,默認情況下將在打破主功能。請注意,設備上沒有發佈設備代碼,因此您只能看到主機線程。
  4. 設置設備代碼中設置斷點和命中簡歷(請注意,斷點視圖工具欄還允許您設置的任何CUDA內核啓動斷點)時,設備代碼到達斷點

調試器將打破。您可以使用可視化調試器UI檢查應用程序狀態。

+0

它不適用於我:(我可以在'cuda-gdb'中設置斷點,但是當我嘗試在eclipse中做同樣的事情時,它不會停止,它僅在主函數中停止,即使我沒有設備代碼 – janisz 2013-07-26 21:20:55

+0

@janisz可能有以下幾個原因:在Nsight EE調試器中運行時,您的應用程序運行是否成功完成?如果您導入CUDA示例,可以中斷嗎?你是從終端仿真器還是控制檯運行cuda-gdb? – Eugene 2013-07-26 23:37:58

+0

我能夠在終端中調試應用程序,但是當我在Eclipse中設置斷點時,我得到''沒有加載符號表,在控制檯日誌中使用「file」命令。我試圖改變配置(隨機點擊)someting,但沒有什麼幫助,應用程序與適當的標誌建立。最後,下面的步驟解決我的問題:右鍵單擊項目>調試爲>本地C/C++應用程序。它將我切換到調試模式,所有斷點工作。現在,當我點擊綠色的bug時,它也可以工作。我插入第二張卡,我甚至可以刪除內核代碼:) Elipcse不像VS – janisz 2013-07-27 10:43:34

0

Eugene, 我剛剛安裝了Cuda 5,並且我無法打破任何內核代碼。這是一個乾淨安裝的centos 5.5,新下載cuda-5,並且我正在安裝一個gtx260m的華碩g71x筆記本電腦上運行。

我想也許你不能在一臺設備上運行display和dedbug,所以我切換到非nv x display,但仍然有同樣的問題,不能停止在內核代碼中。

+0

我認爲在Linux上不可能使用調試工具。 – 2012-08-27 15:50:01

+0

@TMB - 這種回覆應該作爲對尤金答案的評論而不是本身的回答。這樣,我們保持所有答案的相關性,並且SO更容易被其他用戶閱讀。歡呼:) – sjwarner 2012-08-27 21:46:28

+1

調試器無法在設備代碼中中斷的一些常見原因如下: 1.相同的GPU用於CUDA調試和OS UI。 Nsight Eclipse Edition調試器需要專用GPU。 2.由於某種原因,CUDA API調用失敗。確保您檢查CUDA API調用的返回值。 3. CUDA工具包未正確安裝。常見問題之一是系統上安裝了錯誤的NVIDIA驅動程序版本。 – Eugene 2012-09-04 22:34:33

0

您是否試過CUDA 5.0 RC1?它現在可用。你可以下載並嘗試它。我已經嘗試過Nsight,它適合調試。

此致敬禮!

0

304.43 NVIDIA驅動程序不允許除根以外的用戶調試其CUDA應用程序。

該問題不存在於任何過去或未來的公開發布中。 CUDA文檔建議僅使用CUDA DevZone中列出的驅動程序。 304.43司機不是其中之一。

這可能是也可能不是你打的問題。但我認爲這值得一提。

1

夫婦的事情,並不確定哪個解決了問題。驅動程序更新到最新的RC5.0,但我選擇運行VNC服務器,而不是本機X服務器。然後,CUDA卡專門用於我的應用程序和調試,它的功能如同一種魅力,現在可以從任何地方訪問。

+0

這真的是個答案嗎? 「我做了幾件完全不同的事情,現在突然變得有效了」?也許這可能是一個評論,而不是。 – 2012-11-02 14:36:33