cuda profiler中的本地缓存命中指标

时间:2019-04-17 20:09:20

标签: cuda nvprof

对于某些CUDA应用程序配置文件,我看到本地命中率(local_hit_rate指标)的值为0%。

我想用这个值来区分以下概念。

  1. 应用程序无权访问本地缓存。

  2. 所有对本地缓存的访问均未命中。

如何找到答案?由于inst_compute_ld_stldst_issuedldst_executed的值不为零,丢弃第一个问题是否可以?还是还有其他东西?

设备为M2000,即 CC5.3 CC5.2

1 个答案:

答案 0 :(得分:3)

nvprof支持事件(原始计数器)和指标。可以使用以下命令查询这些: nvprof-查询事件 nvprof --query-metrics

CC5。 / 6。本地内存策略

  • local_load_transactions_per_request :为每个本地内存负载执行的本地内存负载事务的平均数量
  • local_store_transactions_per_request :为每个本地内存存储执行的本地内存存储事务的平均数量
  • local_load_transactions :本地内存负载事务数
  • local_store_transactions :本地内存存储交易的数量
  • local_hit_rate :本地加载和存储的命中率
  • local_memory_overhead :L1和L2缓存之间的本地内存流量与总内存流量之比
  • local_load_throughput :本地内存负载吞吐量
  • local_store_throughput :本地内存存储吞吐量
  • inst_executed_local_loads :局部载荷的翘曲级指令
  • inst_executed_local_stores :本地商店的翘曲级别说明
  • l2_local_load_bytes :从L2读取的字节,用于本地缓存的统一缓存中未命中
  • l2_local_global_store_bytes :从Unified Cache写入本地和全局存储的L2的字节。这不包括全局原子。
  • local_load_requests :来自多处理器的本地加载请求总数
  • local_store_requests :来自多处理器的本地存储请求总数

local_ _request是通过通用地址空间或本地地址空间执行到本地存储器的指令数。在CC5上。 /6.*,我不记得其中是否包含完整的指示说明。

local _ * _ transactions是由于请求的大小(32位,64位,...)和请求的地址差异而导致的高速缓存访​​问数。如果它不为零,则访问本地内存。

l2_local _ * _ bytes是已加载/存储到L2高速缓存中的数据的字节数。