我的意思是确切的定义,为什么Nvidia分析器总是告诉我,由于SM3.5中的分支内的分支分离,我的代码的扭曲效率非常差?
我的代码尽可能避免了warp中的分支,如果我的代码是用SM 2.0构建的,那么nvidia分析器会告诉我,warp效率接近100%。
但是在同一张卡上,如果我的代码是用SM 3.5构建的,那么翘曲效率会突然下降到35%-40%,这是令人难以置信的低效率。
指令发布模式是:双重问题约为每次经线单个问题的50%。
所有其他的都没问题,有人可以告诉我关于warp效率的确切定义是什么,他们认为这意味着在任何给定时间同时运行的warp中的活动线程数除以warp大小?< / p>
那么为什么我的代码在使用不同的SM版本时,在相同的nvidia上具有如此显着不同的报告扭曲效率(SM3.5的扭曲效率约为35%,SM2.0的扭曲效率接近100%) GPU?
答案 0 :(得分:1)
对于报告为具有低warp效率的特定内核,您可以使用“Divergent Branch”分析来查看哪些特定分支(如果有)导致分歧,从而有助于降低warp效率。