我要解决的问题。从Visual Studio运行时,我们的大多数命令行应用程序都希望强制用户按某个键退出,以便在调试时可以在Visual Studio中看到输出。
这对于分析根本不起作用。解决该问题的一种方法是确定探查器是否正在运行。
CUDA分析器的API相当有限: https://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__PROFILER.html
它似乎支持:
cudaProfilerInitialize
cudaProfilerStart
cudaProfilerStop
但是无法确定它是否真正在运行吗?
答案 0 :(得分:3)
一个丑陋且肯定次优的解决方案只是在正在运行的进程中搜索nvprof ...
在Linux上,您可以使用readproc()
执行此操作:
#include <proc/readproc.h>
proc_t* readproc(PROCTAB *PT, proc_t *return_buf);
有关如何使用readproc.h
中的功能的更多信息,请查看:
在SuperUser.com上,尤其是在this answer。
注意:请不要忘记nvprof可能正在运行,但没有分析您的进程。