AMD Radeon™ GPU Profiler
AMD RGP 让您能够前所未有地深入了解 GPU。轻松分析图形、异步计算使用情况、事件计时、管线停顿、屏障、瓶颈和其他性能低效之处。
随着 2023 年接近尾声,我们很高兴推出 Radeon GPU Profiler (RGP) 的 2.0 版本。
本次发布将版本从 1.x 升级到 2.x 的一个重要原因是引入了波前占用率视图中的新用户界面。虽然这个核心视图的各项功能基本保持不变,但为了使其看起来有所不同,进行了一些关键性的修改。这些修改的动机是双重的。首先,我们希望在查看 RGP UI 中提供的关键数据时,最大化利用屏幕空间。其次,我们希望让用户对视图的外观有更多的控制权,并允许视图根据您的需求进行配置。
为此,以下是 RGP 2.0 中新的波前占用率 UI 的默认外观:
您可能首先会注意到,每个行的组合框和图例已从行上方和下方移到了行的左侧。这使得我们能够最大化该视图的垂直屏幕空间。此外,左侧的整个图例视图都可以隐藏。当隐藏此侧面板时,视图的外观如下:
正如您所见,我们现在可以最大化用于实际分析数据的使用空间。
此外,您还可以通过隐藏或重新排列构成视图的各个行来自定义波前占用率窗格的布局。可以通过单击行左侧的 **X** 按钮来隐藏单个行。因此,如果您决定只关注波前和事件计时数据,则可以隐藏所有计数器行,以免它们干扰您的视图。但是请注意,您不能隐藏所有视图 - 如果只有一个视图可见,则其关闭按钮将处于禁用状态,防止您隐藏最后一个可见的视图。
隐藏视图后,可以使用视图顶部的 **Views** 组合框来重新显示它:
此组合框也可用于隐藏一个或多个视图。与单击每个视图左侧的关闭按钮类似,您也可以在组合框中取消选中一个视图来隐藏它。
如前所述,还可以通过拖放来重新排序各个行。只需将鼠标悬停在视图左侧的拖动按钮上。执行此操作时,一个虚线蓝色矩形将突出显示您将要移动的视图。
如果您单击鼠标左键,您可以将选定的行拖动到视图内的新位置。在拖动时,一条实线蓝线将出现,指示当您释放鼠标按钮时,拖动的视图将被插入到何处。
一旦您对新位置满意,只需释放鼠标按钮,视图就会插入到指示的位置。
用户定义的布局将在 RGP 会话之间持久存在,因此,如果您自定义了视图并关闭了 RGP,则下次打开 RGP 时将自动加载该布局。
如果您想恢复默认布局,只需单击 **Views** 组合框旁边的 **Restore to default** 按钮即可。这是以下截图中的按钮:
我们有一些令人兴奋的计划,将在未来的 RGP 版本中进一步利用这个新的用户界面。敬请关注 GPUOpen,了解这些功能发布时的信息。
RGP 2.0 的另一项新 UI 功能是引入了暗黑模式支持。现在,“Themes and Colors”设置页面中提供了一个新的 **Color Theme** 设置。您可以选择 **Light**(浅色)、**Dark**(暗黑)或 **Detect OS**(检测操作系统)设置。
浅色主题是自 RGP 1.0 版本以来一直使用的传统外观和感觉。暗黑主题是新的暗黑模式,在整个 RGP 用户界面中使用更暗的背景色。**Detect OS** 设置将导致 RGP 跟随主机操作系统中设置的主题,因此如果操作系统设置为使用暗黑主题,RGP 也将使用暗黑主题。如果无法检测到操作系统设置,RGP 将默认使用浅色主题。在 Windows 上更改 RGP 的颜色主题设置时,系统会提示您重启 RGP。这是因为在重启后,用户界面的部分内容可能不会自动更新到新的颜色主题。
以下是使用暗黑主题时 RGP 的外观示例:
除了上述新的 UI 功能外,我们还很高兴地介绍一项提供光线追踪管线中线程发散情况洞察的附加功能。在捕获过程中启用此功能(稍后详述)时,光线追踪着色器表将包含一个额外的列,用于指示进入相应着色器时活动车道的平均数量。这个新列,标题为 **Average active lanes**(平均活动车道),可以在以下截图中看到:
将鼠标悬停在此列的单元格上时,将显示一个工具提示,显示各个调用的活动车道数量分布。
这些数据是通过在运行时对着色器函数进行仪器化以采样活动波前的数量来收集的。此仪器化在 Radeon Developer Panel 的 **Profiling** Workflow 视图中启用。此复选框可以在以下截图中看到。除了启用此复选框之外,还必须在 **Applications** 视图的 **Profiling** 选项卡中启用指令跟踪数据收集。
关于此功能的三个最后说明:
我们还为 HIP 开发人员提供了一项新功能。在 RGP 1.11 版本中,我们为光线追踪管线的 **Instruction timing**(指令计时)窗格添加了对 **Call targets**(调用目标)可视化的支持。您可以在 此处了解更多关于该支持的信息。在此版本中,我们将此功能扩展到也支持调用其他函数的 HIP 内核。当查看此类内核的指令计时数据时,如果选择了命中次数非零的 **s_swappc** 或 **s_setpc** 指令,则 Instruction timing(指令计时)侧面板中的 **Call targets**(调用目标)表将被填充。
虽然罕见,但我们偶尔会遇到包含大量事件的配置文件。实际上,事件数量之多以至于 RGP 拒绝加载该配置文件。在此版本中,我们已取消了配置文件中事件数量的限制。如果您发现自己遇到了捕获了大量事件的帧,则在尝试将配置文件加载到 RGP 中时,不应再看到错误消息。在此版本中,即使配置文件包含数十万个事件,RGP 也应该能够正确加载。
与所有 RGP 版本一样,本次发布也进行了大量的错误修复和其他小型增强。我们邀请您前往 gpuopen.com 上的产品页面 下载最新版本进行体验。
我们衷心希望您喜欢这个新版本的 Radeon GPU Profiler。如果您对新的用户界面或 RGP 中的任何其他功能有任何反馈,请访问 GitHub 上的产品页面,并使用 Issues** 列表分享您的反馈。