在 CUDA 中读取 nvprof 的输出

use*_*690 5 profiler cuda

我正在使用 nvprof 运行我的程序以使用以下命令获取配置文件信息:

nvprof -o profileOutput -s ./exe args
Run Code Online (Sandbox Code Playgroud)

我想要关于经线发散、合并读/写、占用等的信息。但是当我打开文件 profileOutput 时,它完全是其他格式,并且有像 @^@^ 这样的奇怪符号.....

我在 vim 中打开文件。查看 CUDA 程序的配置文件信息的正确方法是什么。请帮忙。

Azn*_*veh 5

您不需要,-s因为它本身就是默认情况。

-o 指定可以稍后导入或由 Nvidia 视觉分析器打开的输出文件,该文件不是人类可读的。

如果您需要计算占用率,您可以使用Nvidia 提供的这个占用率计算器。有一篇关于它的文章

如果您需要跟踪分支,您可以在跟踪模式和跟踪分支中使用分析。


avt*_*ton 5

您可以在 Nvidia Visual Profiler(通常包含在 CUDA SDK 中)中打开您的输出文件。

还有一种生成人类可读文件的可能性:您可以指定--log-file human-readable-output.log选项nvprof(当然human-readable-output.log是您的输出文件名)。
您可以nvprof为日志输出启用其他一些选项:

  • --print-gpu-trace 用于 GPU 跟踪;
  • --events 用于收集事件(例如分支、启动的经线数量等);
  • --metrics对于某些自定义指标(例如共享负载事务、DRAM 利用率等 - 您可以通过nvprof --query-metrics在命令行中键入来查看完整的指标列表)。

您可以在NVIDIA nvprof 文档 中找到完整的选项列表。