NVIDIA Nsight Visual Studio Edition 4.1 RC1中的新问题停滞原因

时间:2014-07-31 19:37:15

标签: visual-studio cuda profiling gpgpu nsight

NVIDIA Nsight Visual Studio Edition 4.1 RC1中,warp问题停顿原因分为9种类型,而不是4.0版本中的6种。从它的外观来看,删除了“数据请求”,“Memory Throttle”,“Memory Dependency”,“Constant Miss”。

但是,NVIDIA Nsight Visual Studio Edition 4.1用户指南中的Issue Stall Reasons section(通过点击Issue Stall Reasons UI右上角带有白色问号的蓝色图标,您将被重定向到同一个)尚未从NVIDIA Nsight Visual Studio Edition 4.0用户指南中的the same section更新。

我想知道新问题的失速原因是什么,以及减少它们的一些方法。

4.1:

1

4.0:

2

1 个答案:

答案 0 :(得分:2)

在Nsight 4.1中,删除了以下原因:

数据请求已删除。在Nsight< = 4.0中,当warp无法发出数据请求时,数据请求被声明。

在Nsight 4.1中,增加了以下原因:

内存限制 - 由于内存数据路径中缺少资源而导致warp被阻止发出指令,因此warp会断言内存限制停顿。如果这个原因很高,请尝试解决导致指令重放或尝试将内存访问聚合到向量访问中的内存合并问题(数据偏差)。在CC5.x设备上,如果线程发出多个内存存储然后退出,这个原因也会发生在内核的末尾。

内存依赖性 - 当由于依赖于内存或纹理依赖性而无法发出其下一条指令时,warp会断言内存依赖性停顿。如果这个原因很高,那么尝试(a)改善内存合并,(b)提高内存级并行性,(c)将频繁访问的数据移近SM(例如移入共享内存),(d)尝试计算数据而不是加载数据,或(e)在SM3.5上尝试使用LDG。

常量缺失 - 如果warp尝试访问常量并且常量不在缓存中,则warp断言常量未命中。如果这个原因很高,请尝试将内核使用的常量分组到常量内存的相同区域(移动声明彼此接近),尝试将常量移动到全局内存,或尝试计算常量。

Pipe Busy - 如果warp next指令所需的数据路径繁忙且warp无法发出,则warp断言管道忙碌停顿。如果这个原因很高,请查看管道利用率实验图并尝试减少任何具有高利用率的管道。避免低吞吐量指令也可能有所帮助。