我知道
有一个标志
在这种情况下,如何获得我的CUDA内核的详细性能分解?
nvvp
和nvprof
的存在,但由于各种原因,nvprof
不想与涉及大量共享库的应用程序一起工作。 nvidia-smi
可以连接到驱动程序以查找正在运行的内容,但我找不到一个好方法来使nvprof
附加到正在运行的进程。有一个标志
--profile-all-processes
,它确实给出了一个消息“NVPROF正在分析进程12345”,但没有更多的打印输出。我正在使用CUDA 8。在这种情况下,如何获得我的CUDA内核的详细性能分解?
nvprof
可以像您已经用--profile-all-processes
发现的那样,对独立进程进行分析,但必须在这些其他进程开始之前发出此nvprof
命令(以便它在后台运行),并且在其他进程结束时仍然必须在运行中。在此前提下,您应该能够使用nvprof
来对单独的进程进行性能分析。使用--profile-all-processes
后,将不会有任何其他输出,但是当这些其他进程终止时,将会写入一个性能分析文件。 - Robert Crovella--profile-all-processes
,但我无法弄清楚分析器文件被写入到哪里!例如,如果我使用--log-file log%p.txt
,日志文件将出现在每个进程的同一目录中,而我正在运行nvprof
,但除了单个“Profile process ...”行外,没有其他任何信息。 - Ken Y-NcudaProfilerStop()
),即使应用程序完成后,如果有大量的分析数据需要处理,写入文件可能需要几分钟甚至更长时间。 - Robert Crovellanvprof --profile-all-processes --log-file log%p.log &
启动后台记录日志。如果您想使用单独的进程来启动事物,则可选使用“&”。此时出现了一个(空)日志文件“log5699.log”。python t4.py
运行了我一直在开发的numba cuda应用程序。这需要大约10秒钟才能完成。当它完成时,将出现一个新的日志文件,名为“log5704.log”,其中包含了从进程5704(即Python进程)预期的分析器输出。kill 5699
终止了后台分析。--profile-all-processes
运行的评论非常有用。 - interestedparty333