是否可以通过编程确定CUDA探查器是否正在运行?
我想解决的问题。我们的大多数命令行应用程序在Visual Studio中运行时,我们喜欢强制用户按一个键退出,以便在调试时可以在Visual Studio中看到输出 这根本不适用于分析。解决此问题的一种方法是确定探查器是否正在运行 CUDA探查器的API相当有限: 它似乎支持:是否可以通过编程确定CUDA探查器是否正在运行?,cuda,profiler,Cuda,Profiler,我想解决的问题。我们的大多数命令行应用程序在Visual Studio中运行时,我们喜欢强制用户按一个键退出,以便在调试时可以在Visual Studio中看到输出 这根本不适用于分析。解决此问题的一种方法是确定探查器是否正在运行 CUDA探查器的API相当有限: 它似乎支持: 初始化cudaProfilerInitialize 启动cudaprofilestart 停止cudaProfilerStop 但是没有办法确定它是否真的在运行?好吧,一个丑陋的、肯定是次优的解决方案就是在运行的进
- 初始化
cudaProfilerInitialize
- 启动
cudaprofilestart
- 停止
cudaProfilerStop
但是没有办法确定它是否真的在运行?好吧,一个丑陋的、肯定是次优的解决方案就是在运行的进程中搜索nvprof 在Linux上,您可以使用
readproc()
:
#包括
proc_t*readproc(PROCTAB*PT,proc_t*return_buf);
有关如何使用readproc.h
中函数的更多信息,请参阅:
在SuperUser.com上,尤其是在
注意:别忘了nvprof可能正在运行,但没有分析您的流程。是的,我们在windoze上运行,但基本原则适用。对于我想到的用例,稍微慢一点是可以的。显然很笨重,但它能工作。等待另一个答案。。。
#include <proc/readproc.h>
proc_t* readproc(PROCTAB *PT, proc_t *return_buf);