从 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 右侧所示。在公制套件下拉列表中,您可以选择要显示在时间轴视图中的指标。此列表还包括高级模式选项,该选项允许在表格和工具提示中显示其他度量。
数据收集
以下是之前使用 Range Profiler 查看评测数据的步骤:
- 在应用程序中按 F11 ,或选择捕获以进行实时分析在 UI 中。
- 等待应用程序进入回放循环。
- 打开“ Range Profiler ”工具窗口。
使用 GPU Trace ,您可以通过以下步骤查看分析数据:
- 在应用程序中按 F11 或选择生成 GPU 跟踪捕获.
- 数据传输进度达到 100% 后,选择打开.
业务的第一个顺序是在时间线上浏览性能标记和操作(绘制调用、调度等)。这两个工具是相似的:标记显示在时间线上,选择性能标记后,显示的指标会更新。
以下是这些工具之间的一些相似之处和不同之处:
- Range Profiler 只能显示整个测量区域的总值。
相比之下, GPU Trace 能够显示关键度量的时间序列数据。 - 范围档案器中最重要的指标在 GPU 跟踪时间线上可见!图 4 显示了相应的元素。
- 范围级别度量值在 GPU 跟踪中可见,在韵律学右边的选项卡。主要区别在于 GPU Trace 累积采样数据,其中工作负载可能并行运行;而 Range Profiler 正在隔离每个测量值。
在 GPU 跟踪中,只有在选择了高级模式度量集时,某些度量才可用。例如, Warp Stall 原因在图 4 中以青色突出显示。
方框图
Range Profiler 中性能指标的两个主要可视化描述是 GPU 框图和 Memory 框图。
GPU 框图
虽然 GPU Trace 没有显示 GPU 的框图,但以某种方式,框图中显示的所有统计数据都可以在 GPU -Trace 时间线上找到。
表 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 吞吐量 |
- Range Profiler 不显示“光栅吞吐量”的值。
- Range Profiler 的饼图显示了每个着色器阶段执行的指令。
GPU Trace 可以测量总指令,但每个着色器阶段的分解仅在 Occupancy 图表中可用。 - 在现代 GPU 上, L1TEX 缓存是一个组合的 L1 数据缓存,包含一个加载/存储单元+纹理单元。尽管简称为“ L1 ”,但它也包括“纹理”。
内存框图
GPU Trace 没有显示内存层次结构的框图。然而, Range Profiler 内存图的每个元素在 GPU Trace 中都有一些相应的时间线数据。
表 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 读取带宽 |
- Range Profiler does not display any values for “ memory requests to L2 ”.
- HUB 流量包括原始分发服务器、复制引擎和其他一些单元。
- “ L1 ”是 L1TEX 的缩写,包括加载/存储和纹理带宽。
- 原始引擎流量除了流输出之外,还可能包括内部操作。
- Range Profiler 不显示 PCIe 带宽。
着色器档案器呢?
在 Nsight Graphics 2023 . 1 中,着色器档案器将继续通过帧调试器活动提供。
着色器档案器是整体档案工作流程的重要组成部分,提供 HLSL 和 GLSL 源代码级别的性能统计数据。将其与 GPU Trace 一起使用可以提供一个完整的画面,说明为什么帧性能较低,以及每个着色器获得的性能低于最佳的具体原因。
有关如何工作的更多信息,请参阅以下资源:
- Identifying Shader Limiters with the Shader Profiler in NVIDIA Nsight Graphics
- How to Improve Shader Performance By Resolving LDC Divergence(视频)
结论
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 及其许多应用程序的更多信息,请参阅以下资源:
- Advanced API Performance: Async Compute and Overlap
- Identifying Shader Limiters with the Shader Profiler in NVIDIA Nsight Graphics
- Building Acceleration Structures Using Async Compute(视频)
- How to Improve Shader Performance by Resolving LDC Divergence(视频)
- Getting Started with Ray Tracing Graphics Tools | NVIDIA On-Demand( GTC 会话)
以下是一系列分析工具的额外资源:
- Uplifting Optimizations, Debugging, and Performance Tuning with NVIDIA Nsight Developer Tools
- NVIDIA Developer Tools – Walkthrough of Development Scenarios and Solutions – YouTube
- Building Games with NVIDIA Nsight Tools on NVIDIA Ada Lovelace – YouTube
鸣谢
感谢以下 NVIDIA 同事,他们为本文做出了贡献: Louis Bavoil 、 Robert Jensen 、 Axel Mamode 和 Aurelio Reis 。