2015-01-13 48 views
1

我一直在分析nvprof and nvvp (5.5)的應用程序以優化它。不過,我得到像inst_replay_overheadipcbranch_efficiency,當我剖析調試(-G)等一些指標/事件完全不同的結果,併發布代碼的版本。配置文件調試或釋放cuda代碼?

所以我的問題是:哪個版本我應該個人資料?發行版或調試版?或者選擇取決於我在找什麼?

我發現CUDA - Visual Profiler and Control Flow Divergence其中聲明需要調試(-G)版本才能正確測量發散分支指標,但我不確定其他指標。

+1

我沒有在您提供的鏈接中看到任何內容,說明需要-G才能正確測量發散分支指標。被引用的特定分析器功能(反向引用源代碼)可以使用發行版或調試版來完成,如在那裏提供的答案中所述。 –

+0

Robert Crovella,你是對的。鏈接中的來源提供了兩個選項,我不提這一點。謝謝。 – ScHuMi

回答

4

分析通常意味着您關心性能。

如果你關心性能,你就應該剖析的CUDA代碼發行版。

調試版本(-G)將產生不同的代碼,這通常運行速度較慢。出於這個原因,我認爲在CUDA代碼的調試版本上進行性能分析(包括執行時間測量,基準測試,性能分析等)沒有多大意義。

的-G開關關閉最優化,設備代碼編譯器可能通常做,這對代碼生成有很大的影響,也對性能往往有很大的影響。優化禁用的原因是爲了便於調試代碼,這是-G開關和代碼的調試版本的主要原因。

+1

一般而言,您希望執行完整版本構建。如果你想使用源相關實驗添加-lineinfo。如果您需要查看應用程序的邏輯控制流程,-G有時可能比-infoinfo更有用。使用-G時避免查看任何其他指標。 –