首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解CUDA分析器输出(nvprof)

了解CUDA分析器输出(nvprof)
EN

Stack Overflow用户
提问于 2015-05-21 10:24:20
回答 1查看 4.3K关注 0票数 6

我只是看看下面的输出,并试图把我的注意力集中在数字上:

代码语言:javascript
复制
==2906== Profiling result:
Time(%)      Time     Calls       Avg       Min       Max  Name
 23.04%  10.9573s     16436  666.67us  64.996us  1.5927ms  sgemm_sm35_ldg_tn_32x16x64x8x16
 22.28%  10.5968s     14088  752.18us  612.13us  1.6235ms  sgemm_sm_heavy_nt_ldg
 18.09%  8.60573s     14088  610.86us  513.05us  1.2504ms  sgemm_sm35_ldg_nn_128x8x128x16x16
 16.48%  7.84050s     68092  115.15us  1.8240us  503.00us  void axpy_kernel_val<float, int=0>(cublasAxpyParamsVal<float>)
...
  0.25%  117.53ms      4744  24.773us     896ns  11.803ms  [CUDA memcpy HtoD]
  0.23%  107.32ms     37582  2.8550us  1.8880us  8.9556ms  [CUDA memcpy DtoH]

...

==2906== API calls:
Time(%)      Time     Calls       Avg       Min       Max  Name
 83.47%  41.8256s     42326  988.18us  16.923us  13.332ms  cudaMemcpy
  9.27%  4.64747s    326372  14.239us  10.846us  11.601ms  cudaLaunch
  1.49%  745.12ms   1502720     495ns     379ns  1.7092ms  cudaSetupArgument
  1.37%  688.09ms      4702  146.34us     879ns  615.09ms  cudaFree
...

当涉及到优化内存访问时,在比较不同的实现时,我真正需要查看的数字是什么?首先,看起来memcpy只接受117.53+107.32ms (双向),但是接下来有一个API调用cudaMemcpy41.8256s,它更多。另外,min/avg/max列在上、下输出块之间并不相加。

为什么有差异,什么是“真实”的数字,是重要的,我优化内存传输?

编辑:第二个问题是:是否有一种方法可以确定谁在打axpy_kernel_val (以及打了多少次电话)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-21 11:12:24

总时间的差异是由于工作异步地启动到GPU。如果您有一个长时间运行的内核或一组内核,没有显式地同步到主机,并跟随它们调用cudaMemcpy,那么cudaMemcpy调用将在内核完成执行之前启动。API调用的总时间是从它启动的那一刻到它完成的那一刻,因此将与执行的内核重叠。如果您通过NVIDIA (nvprof -o xxx ./myApp,然后将xxx导入到nvvp)运行输出,您可以非常清楚地看到这一点。

不同的是,min时间将导致启动开销。虽然API分析考虑了所有的启动开销,但是内核定时只包含其中的一小部分。正如你在这里看到的那样,发射的开销可以是10-20 as。

一般来说,API调用部分让您知道CPU正在做什么,而分析结果则告诉您GPU正在做什么。在这种情况下,我认为您正在使用CPU,因为可以说,cudaMemcpy启动得太早了,而且CPU周期被浪费了。然而,在实践中,从这些空闲周期中获取任何有用的东西通常是困难的或不可能的。

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

https://stackoverflow.com/questions/30371030

复制
相关文章

相似问题

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