0

我遇到了以下问题。我想使用 为我的 cuda 应用程序测量gst_efficiency和。随 cuda 5.0 分发的文档告诉我使用以下公式为具有计算能力 2.0-3.0 的设备生成这些:gld_efficiencynvprof

gld_efficiency = 100 * gld_requested_throughput / gld_throughput

gst_efficiency = 100 * gst_requested_throughput / gst_throughput

对于所需的指标,给出了以下公式:

gld_throughput = ((128 * global_load_hit) + (l2_subp0_read_requests + l2_subp1_read_requests) * 32 - (l1_local_ld_miss * 128)) / gputime

gst_throughput = (l2_subp0_write_requests + l2_subp1_write_requests) * 32 - (l1_local_ld_miss * 128)) / gputime

gld_requested_throughput = (gld_inst_8bit + 2 * gld_inst_16bit + 4 * gld_inst_32bit + 8
* gld_inst_64bit + 16 * gld_inst_128bit) / gputime

gst_requested_throughput = (gst_inst_8bit + 2 * gst_inst_16bit + 4 * gst_inst_32bit + 8
* gst_inst_64bit + 16 * gst_inst_128bit) / gputime

由于没有给出所用指标的公式,我假设这些是 nvprof 可以计算的事件。但是我的 gtx 460 上似乎没有一些事件(也尝试过 gtx 560 Ti)。我粘贴.nvprof --query-events

任何想法出了什么问题或我误解了什么?

编辑: 我不想使用 CUDA Visual Profiler,因为我试图分析我的应用程序的不同参数。因此,我想nvprof使用多个参数配置运行,记录多个事件(每个事件都在一次运行中),然后将数据输出到表格中。我已经把它自动化了,并为其他指标工作(即发出的指令),并希望这样做以提高加载和存储效率。这就是为什么我对涉及nvvp. 顺便说一句,因为我的应用程序nvvp无法计算存储效率所需的指标,所以在这种情况下它根本对我没有帮助。

4

1 回答 1

1

我很高兴有人遇到同样的问题 :) 我正在尝试做同样的事情并且无法使用 Visual Profiler,因为我想分析 6000 个不同的内核。

NVidia 网站上的公式记录不充分 - 实际上变量可以是:

a) 事件

b) 其他指标

c) 不同的变量取决于您拥有的 GPU

但是,其中的许多指标要么有错别字,要么在 nvprof 中的精通程度与网站上的有所不同。此外,这些变量没有被标记,因此您无法仅通过查看它们是 a)、b) 还是 c) 来判断它们。我使用了一个脚本来 grep 它们,然后不得不手动修复它。这是我发现的:

1) "l1_local/global_ld/st_hit/miss" 这些在 nvprof 中有 "load"/"store" 而不是现场的 "ld"/"st"。

2) “l2_ ...whatever..._requests” 这些在 nvprof 中有“sector_queries”而不是“requests”。

3) “local_load/store_hit/miss” 这些在探查器中有“l1_” - “l1_local/global_load/store_hit/miss”

4)“tex0_cache_misses”这个在探查器中有“扇区” - “tex0_cache_sector_misses”

5) "tex_cache_sector_queries" 缺少 "0" - 所以 nvprof 中的 "tex0_cache_sector_queries"。

最后,变量:

1) "#SM" 流式多处理器的数量。通过 cudaDeviceProp 获取。

2) "gputime" 显然是GPU上的执行时间。

3)“warp_size”你的GPU上的warp大小,再次通过cudaDeviceProp获取。

4) "max_warps_per_sm" sm 上可执行的块数 * #SM * 每个块的扭曲。我猜。

5)“elapsed_cycles”找到这个: https ://devtalk.nvidia.com/default/topic/518827/computeprof-34-active-cycles-34-counter-34-active-cycles-34-value-doesn-39- t-make-sense-to-/ 但如果我明白了,仍然不完全确定。

希望这可以帮助您和其他遇到相同问题的人:)

于 2013-05-01T17:07:52.517 回答