首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用NVIDIA视觉探查器测量每翘曲中的银行冲突?

如何使用NVIDIA视觉探查器测量每翘曲中的银行冲突?
EN

Stack Overflow用户
提问于 2016-06-06 05:39:43
回答 1查看 978关注 0票数 3

我正在做一个详细的代码分析,我想要衡量的银行冲突的总数每翘曲。

nvvp文档列出了这个指标,这是我唯一能找到的与银行冲突相关的指标:

shared_replay_overhead:由于执行的每条指令共享内存冲突而导致的平均重放次数

当我使用nvprof (或nvvp)分析度量时,会得到如下结果:

代码语言:javascript
复制
Invocations            Metric Name                        Metric Description                Min         Max         Avg
Device "Tesla K20m (0)"
Kernel: void matrixMulCUDA<int=32>(float*, float*, float*, int, int)
301                    shared_replay_overhead             Shared Memory Replay Overhead    0.089730    0.089730    0.089730

我需要使用这个值0.089730或设计一些其他方法来度量银行冲突的数量。

我理解这个值是所有正在执行的翘曲的“平均值”。如果我必须测量每一次变形中银行冲突的总数,有什么方法可以使用nvprof结果来实现呢?

我想到了一些可能的办法:

  • 通过使用shared_replay_overhead结果并在公式中使用它们来计算银行冲突的数量。我猜我必须应用一些类似shared_replay_overhead * Total number of warps launched的公式,在那里我提前知道了Total number of warps launched,但我不知道是什么。
  • 首先检测到它是一个四向银行冲突、八路银行冲突等,然后将4/8乘以发生共享内存操作的次数(如何度量?)。

除了nvprof结果之外,这可能还需要对GPU体系结构有相当好的技术知识,我认为我还没有。作为记录,我的GPU是开普勒架构的SM-3.5。

即使我可以测量每个块的银行冲突数,而不是每一个翘曲,这也就足够了。在此之后,我可以做必要的计算,以得到的数值,每翘曲。

EN

回答 1

Stack Overflow用户

发布于 2016-08-09 20:12:09

我认为您应该查看CUPTI (Cuda分析工具接口)文档。在/extras/CUPTI目录中,您的CUDA也很少有示例。我对这个库不是很熟悉,但是看起来您可以编写自己的分析器,测量您想要的,或者收集您感兴趣的度量标准。这将是低水平,但这是你需要得到准确的答案。

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

https://stackoverflow.com/questions/37650210

复制
相关文章

相似问题

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