nvvp(视觉)和nvprof(命令行)的输出有什么区别吗?



为了衡量 CUDA 程序的指标/事件,我尝试使用命令行,如下所示:

nvprof --metrics <<metric_name>>

我还在可视化探查器nvvp上测量了相同的指标。我注意到我得到的值没有区别。

当我选择像achieved_occupancy这样的指标时,我注意到输出有所不同。但这因每次执行而异,这可能就是为什么我每次运行它都会得到不同的结果,无论我使用的是nvvp还是nvprof

问题:

我的印象是nvvpnvprof完全相同,nvvp只是建立在nvprof之上的GUI,易于使用。然而,我得到了这个建议:

始终使用可视探查器。切勿使用命令行。

另外,这个问题说:

我不想使用命令行探查器,因为我需要全局加载/存储效率、重放和 DRAM 利用率,这在可视探查器中更加明显。

除了像achieved_occupancy这样的"动态"指标,我从未注意到结果有任何差异。那么,这个建议有效吗?nvprof的工作方式是否存在某种缺陷?我想知道使用可视化分析器而不是命令行表单的优势(如果有的话)。

更具体地说,是否存在nvprof给出错误结果的指标?

注意:

我的问题与这个或这个不同,因为这些问题是关于nvvp和Nsight之间的区别。

我不知道为什么有人会给你建议:

切勿使用命令行。

假设通过"命令行",您实际上意味着nvprof.这是不明智的。在某些情况下,使用nvprof. (请注意,如果您实际上指的是命令行探查器,那么该建议可能有些明智,尽管仍然是一个偏好问题。 它与nvprof是分开的,因此具有单独的学习曲线。 我个人会使用nvprof而不是命令行分析器。

nvvp在引擎盖下使用nvprof,以便完成其所有测量工作。 然而,nvvp可以以各种有趣的方式组合测量的指标,例如促进指导分析。

nvprof不应该给你"错误的结果",如果出于某种原因,那么nvvp应该同样容易受到此类错误的影响。

使用nvvpnvprof可能只是品味或偏好的问题。

许多人会喜欢GUI的便利性。nvvpGUI 提供了nvprof没有的"引导分析"模式。 我敢肯定,如果您浏览文档,可以创建其他差异的详尽列表。 但无论nvvp做什么,它都使用nvprof. 它没有查询设备探查器数据的替代方法 - 它使用nvprof

当使用nvvp不方便时,我会使用nvprof,也许当我在难以或不可能启动nvvp的计算群集节点上运行时。 如果您正在进行有针对性的分析(测量单个指标,例如shared_replay_overhead-nvprof肯定比启动 GUI 并运行会话更快),或者如果您正在收集大量运行的表格生成指标。

在大多数其他情况下,我个人会使用nvvp. 时间轴功能本身比尝试从nvprof --print-gpu-trace ...的输出中组装一个序列要方便得多,与时间线的信息基本相同。

相关内容

  • 没有找到相关文章

最新更新