Cuda 如何使用nvprof打印每个线程的api调用
我正在分析一个CUDA应用程序,并将日志转储到文件target.prof中 我的应用程序使用多个线程来调度内核,我只想观察其中一个线程的api调用。 我尝试使用Cuda 如何使用nvprof打印每个线程的api调用,cuda,gpu,nvidia,nvprof,nvvp,Cuda,Gpu,Nvidia,Nvprof,Nvvp,我正在分析一个CUDA应用程序,并将日志转储到文件target.prof中 我的应用程序使用多个线程来调度内核,我只想观察其中一个线程的api调用。 我尝试使用nvpro-I target.prof--print api trace,但这不会打印线程id 当我用VisualProfiler打开这个文件时,我可以看到哪些API调用是从哪个线程启动的。如何使用命令行探查器访问相同的信息 编辑:在可视探查器中查看 GPU线程是启动这些内核还是CPU线程?如果是cpu线程,则使用选项--cpu线程跟踪c
nvpro-I target.prof--print api trace
,但这不会打印线程id
当我用VisualProfiler打开这个文件时,我可以看到哪些API调用是从哪个线程启动的。如何使用命令行探查器访问相同的信息
编辑:在可视探查器中查看
GPU线程是启动这些内核还是CPU线程?如果是cpu线程,则使用选项
--cpu线程跟踪
cpu线程。我尝试使用nvpro-I target.prof--cpu线程跟踪打开--print api跟踪
这仍然不显示输出线程信息。我还尝试在记录日志时使用此选项,但仍然不起作用。我尝试了nvprof--cpu profiling on--cpu profiling线程模式分离。/a.out
。我正在获取cpu线程ID。我使用了std::async
来启动内核,我尝试用这些选项分析我的应用程序,但它似乎挂起了。我还附上了VisualProfiler屏幕的截图。它显示了来自2个线程的api调用。但是,当我只使用nvprof--print api trace
时,它只显示3列-时间、持续时间和调用名您是否尝试过这个命令nvprof--cpu profiling on--cpu profiling thread mode separated./a.out
是的,当我使用它运行程序时,它会挂起