AMD Radeon™ GPU Profiler
AMD RGP 让您能够前所未有地深入了解 GPU。轻松分析图形、异步计算使用情况、事件计时、管线停顿、屏障、瓶颈和其他性能低效之处。
在 2023 年 GDC 上,我们推出了 Radeon™ GPU Profiler (RGP) 的一些附加功能。完整的演示文稿的 预录版本 现已在线提供。
RGP 1.15,包括这些功能(以及其他功能),现已可供下载!
在 上述视频的 12:32 处,我们介绍了已集成到 RGP 的 Pipeline state 和 Instruction timing 视图中的增强 ISA 视图。自 GDC 以来,此视图得到了持续改进,我们非常期待您试用此用户界面的当前版本。
这是 Instruction timing 窗格中增强 ISA 视图的示例

在 Pipeline state 窗格中也是如此

除了为 Pipeline state 和 Instruction timing 视图中的 ISA 视图提供统一的外观和感觉外,我们还实现了对先前版本的几项增强。
首先,反汇编的 ISA 中的各个块现在可以折叠和展开

要折叠或展开单个块,请单击指令行左侧的箭头。要一次性展开或折叠着色器中的所有块,请分别使用 Ctrl + 右箭头或 Ctrl + 左箭头快捷键。
我们还实现了一个许多文本编辑器中都可用的功能:自动高亮显示相同的标记。有了此功能,您只需单击 ISA 视图中的一个文本标记,它就会自动高亮显示该标记的其他实例。此功能适用于指令操作码、寄存器和常量。
在下面的截图中,用户单击了 s0 标量寄存器。请注意该寄存器的所有实例是如何被高亮显示的。另请注意,对于寄存器,任何包含所选寄存器的寄存器范围也将被高亮显示。这在 s[0:1] 也被高亮显示的行中可以看到。

现在也支持着色器中分支指令与这些分支目标之间的双向导航。当单击分支的目标时,ISA 视图将自动滚动以显示由该标签标识的块。同样,当单击块标签时,ISA 视图将自动滚动以显示分支到该块的分支指令。如果多个分支指令引用同一块,单击块标签将显示一个菜单,允许用户选择要显示的哪个分支指令。此双向导航还维护了用户已导航到的分支和块标签的历史记录。有导航历史控件可用于快速遍历导航历史(或跳转到历史记录中的特定项)。在下面的截图中,您可以看到分支指令目标和块标签显示为超链接,表明它们可以被单击以进行导航。您还可以在 ISA 显示上方的右上角看到导航历史控件(它们是带有中间菜单的左右箭头)。

增强的 ISA 视图还允许改进的用户自定义。您可以使用“查看选项”下拉菜单选择要显示的列。还可以通过将列标题拖到新位置来重新排序列。

尽管此版本中最大的功能是增强的 ISA 视图,但还有一些其他较小的改进值得提及。
RGP 现在将显示任何网格着色器事件的正确名称。在以前的版本中,这些事件被标记为“未知”。下面是 RGP 事件列表的两个屏幕截图,显示了 DispatchMesh (DirectX®12) 和 vkCmdDrawMeshTasksEXT (Vulkan®) 事件名称。


基于 AMD RDNA™ 3 架构的 Radeon™ RX 7000 系列 GPU 的一项新硬件功能是支持波矩阵乘累加(或 WMMA)指令。这些指令对于机器学习或人工智能工作负载中使用的某些矩阵数学运算非常有用。在此版本的 RGP 中,Instruction timing 功能集支持 WMMA 指令。除了显示这些指令的命中计数、指令成本和延迟外,Details 面板还在 Instruction Hit Count 表中包含了一个额外行,用于报告当前着色器执行的 WMMA 指令的总数。
有关 WMMA 指令的更多信息,请参阅这篇 出色的 GPUOpen 博客文章。

我们已添加对显示任何给定 Draw 事件是否启用了保守光栅化的支持。在 Pipeline state 窗格中,这会出现在RS阶段(对于 DirectX®12 配置文件)和Rasterizer阶段(对于 Vulkan® 配置文件)上,指示所选 Draw 事件使用的保守光栅化模式。以下是 DirectX®12 配置文件(用绿色轮廓突出显示)的外观

除了上述功能外,RGP 1.15 还包含许多错误修复和其他较小的改进,包括
请访问 GPUOpen 上的 RGP 产品页面 并下载最新版本进行体验。