0
是否可以使用nvprof
来计算CUDA内核执行次数(即启动了多少个内核)?使用nvprof对CUDA内核执行进行计数
现在当我运行nprof我所看到的是:
==537== Profiling application: python tf.py
==537== Profiling result:
Time(%) Time Calls Avg Min Max Name
51.73% 91.294us 20 4.5640us 4.1280us 6.1760us [CUDA memcpy HtoD]
43.72% 77.148us 20 3.8570us 3.5840us 4.7030us [CUDA memcpy DtoH]
4.55% 8.0320us 1 8.0320us 8.0320us 8.0320us [CUDA memset]
==537== API calls:
Time(%) Time Calls Avg Min Max Name
90.17% 110.11ms 1 110.11ms 110.11ms 110.11ms cuDevicePrimaryCtxRetain
6.63% 8.0905ms 1 8.0905ms 8.0905ms 8.0905ms cuMemAlloc
0.57% 700.41us 2 350.21us 346.89us 353.52us cuMemGetInfo
0.55% 670.28us 1 670.28us 670.28us 670.28us cuMemHostAlloc
0.28% 347.01us 1 347.01us 347.01us 347.01us cuDeviceTotalMem
...
我更新了我在运行nprof时看到的问题。我没有看到任何叫做内核的东西。 –
我可以考虑两种可能性:1.你的python代码没有进行任何(成功的)内核调用 - 你在做适当的错误检查吗?你确定知道内核被调用吗? 2.你可能需要告诉nvprof来描述子进程 - 如何做到这一点在我链接的文档中有介绍。这将取决于你在'tf.py'中发布什么类型的工作 - 可能是tensorflow。 –
好的,结果没有内核被调用。 –