gpt4 book ai didi

cuda - 如何观察可执行文件子部分的CUDA事件和指标(例如,仅在内核执行期间)?

转载 作者:行者123 更新时间:2023-12-03 13:45:17 25 4
gpt4 key购买 nike

我熟悉使用nvprof来访问基准测试的事件和指标,例如,

nvprof --system-profiling on --print-gpu-trace -o (file name) --events inst_issued1 ./benchmarkname


system-profiling on --print-gpu-trace -o (filename)    

命令提供开始时间,内核结束时间,功率,温度的时间戳,并将信息保存到nvvp文件中,以便我们可以在可视化探查器中查看它。这使我们可以看到代码的任何部分正在发生的事情,特别是在运行特定内核时。我的问题是

是否有一种方法可以隔离仅在基准测试运行的一部分中计数的事件,例如在内核执行期间?在上面的命令中,
--events inst_issued1    

只是给出了针对整个可执行文件的指令。谢谢!

最佳答案

您可能需要阅读profiler documentation

您可以在可执行文件中打开和关闭分析。为此的cuda运行时API是:

cudaProfilerStart() 
cudaProfilerStop()

因此,如果您只想收集特定内核的配置文件信息,则可以执行以下操作:
#include <cuda_profiler_api.h>
...

cudaProfilerStart();
myKernel<<<...>>>(...);
cudaProfilerStop();

并摘录自文档:

When using the start and stop functions, you also need to instruct the profiling tool to disable profiling at the start of the application. For nvprof you do this with the --profile-from-start off flag. For the Visual Profiler you use the Start execution with profiling enabled checkbox in the Settings View.



同样从 the documentation专​​门用于 nvprof,您可以使用命令行开关将事件/度量制表限制为单个内核:
 --kernels <kernel name>

该文档提供了其他使用可能性。

关于cuda - 如何观察可执行文件子部分的CUDA事件和指标(例如,仅在内核执行期间)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32636261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com