2012-07-31 68 views
2

我正試圖確定GPU代碼中發生放緩的位置。我已經驗證了代碼自行正確運行(它不會引發任何錯誤,輸出正確,乾淨地完成等)。當我嘗試在Visual Profiler中剖析代碼時,它似乎正常運行,將正確的中間輸出轉儲到stdout。正在使用GPU(我已經檢查過cuda-gdb並從我的內核中傾銷printf())。一旦所有的代碼都完成了,Visual Profiler報告說viper已經終止了可執行文件。但是,不會生成時間線。相反,主窗口顯示0,10,20,25微秒全部「摺疊」在另一個之上。當我告訴Visual Profiler運行所有分析選項時,它會順利完成24次運行,但仍不會生成任何時間軸。CUDA Visual Profiler不會生成時間線

我使用CUDA 4.2,在Ubuntu x86_64的驅動程序版本295.41用的GeForce 460

回答

2

當可視化分析器無法生成時間軸時,通常是因爲它無法找到分析所需的組件。這個組件是在/ usr/local/cuda/lib64中找到的一個名爲libcuinj.so的共享庫。 LD_LIBRARY_PATH上是否爲該路徑?你如何啓動Visual Profiler?/usr/local/cuda/bin/nvvp中的腳本應該爲您正確設置路徑。

當找不到此共享庫時,4.2版本的可視化分析器不能很好地報告錯誤。即將推出的5.0版本的可視化分析器在這方面有更好的錯誤報告。

+0

我從/ usr/local/cuda/libnvvp/nvvp啓動,這似乎是導致問題的原因。謝謝! – limes 2012-08-02 15:56:56

0

我不知道這是否是Linux下的相同,但在Windows下Nsight,有兩種基本類型分析你可以運行。 「應用程序跟蹤」和「配置文件」。只有在應用程序跟蹤下你才能得到時間表。應用程序跟蹤記錄了CUDA和內核調用時的時間戳。配置文件設置提供了分析內核的選項。它從GPU讀取硬件計數器,並生成與一個或多個內核(並且沒有時間線)相關的性能信息。

+0

我明確告訴Visual Profiler在這種情況下「生成時間線」,這就是它聲稱要做的事情。 – limes 2012-07-31 23:04:58

+0

Visual Profiler上的錯誤報告有一些問題。這在5.0 RC中得到了改進。您可以爲任何CUDA SDK樣本生成時間線嗎? – 2012-08-01 20:23:59