2

我一直在分析应用程序nvprof and nvvp (5.5)以优化它。但是,当我分析调试()和发布版本的代码时,对于某些指标/事件(如inst_replay_overheadipc或等),我会得到完全不同的结果。branch_efficiency-G

所以我的问题是:我应该配置哪个版本?发布版还是调试版?或者选择取决于我在寻找什么?

我找到了CUDA - Visual Profiler and Control Flow Divergence,其中声明需要调试(-G)版本才能正确测量发散分支指标,但我不确定其他指标。

4

1 回答 1

5

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

如果您关心性能,您应该分析 CUDA 代码的发布版本。

调试版本 (-G) 会生成不同的代码,通常运行速度较慢。在我看来,出于这个原因,对 CUDA 代码的调试版本进行性能分析(包括执行时间测量、基准测试、分析等)没有什么意义。

-G 开关关闭设备代码编译器通常可能进行的大多数优化,这对代码生成有很大影响,而且通常对性能也有很大影响。禁用优化的原因是为了方便代码的调试,这是 -G 开关和代码的调试版本的主要原因。

于 2015-01-13T22:26:47.877 回答