首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用nvprof在CUDA计算功能3.x上评测L2缓存

使用nvprof在CUDA计算功能3.x上评测L2缓存
EN

Stack Overflow用户
提问于 2014-02-16 22:09:22
回答 2查看 1.1K关注 0票数 1

我在计算能力为3.5的CUDA卡上分析L2缓存时遇到问题。在Kepler (3.x)中,来自全局内存的加载只缓存在L2中,而不会缓存在L1中。我的问题是如何使用nvprof (命令行分析器)来查找我的全局负载在L2缓存中达到的命中率?我已经查询了我可以收集的所有指标,涉及L2 ache的指标如下:

代码语言:javascript
复制
         l2_l1_read_hit_rate:  Hit rate at L2 cache for all read requests from L1 cache
    l2_texture_read_hit_rate:  Hit rate at L2 cache for all read requests from texture cache
       l2_l1_read_throughput:  Memory read throughput seen at L2 cache for read requests from L1 cache
  l2_texture_read_throughput:  Memory read throughput seen at L2 cache for read requests from the texture cache
        l2_read_transactions:  Memory read transactions seen at L2 cache for all read requests
       l2_write_transactions:  Memory write transactions seen at L2 cache for all write requests
          l2_read_throughput:  Memory read throughput seen at L2 cache for all read requests
         l2_write_throughput:  Memory write throughput seen at L2 cache for all write requests
              l2_utilization:  The utilization level of the L2 cache relative to the peak utilization

我得到的唯一命中率是来自L1的读取。但是对全局内存的读取永远不会来自L1,因为它们不会被缓存在那里!或者我错了,而这正是我想要的指标?

令人惊讶(或不令人惊讶)的是,有一个度量标准给出了全局内存读取的L1命中率。

代码语言:javascript
复制
    l1_cache_global_hit_rate:  Hit rate in L1 cache for global loads

对于开普勒来说,这可能是非零的吗?

干杯!

EN

回答 2

Stack Overflow用户

发布于 2014-12-10 11:53:27

在CC 3.5设备上,有两个用于全局加载的路径。LDG指令通过纹理单元(l2_texture_read_hit_rate)。所有其他全局加载操作(包括未缓存的加载)都要通过L1 to L2 (l2_l1_read_hit_rate)。计数器名称为l2__read_hit_rate。此计数器并不表示加载已缓存在L1中。

如果开发人员启用L1缓存,则GK110B和GK210上的计数器l1_cached_global_hit_rate可以为非零。有关详细信息,请参阅L1 Cache上的开普调优指南部分。

票数 3
EN

Stack Overflow用户

发布于 2014-12-10 03:09:26

使用默认nvcc编译时,它将为0。但是,如果您使用-Xptxas -dlcm=ca执行compile,那么它可以是非零。

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

https://stackoverflow.com/questions/21812264

复制
相关文章

相似问题

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