nvprof 和 pgprof 之间有什么区别吗?

Is there any difference between nvprof and pgprof?

我想知道是否 pgprof == nvprof+nvvp。 例如,我想知道它们是否可以互换。 nvprofnvvp 将完全按照 pgprof 分析 PGI OpenACC 应用程序? 例如,pgprof 预选 OpenACC 安装附带的 CUDA 工具包,nvvp 选择 /usr/local/cuda 中的那个。混合工具包有什么问题吗?

我有点困惑,因为这两个工具 (NVIDIA Profiler documentation & PGI Profiler Guide) 的文档看起来完全一样。

同样做 diff 并没有显示出任何明显的区别:

$ nvprof --help > help.nv
$ pgprof --help > help.pgi
$ diff help.pgi help.nv
1c1
< Usage: pgprof [options] [application] [application-arguments]
---
> Usage: nvprof [options] [application] [application-arguments]
113c113
<                         this pgprof instance. Note: Only one instance of pgprof
---
>                         this nvprof instance. Note: Only one instance of nvprof
305c305
<                         Suppress all pgprof output.
---
>                         Suppress all nvprof output.
346c346
<                         Make pgprof send all its output to the specified file, or
---
>                         Make nvprof send all its output to the specified file, o

几年前 NVIDIA 收购 PGI 时,我们确实将 pgprof 和 nvprof 与 pgprof 的 CPU 分析合并到 nvprof 中。主要区别在于 pgprof 将默认启用 CPU 分析,而在使用 nvprof 时需要通过“--cpu-profiling on”选项启用。