游戏引擎

在 Nsight Graphics 中从 Range Profiler 迁移到 GPU Trace

从 Nsight Graphics 2023 . 1 开始, GPU Trace Profiler 是在帧级别评测图形应用程序的最佳方式。“帧档案器”活动和“范围档案器”工具窗口已被删除。

别担心!关键分析信息仍然可用,只是以不同的形式提供。这篇文章将指导您完成 GPU Trace 中的步骤,用于 Range Profiler 中每个熟悉的工作流。

在这篇文章中,我回答了以下问题:

  • 作为 GPU Trace 的新用户,我的工作流程应该是什么样子?
  • 在哪里可以找到以前在 Range Profiler 中显示的每一条数据?

应用程序启动

以前,要访问 Range Profiler ,您可能使用了 Frame Profiler 或 Frame Debugger 活动,如图 1 左侧所示。

现在,在启动应用程序时,选择 GPU Trace Profiler 选项,如图 1 右侧所示。在公制套件下拉列表中,您可以选择要显示在时间轴视图中的指标。此列表还包括高级模式选项,该选项允许在表格和工具提示中显示其他度量。

Diagram shows the differences between launcher dialogs in consecutive versions of Nsight Graphics. On the left, Nsight Graphics 2022.7, showing the Frame Profiler’s launch settings. On the right, Nsight Graphics 2023.1, showing the GPU Trace launch settings.
图 1 。“初始连接到流程”对话框,每个活动

数据收集

以下是之前使用 Range Profiler 查看评测数据的步骤:

  1. 在应用程序中按 F11 ,或选择捕获以进行实时分析在 UI 中。
  2. 等待应用程序进入回放循环。
  3. 打开“ Range Profiler ”工具窗口。

使用 GPU Trace ,您可以通过以下步骤查看分析数据:

  1. 在应用程序中按 F11 或选择生成 GPU 跟踪捕获.
  2. 数据传输进度达到 100% 后,选择打开.

业务的第一个顺序是在时间线上浏览性能标记和操作(绘制调用、调度等)。这两个工具是相似的:标记显示在时间线上,选择性能标记后,显示的指标会更新。

The Range Profiler’s selector contains a graphical display of perf markers over time, with their nesting structure.
图 2 : Range Profiler 的 Range Selector 行。
GPU Trace’s Markers row contains a graphical display of perf markers over time, with their nesting structure. The timings of groups of actions such as ExecuteCommandLists, draws, and dispatches are also shown.
图 3 。 GPU 跟踪的队列和标记行

以下是这些工具之间的一些相似之处和不同之处:

  • Range Profiler 只能显示整个测量区域的总值。
    相比之下, GPU Trace 能够显示关键度量的时间序列数据。
  • 范围档案器中最重要的指标在 GPU 跟踪时间线上可见!图 4 显示了相应的元素。
  • 范围级别度量值在 GPU 跟踪中可见,在韵律学右边的选项卡。主要区别在于 GPU Trace 累积采样数据,其中工作负载可能并行运行;而 Range Profiler 正在隔离每个测量值。

在 GPU 跟踪中,只有在选择了高级模式度量集时,某些度量才可用。例如, Warp Stall 原因在图 4 中以青色突出显示。

Diagram shows the correspondence between textual elements in the Range Profiler, and graphical rows in GPU Trace.
图 4 。在 GPU 跟踪中查找最重要的 Range Profiler 指标的位置

方框图

Range Profiler 中性能指标的两个主要可视化描述是 GPU 框图和 Memory 框图。

GPU 框图

虽然 GPU Trace 没有显示 GPU 的框图,但以某种方式,框图中显示的所有统计数据都可以在 GPU -Trace 时间线上找到。

Diagram shows the utilization of each pipeline stage in the GPU.
图 5 。 Range Profiler 的 GPU 管道

表 1 显示了吞吐量度量或高级模式度量集中的 NVIDIA Ampere 或 NVIDIA Ada 架构的类似元素。

