是否有可能以编程方式确定CUDA探查器是否正在运行?

问题描述 投票:2回答:1

我正在努力解决的问题。我们的大多数命令行应用程序,当从Visual Studio运行时,我们喜欢强制用户按一个键退出,所以我们可以在调试时看到Visual Studio中的输出。

这与分析不起作用。解决这个问题的一种方法是确定探查器是否正在运行。

CUDA分析器的API相当有限:https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__PROFILER.html

它似乎支持:

  • 初始化cudaProfilerInitialize
  • 开始cudaProfilerStart
  • 停止cudaProfilerStop

但无法确定它是否真的在运行?

cuda profiler
1个回答
3
投票

嗯,一个丑陋且肯定次优的解决方案就是在正在运行的进程中搜索nvprof ...

在Linux上,您可以使用readproc()执行此操作:

#include <proc/readproc.h>

proc_t* readproc(PROCTAB *PT, proc_t *return_buf);

有关如何使用readproc.h中的函数的更多信息,请查看:

How does the ps command work?

在SuperUser.com上,特别是在this answer

注意:不要忘记nvprof可能正在运行但不会分析您的进程。

© www.soinside.com 2019 - 2024. All rights reserved.