配置调试或发布cuda代码?

时间:2015-01-13 22:22:57

标签: cuda profiler nvvp

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

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

我发现CUDA - Visual Profiler and Control Flow Divergence表示需要调试(-G)版本才能正确衡量不同的分支指标,但我不确定其他指标。

1 个答案:

答案 0 :(得分:4)

分析通常意味着您关心绩效。

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

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

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