AMD Radeon™ GPU Analyzer
Radeon GPU Analyzer 是一款用于 DirectX®、Vulkan®、SPIR-V™、OpenGL® 和 OpenCL™ 的离线编译器和性能分析工具。
Radeon™ GPU Analyzer (RGA) 的最新版本 2.6 现已发布。
RGA 是一个用于 DirectX®, Vulkan®, SPIR-V™, OpenGL® 和 OpenCL™ 的离线编译器和性能分析工具。RGA 及其他工具可作为 Radeon Developer Tool Suite 的一部分下载。
Radeon GPU Analyzer 2.6 在 GUI 应用程序的反汇编视图中引入了新的 VGPR 压力可视化功能。
本文将简要展示此功能在 RGA GUI 中的样子,以及它如何突出显示 VGPR 压力。
使用 RGA GUI 应用成功构建代码后,您会在反汇编视图中注意到一个名为“VGPR pressure”(VGPR 压力)的新列。

列标题文本格式为“VGPR pressure (used x; allocated: y/256)”,为整个着色器提供摘要,其中“x”表示当前着色器使用的 VGPR 总数,“y”表示分配的 VGPR 总数。
将鼠标悬停在列中的任何单元格上,都会显示一个工具提示,旨在提供该特定指令处活动 VGPR 的摘要,以及如何减少 VGPR 以在该指令处节省一个 VGPR 块的提示。
请注意,VGPR 是以块为单位分配的,这些块的大小各不相同。VGPR 块的大小取决于目标 GPU,并且在某些情况下取决于着色器的特定特征,例如编译时使用的 wave 大小。提示表明需要释放多少 VGPR 才能在该着色器点处释放整个 VGPR 块。

请注意,在生成提示时,该工具将考虑目标 GPU 和相关的着色器特性来确定 VGPR 分配块的大小。
在查看 VGPR 压力列的单元格时,除了表示该指令处活动 VGPR 数量的数值外,您还将看到一个可视化 VGPR 使用情况和 VGPR 块利用率的利用率条。利用率条越空,表示分配的 VGPR 块使用的越少,这意味着需要减少的 VGPR 越少即可释放该块。

上面的截图显示了一个 VGPR 分配块大小为 8 个 VGPR 的着色器。您可以看到,由于每个指令的活动 VGPR 值不同,可视化条的颜色也不同。当活动 VGPR 值接近 0 时,条的颜色会变绿,当值接近 256 时,颜色会变红。
可视化条已满的行(VGPR 使用值为 8 的倍数,如 104、96、88 等)显示了着色器中 VGPR 分配块已完全利用的点。然而,在条部分为空的行中,并非所有分配的 VGPR 都被使用。前面提到的工具提示会告知您需要减少多少 VGPR 才能释放该 VGPR 分配块。
最新版本的 Radeon Memory Visualizer 可作为 Radeon Developer Tool Suite 的一部分下载。