首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Nsight确定银行冲突和合并

使用Nsight确定银行冲突和合并
EN

Stack Overflow用户
提问于 2011-07-05 02:13:53
回答 3查看 990关注 0票数 1

如何使用parallel nsight了解非合并读/写和存储体冲突的数量?

此外,当我使用nsight is a profiler时,我应该看什么?有哪些重要的字段可能会导致我的程序变慢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-05 06:26:50

我不使用NSight,但是您将使用分析器查看的典型字段基本上是:

在functions中使用的

  • memory consumption
  • time

更具体地说,使用CUDA,您将小心您的GPU的占用。

其他有趣的值是编译器设置本地变量的方式:在寄存器中或在本地内存中。

最后,您将检查与GPU来回传输数据所花费的时间,并将其与计算时间进行比较。

票数 1
EN

Stack Overflow用户

发布于 2011-07-05 10:54:27

对于银行冲突,你需要关注warp serialization。参见here

关于监控内存合并的here is a discussion <--基本上你只需要观察Global Memory Loads/Stores - Coalesced/Uncoalesced并标记Uncoalesced

票数 1
EN

Stack Overflow用户

发布于 2011-07-07 16:45:26

M.Tibbits基本上回答了你需要知道的关于库冲突和非合并内存事务的问题。

关于(使用Nsight分析器时)需要查看哪些重要字段/内容可能会导致我的程序变慢的问题:

  1. 使用应用程序或系统跟踪来确定您是受CPU限制、内存限制还是内核限制。这可以通过查看时间轴来完成。

a. CPU限制-您将看到没有发生内核或内存复制的大区域,但您的应用程序线程(线程状态)为绿色

b.内存限制-内存传输到设备或从设备传输时被阻止的内核执行。您可以通过查看内存行来查看这一点。如果您在内存副本上花费了大量时间,那么您应该考虑使用CUDA streams来流水线您的应用程序。这可以让你重叠内存传输和内核。在更改代码之前,您应该比较传输和内核的持续时间,并确保您将获得性能提升。

c.内核绑定-如果应用程序的大部分时间都花在等待内核完成上,那么您应该切换到“配置文件”活动,重新运行您的应用程序,并开始收集硬件计数器,看看如何才能使内核的实际执行时间更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6574814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档