阶段 图表元素 GPU 跟踪行 GPU 跟踪度量
几何学 主要距离 单位吞吐量 PD 吞吐量
几何学 Vtx 收件人提取 单位吞吐量 VAF 吞吐量
几何学 虚拟专用计算机 单位吞吐量 PES + VPC 吞吐量
几何学 流出 单位吞吐量 PES + VPC 吞吐量
光栅化 光栅化单元1 单位吞吐量 RASTER 吞吐量
光栅化 氧化锆溶胶 单位吞吐量 ZROP 吞吐量
光栅化 作物溶胶 单位吞吐量 CROP 吞吐量
着色 SM 单位吞吐量 SM 吞吐量
着色 SM 饼图 SM 指令 SM 问题激活2
着色 SM 饼图 SM 占用 每个着色器阶段的扭曲2
记忆力 纹理 单位吞吐量 一级吞吐量3
记忆力 二级 单位吞吐量 L2 吞吐量
记忆力 虚拟随机存取存储器 单位吞吐量 VRAM 吞吐量
表 1 。 GPU 框图与时间线行的对应关系。
  1. Range Profiler 不显示“光栅吞吐量”的值。
  2. Range Profiler 的饼图显示了每个着色器阶段执行的指令。
    GPU Trace 可以测量总指令,但每个着色器阶段的分解仅在 Occupancy 图表中可用。
  3. 在现代 GPU 上, L1TEX 缓存是一个组合的 L1 数据缓存,包含一个加载/存储单元+纹理单元。尽管简称为“ L1 ”,但它也包括“纹理”。

内存框图

GPU Trace 没有显示内存层次结构的框图。然而, Range Profiler 内存图的每个元素在 GPU Trace 中都有一些相应的时间线数据。

Diagram shows the utilization of each layer in the GPU’s memory cache hierarchy.
图 6 。 Range Profiler 的 GPU 内存

表 2 显示了吞吐量度量或高级模式度量集中的 NVIDIA Ampere 或 NVIDIA Ada 架构的类似元素。

图表元素 GPU 跟踪行 GPU 跟踪度量
着色器→ 纹理 L1 吞吐量 一级 LSU 数据级吞吐量
L1 纹理数据阶段吞吐量
纹理→ 着色器 L1 吞吐量 一级 LSU 写回阶段吞吐量
一级纹理写回阶段吞吐量
纹理命中率 L1 命中率 L1 命中率
输入汇编程序→ 二级4 L2 带宽 来自 HUB 的 L2 带宽5
纹理→ 二级4 L2 带宽 L1 的 L2 带宽6
流输出→ 二级4 L2 带宽 来自 PE 的 L2 带宽7
下降→ 二级4 L2 带宽 来自 CROP 的 L2 带宽+
来自 ZROP 的 L2 带宽
L2 命中率 L2 命中率 L2 命中率
二级→ 虚拟随机存取存储器 VRAM 带宽 VRAM 写入带宽
虚拟随机存取存储器→ 二级 VRAM 带宽 VRAM 读取带宽
PCIe TX 带宽8 PCIe 带宽 PCIe 写入带宽
PCIe RX 带宽8 PCIe 带宽 PCIe 读取带宽
表 2 。内存框图与时间线行的对应关系
  1. Range Profiler does not display any values for “ memory requests to L2 ”.
  2. HUB 流量包括原始分发服务器、复制引擎和其他一些单元。
  3. “ L1 ”是 L1TEX 的缩写,包括加载/存储和纹理带宽。
  4. 原始引擎流量除了流输出之外,还可能包括内部操作。
  5. Range Profiler 不显示 PCIe 带宽。

着色器档案器呢?

在 Nsight Graphics 2023 . 1 中,着色器档案器将继续通过帧调试器活动提供。

着色器档案器是整体档案工作流程的重要组成部分,提供 HLSL 和 GLSL 源代码级别的性能统计数据。将其与 GPU Trace 一起使用可以提供一个完整的画面,说明为什么帧性能较低,以及每个着色器获得的性能低于最佳的具体原因。

有关如何工作的更多信息,请参阅以下资源:

结论

Nsight Graphics GPU Trace Profiler 活动提供与 Range Profiler 相同或更好级别的信息。在大多数情况下,指标是随着时间的推移而显示的,而不是单个数字,揭示了并发 GPU 工作负载的实时性能特征。

NVIDIA 不断开发和改进 GPU Trace ,帮助您在每一种新的强大架构和编程模型上获得最大性能。要开始,请下载latest version of Nsight Graphics.

如果您有问题或意见,请通过NVIDIA Developer forums或发送电子邮件至NsightGraphics@nvidia.com。记得使用集成的反馈工具窗口右上角的按钮。有关如何使用我们专家的工具和最佳实践的视频,请订阅NVIDIA Game DeveloperYouTube 频道。

观看 GDC 演示视频,了解 GPU Trace 是如何在《赛博朋克 2077 》中用于优化路径跟踪的:How Cyberpunk 2077 Achieved Photorealistic Graphics with NVIDIA’s Tools – YouTube.

有关 GPU Trace 及其许多应用程序的更多信息,请参阅以下资源:

以下是一系列分析工具的额外资源:

鸣谢

感谢以下 NVIDIA 同事,他们为本文做出了贡献: Louis Bavoil 、 Robert Jensen 、 Axel Mamode 和 Aurelio Reis 。

 

Tags