首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算器与nvprof之间的不同占用率

计算器与nvprof之间的不同占用率
EN

Stack Overflow用户
提问于 2014-05-05 09:32:37
回答 1查看 1.5K关注 0票数 0

我正在使用nvprof来测量已实现的占用率,并将其确定为

已入伙0.344031 0.344031 0.344031

但是使用占用率计算器,我发现75%。

研究结果如下:

代码语言:javascript
复制
Active Threads per Multiprocessor   1536
Active Warps per Multiprocessor 48
Active Thread Blocks per Multiprocessor 6
Occupancy of each Multiprocessor    75%

我使用33个寄存器,144个字节共享内存,256个线程/块,设备功能3.5。

编辑:

另外,我想让clarify.In http://docs.nvidia.com/cuda/profiler-users-guide/#axzz30pb9tBTN声明一下

gld_efficiency 请求的全局内存负载吞吐量与所需全局内存负载吞吐量的比率(以百分比表示)

所以,如果这是0%,就意味着内核中没有全局内存传输?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-05 11:24:17

您需要理解的是,占用率计算器仅根据内核的资源需求,提供给定内核可以达到的最大理论占用率。它没有(也不能)说明代码能够实现多少理论占用。

另一方面,分析工具从测量的配置文件计数器中推断实际占用率。根据文档,您所询问的已达到的入住率计算为

代码语言:javascript
复制
(active_warps / active_cycles) / MAX_WARPS_PER_SM

即。它在内核运行期间对一个或多个SM上的活动翘曲数进行采样,并从中计算实际占用率。

内核没有达到理论占用率有很多原因,而且(在你问之前),我不能告诉你为什么你的内核不能达到理论占用率。但视觉探查器可以。如果这对您很重要,我建议您将CUDA 5/6可视化分析器中提供的自动性能分析功能作为更好地理解代码性能的一种方法。

还值得指出的是,占用只应被视为潜在代码性能的粗略度量,而高理论占用率并不总是转化为高性能。指令级并行和延迟最小化策略也可以非常有效地达到高性能水平,即使在低占用率。这方面有大量的研究成果,大部分源自瓦西里·沃尔科夫(Volkov)的开创性GTC 2010论文

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

https://stackoverflow.com/questions/23469180

复制
相关文章

相似问题

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