是否可以以编程方式确定CUDA分析器是否正在运行?

时间:2019-03-07 16:06:46

标签: cuda profiler

我要解决的问题。从Visual Studio运行时,我们的大多数命令行应用程序都希望强制用户按某个键退出,以便在调试时可以在Visual Studio中看到输出。

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

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

它似乎支持:

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

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

1 个答案:

答案 0 :(得分: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可能正在运行,但没有分析您的进程。