0

我的意思是确切的定义,为什么 Nvidia 分析器总是告诉我,由于 SM3.5 中扭曲内的分支发散,我的代码的扭曲效率非常差?

我的代码已尽可能避免在 warp 内分支,如果我的代码是使用 SM 2.0 构建的,nvidia profiler 会告诉我,warp 效率接近 100%。

但是在同一张卡上,如果我的代码是用SM 3.5构建的,那么一下子warp效率会下降到35%-40%,这是令人难以置信的低效率。

并且指令发出模式是:双发出大约是每经线单发出的情况的50%。

其余的都很好,所以有人可以告诉我关于翘曲效率的确切定义是什么,他们是否认为是指在任何给定时间并发运行的翘曲中的活动线程的数量除以翘曲大小?

那么为什么我的代码在使用不同的 SM 版本构建时,在同一个 nvidia gpu 上具有如此显着不同的报告扭曲效率(SM3.5 的扭曲效率约为 35%,SM2.0 的扭曲效率接近 100%)?

4

1 回答 1

1

对于报告为具有低翘曲效率的特定内核,您可以使用“发散分支”分析来查看哪些特定分支(如果有)导致发散,从而导致低翘曲效率。

于 2013-03-26T00:19:57.143 回答