跳至内容

帮助手册

Radeon GPU Analyzer 快速入门

安装和运行 RGA

该工具可在 RGA GitHub releases 页面 下载。

  • Windows:使用 .msi 安装程序或 .zip 存档。对于 Vulkan®,安装程序还将安装 RGA Layer,因此这是推荐的选项。
  • Linux:使用 .tgz 存档。

要运行该应用程序,请运行 RadeonGPUAnalyzerGUI 可执行文件。

启动对话框

图形用户界面已扩展以支持多种 API,因此启动时您将被要求选择默认 API。您可以勾选“不再询问”复选框以始终以所需的模式启动应用程序。

Vulkan® 模式

主页

在主页顶部,您会找到两个选项卡

开始选项卡

在“开始”选项卡中,您可以创建新项目或加载现有项目。

创建 RGA Vulkan® 项目

新的 RGA Vulkan® 模式编译 Vulkan® 管线,其中包含着色器和状态。着色器可以采用 SPIR-V™ 二进制文件的形式,或者,您也可以提供 RGA GLSL 源代码,然后工具会通过前端编译器 (glslang) 处理这些着色器以生成 SPIR-V™ 二进制文件。

为了处理状态,我们定义了 Vulkan® 管线状态的 JSON 表示

  • .gpso 文件格式,用于 Vulkan® 图形管线状态的 VkGraphicsPipelineCreateInfo
  • .cpso 文件格式,用于 Vulkan® 计算管线状态的 VkComputePipelineCreateInfo

您可以将这些文件视为运行时创建 Vulkan® 管线状态的“配方”。要编译您的管线,RGA 会启动一个单独的进程 (名为 VulkanBackend),该进程将创建 Vulkan® 实例,根据配方配置管线状态,并从您的着色器创建 VkShaderModule 对象。

当您在应用程序中创建项目时,会为您生成一个默认的 .gpso / .cpso 文件,其中包含默认状态。默认状态足以编译非常基本的着色器,但对于大多数实际用例,您需要编辑状态以匹配您的着色器(有关更多详细信息,请参阅“管线状态编辑器”部分)。如果您的着色器编译失败,编译过程将回退到使用离线 Vulkan® 模式 (-s vk-offline-spv)。如果发生这种情况,应用程序右下角会显示以下警告指示器。

离线模式产生的 ISA 反汇编和资源使用统计信息精度较低,因此强烈建议调整管线状态以匹配您的着色器,以便编译可以通过驱动程序进行,从而产生最佳结果。

在 Vulkan® 模式的“开始”选项卡中,您有两个选项

  • 创建图形管线
  • 创建计算管线

  • 图形管线项目
  • 可以包含图形管线每个阶段的着色器:顶点、细分控制、细分评估、几何和片段。
  • 最少需要一个顶点着色器才能成功构建管线。
  • 在图形管线项目中,您可以在 UI 中配置 Vulkan® 图形管线状态
  • 计算管线项目
  • 可以包含单个计算着色器阶段。
  • 在计算管线项目中,您可以在 UI 中配置 Vulkan® 计算管线状态

您还可以通过文件菜单创建计算或图形管线,方法是

  • 点击文件 -> “创建新的 Vulkan® 图形管线” (Ctrl+Alt+G)
  • 点击文件 -> “创建新的 Vulkan® 计算管线” (Ctrl+Alt+C)

然后会提示您选择性地重命名您的管线项目

RGA 会使用 yymmdd-hhmmss 的日期时间字符串作为默认名称。勾选“始终使用自动生成的项目名称”复选框,指示 RGA 在不提示重命名的情况下始终使用默认名称。

加载项目

您可以使用 Ctrl+Alt+O 快捷键或点击主页上的“最近”菜单中的某个项目来加载现有项目 (.rga 文件)(请注意,项目类型可以在最近项目链接旁边的符号中看到)。

也可以通过点击“文件 -> ‘打开现有 RGA 项目…’”菜单项来加载项目。

设置选项卡

在“设置”选项卡中,您可以控制全局设置

应用程序设置

应用程序设置视图用于配置与单个 API 模式无关的全局应用程序设置

  • 通用
  • 日志文件位置:RGA 将生成日志文件的文件夹。启动时,RGA 会清理超过 3 天的日志文件。
  • 项目文件位置:RGA 将生成项目文件的文件夹。
  • 始终使用自动生成的项目名称:如果勾选,RGA 在创建新项目时将始终使用自动生成的项目名称,而不会提示重命名。
  • 启动时的默认 API:RGA 将始终进入选定的 API 模式以启动。
  • 主题颜色:“检测操作系统”是默认设置。这将使用系统的颜色主题设置。
  • 反汇编视图
  • 反汇编视图列:默认情况下将显示的列集。
  • 源代码编辑器
  • 字体和字体大小:配置着色器源代码编辑器中使用的默认字体样式和大小。
  • 打开包含文件时使用:选择打开包含文件时启动的默认文本编辑器。
  • 输入文件
  • 关联文件扩展名:选择用于将 RGA 与各种着色器输入源文件关联的文件扩展名集。
默认 Vulkan® 构建设置

  • 通用
  • 目标 GPU

这些是代码将构建的目标架构。您可以点击此项附近的“…”按钮来打开 RGA 的目标 GPU 对话框。在查看目标设备时,我们需要考虑三个术语

  • 架构:GPU 硬件架构的名称,例如 Vega。
  • 计算能力:架构变体的名称。从编译器的角度来看,具有相同计算能力的 GPU 是相同的。因此,RGA 将所有共享相同计算能力的产品名称视为单个目标 GPU。
  • 产品名称:这是 GPU 产品的公开名称,例如“Radeon Instinct MI25”或“Radeon RX Vega”。
  • 预定义宏

预处理器指令,有两种形式

  • X,例如 _WIN32 或 _DEBUG
  • X=Y,例如“RT_NUM=3”

您可以手动输入值,每个指令之间用“;”分隔,或使用专用视图(单击“…”按钮显示)。如果指令包含空格字符,请确保用“”将指令括起来。

  • 附加包含目录

编译器在搜索源文件时将使用的附加路径。

您可以手动输入值,每个路径之间用“;”分隔,或使用专用视图(单击“…”按钮显示)。如果路径包含空格字符,请确保用“”将路径括起来。

  • Vulkan® 选项
  • ICD 位置

Vulkan® ICD 的完整路径。如果提供了此项,RGA 将显式加载提供的 ICD 而不是 Vulkan® 加载程序。如果您希望 RGA 使用较旧或较新的 AMD Vulkan® 驱动程序 (amdvlk64.dll/.so) 来编译您的管线,此设置非常有用。您可以直接在此处浏览文件,RGA 将确保使用该文件而不是系统的默认文件。

  • 启用验证层

启用 Vulkan® 验证层。当构建过程在管线创建阶段或附近失败时,此功能非常有用。如果您的编译在前端阶段失败(GLSL -> SPIR-V™ 或 SPIR-V™ 文本到 SPIR-V™ 二进制),您很可能会在前端编译器 (glslang) 的构建输出中获得有意义的错误消息。但是,如果构建失败发生在更深层次,错误消息将非常有限,因为 AMD 的着色器编译器不提供错误消息。启用验证层可以帮助阐明未正确配置或与您的着色器不匹配的具体管线设置。

  • 其他 glslang 选项

传递给 glslang 的其他选项,用于 Vulkan® 前端编译(例如,“—target-env vulkan1.1 —suppress-warnings”)。您可以在此处传递 glslang 接受的任何选项,rga 在编译您的 GLSL 代码或重新组装您的 SPIR-V™ 二进制文件时会将这些选项传递给 glslang。

  • 使用备用前端编译器包

指向备用编译器二进制文件文件夹的路径。此文件夹中应包含以下可执行文件:glslangValidator、spirv-as、spirv-dis。如果提供,此包将用于代替 RGA 随附的 glslang 包来编译 GLSL 到 SPIR-V、反汇编 SPIR-V™ 二进制文件、重新组装 SPIR-V™ 二进制文件等。

  • 输出二进制文件名

将用于生成的管线二进制 ELF 文件的文件名。

  • 设置命令行

调用 RGA 后端时将传递给它的命令字符串。此命令字符串根据您在 UI 中设置的值动态填充。

构建视图

添加或创建新文件后,RGA 将为您创建一个项目并切换到“构建”视图。要了解如何创建项目,请访问 RGA 的快速入门文档。

构建视图包含 4 个视图

  • 文件菜单
  • 源代码视图
  • 反汇编视图
  • 构建输出视图

文件菜单

使用文件菜单,您可以

  • 通过点击“创建模板 GLSL 文件”来创建一个模板 GLSL 着色器源文件。

  • 通过点击“添加现有 GLSL/SPIR-V 文件”将现有的 SPIR-V™ 二进制文件或 GLSL 源文件添加到您的项目中。

  • 通过点击“管线状态”或使用 F9 快捷键打开管线状态编辑器。

  • 通过点击“构建设置”或使用 F8 快捷键打开项目特定的构建设置。有关构建设置视图的更多详细信息,请参阅“构建设置”部分。

点击着色器阶段文件项将切换到该文件,并在源视图和反汇编视图(如果该文件有任何内容可用)中显示文件的内容。当前项目以黄色突出显示。

用户可以通过点击每个阶段的“+”按钮来添加现有着色器文件或创建一个新的。

用户可以通过将鼠标悬停在项目上并点击删除按钮来从管线的着色器阶段中删除现有文件。

管线状态编辑器

管线状态编辑器提供 Vulkan® 管线状态的树状表示,允许用户编辑图形或计算管线的创建参数。配置项目的管线状态以匹配所需的着色器输入和输出很重要,否则管线可能无法成功编译。

可以通过点击文件菜单中的“管线状态”按钮或使用 F9 键盘快捷键打开管线状态编辑器。

在此视图中可以配置几种创建信息结构,具体取决于项目的管线类型

  • 图形管线
  • VkGraphicsPipelineCreateInfo
  • VkPipelineLayoutCreateInfo
  • VkDescriptorSetLayoutCreateInfo 数组
  • VkRenderPassCreateInfo
  • 计算管线
  • VkComputePipelineCreateInfo
  • VkPipelineLayoutCreateInfo
  • VkDescriptorSetLayoutCreateInfo 数组

可以使用结构名称或值搜索管线状态参数。您可以使用 Ctrl+F (编辑 -> 查找) 在状态树中打开搜索小部件。

如果找到搜索结果,状态树将自动滚动到第一个匹配项。所有搜索结果均以橙色突出显示,当前选定的匹配项以浅灰色突出显示。

使用“上一个”和“下一个”箭头按钮,或 F3 和 Shift+F3 热键,按顺序步进所有匹配项。

也可以在搜索时使用过滤选项

启用此选项进行搜索将过滤状态树,仅显示相关部分

管线状态可以从 RGA 管线状态文件中加载。RGA 将 Vulkan® 管线状态存储在 JSON 文件中

  • .gpso 文件,用于图形管线,包含 VkGraphicsPipelineCreateInfo 的表示
  • .cpso 文件,用于计算管线,包含 VkComputePipelineCreateInfo 的表示

这些文件可以通过 RGA 层(RGA 附带的 Beta 功能)在运行时序列化。有关此功能的更多信息,请参阅“使用 RGA 层”部分。

源代码视图

源代码视图显示文件菜单中当前选定项目的源代码。

在源代码视图的左侧,您会找到行号。

您可以使用 Ctrl+F (编辑 -> 查找) 和 Ctrl+G (编辑 -> 转到…) 来搜索字符串或跳转到特定行。

成功构建后,当反汇编视图与源代码视图一起显示时,您可以双击视图的黑色标题栏进行最大化。您也可以点击右上角的调整大小图标来最大化/最小化视图。

构建输出视图

触发构建时,将启动 RGA 命令行应用程序来执行构建。其输出将流式传输到构建输出视图。

双击顶部的黑色标题栏(或点击其右角的调整大小按钮)将最大化/最小化构建输出视图。

右上角的“清除”按钮将清除视图中的文本。

反汇编视图

所选着色器阶段的反汇编将在右侧的反汇编视图中显示。

有关反汇编视图中可用的一些功能的更多信息,请参阅 反汇编视图 部分。

OpenCL™ 离线模式

主页

在主页顶部,您会找到两个选项卡

开始选项卡

在“开始”选项卡中,您可以创建新项目或加载现有项目。

创建项目

RGA 项目是一个可以包含任意数量的 OpenCL™ 源文件 (.cl) 以及一组构建设置的载体。当您构建项目时,OpenCL™ 源文件将被编译并链接成单个 Code Object 二进制文件。

当您在主页中添加或创建文件时,RGA 将自动为您创建项目。

要添加现有的 .cl 源文件,请使用 Ctrl+O 或点击“开始”部分下的“打开现有 .cl 文件”。

您也可以通过点击“文件 -> ‘打开现有 .cl 文件’”来完成此操作。

类似地,您可以通过创建空的 .cl 文件来创建项目。使用 Ctrl+N 快捷键或点击“创建新的 .cl 文件”。

然后会提示您选择性地重命名您的项目。

RGA 会使用 yymmdd-hhmmss 的日期时间字符串作为默认名称。勾选“始终使用自动生成的项目名称”复选框,指示 RGA 在不提示重命名的情况下始终使用默认名称。

加载项目

您可以使用 Ctrl+Alt+O 快捷键或点击主页上的“最近”菜单中的某个项目来加载现有项目 (.rga 文件)。

也可以通过点击“文件 -> ‘打开现有 RGA 项目…’”菜单项来加载项目。

设置选项卡

在“设置”选项卡中,您可以控制全局设置

应用程序设置

应用程序设置视图用于配置与单个 API 模式无关的全局应用程序设置

  • 通用
  • 日志文件位置:RGA 将生成日志文件的文件夹。启动时,RGA 会清理超过 3 天的日志文件。
  • 项目文件位置:RGA 将生成项目文件的文件夹。
  • 始终使用自动生成的项目名称:如果勾选,RGA 在创建新项目时将始终使用自动生成的项目名称,而不会提示重命名。
  • 启动时的默认 API:RGA 将始终进入选定的 API 模式以启动。
  • 主题颜色:“检测操作系统”是默认设置。这将使用系统的颜色主题设置。
  • 反汇编视图
  • 反汇编视图列:默认情况下将显示的列集。
  • 源代码编辑器
  • 字体和字体大小:配置着色器源代码编辑器中使用的默认字体样式和大小。
  • 打开包含文件时使用:选择打开包含文件时启动的默认文本编辑器。
  • 输入文件
  • 关联文件扩展名:选择用于将 RGA 与各种着色器输入源文件关联的文件扩展名集。
默认 OpenCL™ 构建设置

本节允许您配置 RGA 将使用的默认构建设置。您创建的任何后续项目都将配置为使用该套默认 OpenCL™ 构建设置。然后您可以更改项目特定的项目设置。例如,如果您总是希望您的项目启用 MAD 指令,请在全局 OpenCL™ 构建设置中勾选“启用 MAD 指令”复选框。从那时起创建的任何项目都将启用 MAD 指令。

  • 通用
  • 目标 GPU

这些是代码将构建的目标架构。您可以点击此项附近的“…”按钮来打开 RGA 的目标 GPU 对话框。在查看目标设备时,我们需要考虑三个术语

  • 架构:GPU 硬件架构的名称,例如 Vega。
  • 计算能力:架构变体的名称。从编译器的角度来看,具有相同计算能力的 GPU 是相同的。因此,RGA 将所有共享相同计算能力的产品名称视为单个目标 GPU。
  • 产品名称:这是 GPU 产品的公开名称,例如“Radeon Instinct MI25”或“Radeon RX Vega”。
  • 预定义宏

预处理器指令,有两种形式

  • X,例如 _WIN32 或 _DEBUG
  • X=Y,例如“RT_NUM=3”

您可以手动输入值,每个指令之间用“;”分隔,或使用专用视图(单击“…”按钮显示)。如果指令包含空格字符,请确保用“”将指令括起来。

  • 附加包含目录

编译器在搜索源文件时将使用的附加路径。

您可以手动输入值,每个路径之间用“;”分隔,或使用专用视图(单击“…”按钮显示)。如果路径包含空格字符,请确保用“”将路径括起来。

  • OpenCL™ 选项

本节包含一组可以传递给编译器的 OpenCL™ 选项。

  • 将双精度浮点数视为单精度 (-cl-single-precision-constant)

将双精度浮点数常量视为单精度常量。

  • 将非规范化浮点数冲刷为零 (-cl-denorms-are-zero)

此选项控制如何处理单精度和双精度非规范化数字。如果指定为构建选项,单精度非规范化数字可能会被冲刷为零,如果支持双精度的可选扩展,双精度非规范化数字也可能被冲刷为零。这旨在作为性能提示,如果设备支持单精度(或双精度)非规范化数字,OpenCL™ 编译器可以选择不将非规范化数字冲刷为零。如果设备不支持单精度非规范化数字(即 CL_DEVICE_SINGLE_FP_CONFIG 中未设置 CL_FP_DENORM 位),则此选项对单精度数字无效。如果设备不支持双精度,或者虽然支持双精度但不支持双精度非规范化数字(即 CL_DEVICE_DOUBLE_FP_CONFIG 中未设置 CL_FP_DENORM 位),则此选项对双精度数字无效。此标志仅适用于程序内的标量和向量单精度浮点变量以及这些浮点变量上的计算。它不适用于读写图像对象。

  • 正确舍入单精度浮点除法和平方根 (-cl-fp32-correctly-rounded-divide-sqrt)

指定程序源代码中使用的单精度浮点除法 (x/y 和 1/x) 和平方根是正确舍入的。如果未指定此选项,单精度浮点除法和平方根的最小数值精度如 OpenCL™ 规范第 7.4 节所述。如果为设备指定的 -cl-fp32-correctly-rounded-divide-sqrt 选项与 CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT 在设备的 CL_DEVICE_SINGLE_FP_CONFIG 中未设置,则 clBuildProgram 或 clCompileProgram 将无法为该设备编译程序。

  • 假定严格的别名规则 (-cl-strict-aliasing)

允许编译器假定最严格的别名规则。此选项已弃用,并为与 OpenCL™ 1.0 兼容而添加。

  • 启用 MAD 指令 (-cl-mad-enable)

允许将 a * b + c 替换为 mad。mad 以降低精度计算 a * b + c。例如,某些 OpenCL™ 设备将 mad 实现为在加到 c 之前截断 a * b 的结果。

  • 忽略零的有符号性 (-cl-no-signed-zeros)

允许忽略零的有符号性的浮点运算优化。IEEE 754 算术规定了不同的 +0.0 和 -0.0 值行为,这禁止简化表达式,如 x+0.0 或 0.0*x(即使启用了 -clfinite-math)。此选项意味着零结果的符号不重要。

  • 允许不安全的优化 (-cl-unsafe-math-optimizations)

允许浮点运算优化,这些优化 (a) 假定参数和结果有效,(b) 可能违反 IEEE 754 标准,以及 (c) 可能违反 OpenCL™ 数值合规性要求(如第 7.4 节关于单精度和双精度浮点数,以及第 7.5 节关于边缘情况行为的规定)。此选项包含 -cl-no-signed-zeros 和 -cl-mad-enable 选项。

  • 假定没有 NaN 或无穷大 (-cl-finite-math-only)

允许对浮点算术进行优化,这些优化假设参数和结果都不是 NaN 或 +/- 无穷大。此选项可能违反 OpenCL™ 在单精度浮点数的第 7.4 节、双精度浮点数的第 9.3.9 节以及边缘情况行为的第 7.5 节中定义的数值合规性要求。

  • 激进的数学优化 (-cl-fast-relaxed-math)

设置优化选项 -cl-finite-math-only 和 -cl-unsafe-math-optimizations。这允许对可能违反 IEEE 754 标准和 OpenCL™ 数值合规性要求的浮点算术进行优化,这些要求在规范的单精度和双精度浮点数的第 7.4 节以及边缘情况行为的第 7.5 节中定义。此选项会导致在 OpenCL™ 程序中定义预处理器宏 FAST_RELAXED_MATH

  • 正确舍入单精度浮点除法和平方根 (-cl-fp32-correctly-rounded-divide-sqrt)

指定程序源代码中使用的单精度浮点除法 (x/y 和 1/x) 和平方根是正确舍入的。如果未指定此选项,单精度浮点除法和平方根的最小数值精度如 OpenCL™ 规范第 7.4 节所述。如果为设备指定的 -cl-fp32-correctly-rounded-divide-sqrt 选项与 CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT 在设备的 CL_DEVICE_SINGLE_FP_CONFIG 中未设置,则 clBuildProgram 或 clCompileProgram 将无法为该设备编译程序。

  • 优化级别

设置 OpenCL™ 编译器的优化级别

  • 默认值:编译器默认优化级别
  • —O0:禁用优化
  • —O1:启用最小优化
  • —O2:为速度优化
  • —O3:应用完全优化
  • 替代编译器

默认情况下,RGA 将使用随软件包捆绑的编译器。要使用替代编译器,请提供以下路径

  • 二进制文件文件夹

指向替代编译器二进制文件文件夹的路径。在此文件夹中应包含以下可执行文件:clang、lld、llvm-objdump、llvm-readobj。

  • 包含文件夹::指向替代编译器头文件文件夹的路径。指定文件夹应包含 opencl-c.h 头文件。

  • 库文件夹::指向替代编译器 OpenCL™ 设备库文件夹的路径。在指定文件夹中应包含以下位码文件:irif.amdgcn.bc、ockl.amdgcn.bc、oclc_correctly_rounded_sqrt_off.amdgcn.bc、oclc_correctly_rounded_sqrt_on.amdgcn.bc、oclc_daz_opt_off.amdgcn.bc、oclc_daz_opt_on.amdgcn.bc、oclc_finite_only_off.amdgcn.bc、oclc_finite_only_on.amdgcn.bc、oclc_isa_version_900.amdgcn.bc、oclc_isa_version_901.amdgcn.bc、oclc_isa_version_902.amdgcn.bc、oclc_unsafe_math_off.amdgcn.bc、oclc_unsafe_math_on.amdgcn.bc、ocml.amdgcn.bc、opencl.amdgcn.bc

  • 设置命令行

调用 RGA 后端时将传递给它的命令字符串。此命令字符串根据您在 UI 中设置的值动态填充。

  • 其他 clang 选项

clang 编译器的其他选项。例如,使用 -Weverything 启用所有诊断。

构建视图

添加或创建新文件后,RGA 将为您创建一个项目并切换到“构建”视图。要了解如何创建项目,请访问 RGA 的快速入门文档。

构建视图包含 4 个视图

  • 文件菜单
  • 源代码视图
  • 反汇编视图
  • 构建输出视图

文件菜单

使用文件菜单,您可以

  • 通过单击“添加文件”或使用 Ctrl+O 快捷键将现有源文件添加到项目中

  • 通过单击“创建文件”或使用 Ctrl+N 快捷键创建新的源文件

  • 通过点击“构建设置”或使用 F8 快捷键打开项目特定的构建设置。有关构建设置视图的更多详细信息,请参阅“构建设置”部分。

当菜单中有多个文件项时,单击文件项会将焦点切换到该文件,并在源代码视图和反汇编视图(如果该文件有任何内容)中显示文件内容。当前项以黄色突出显示。

用户可以通过将鼠标悬停在项目项上并单击删除按钮来删除项目中的现有文件。

源代码视图

源代码视图显示文件菜单中当前选定项目的源代码。

在源代码视图的左侧,您会找到行号。

您可以使用 Ctrl+F (编辑 -> 查找) 和 Ctrl+G (编辑 -> 转到…) 来搜索字符串或跳转到特定行。

成功构建后,当反汇编视图与源代码视图一起显示时,您可以双击视图的黑色标题栏进行最大化。您也可以点击右上角的调整大小图标来最大化/最小化视图。

构建输出视图

触发构建时,将启动 RGA 命令行应用程序来执行构建。其输出将流式传输到构建输出视图。

双击顶部的黑色标题栏(或点击其右角的调整大小按钮)将最大化/最小化构建输出视图。

右上角的“清除”按钮将清除视图中的文本。

反汇编视图

相关内核的反汇编将在右侧的反汇编视图中显示。突出显示的行与左侧源代码视图中的当前行相关联。

有关反汇编视图中可用的一些功能的更多信息,请参阅 反汇编视图 部分。

二进制分析模式

主页

在主页顶部,您会找到两个选项卡

开始选项卡

在“开始”选项卡中,您可以加载代码对象二进制文件或加载现有的 RGA 项目。

加载代码对象二进制文件

在二进制分析模式下,RGA 项目是包含单个代码对象二进制文件的载体。

当您在主页中加载代码对象二进制文件时,RGA 会自动为您创建项目。

要加载现有的代码对象文件,请使用 Ctrl+O 或在“开始”部分下单击“加载代码对象二进制文件”

您也可以通过单击“文件”->“加载代码对象二进制文件”来实现。

此外,在二进制分析模式下,您还可以将现有的代码对象拖放到开始页面上的 RGA 窗口中。

RGA 将使用 yymmdd-hhmmss 日期时间字符串作为项目的默认名称。

加载项目

您可以使用 Ctrl+Alt+O 快捷键或点击主页上的“最近”菜单中的某个项目来加载现有项目 (.rga 文件)。

也可以通过点击“文件 -> ‘打开现有 RGA 项目…’”菜单项来加载项目。

设置选项卡

在“设置”选项卡中,您只能控制全局设置

应用程序设置

应用程序设置视图用于配置与单个 API 模式无关的全局应用程序设置

  • 通用
  • 日志文件位置:RGA 将生成日志文件的文件夹。启动时,RGA 会清理超过 3 天的日志文件。
  • 项目文件位置:RGA 将生成项目文件的文件夹。
  • 始终使用自动生成的项目名称:如果勾选,RGA 在创建新项目时将始终使用自动生成的项目名称,而不会提示重命名。
  • 启动时的默认 API:RGA 将始终进入选定的 API 模式以启动。
  • 主题颜色:“检测操作系统”是默认设置。这将使用系统的颜色主题设置。
  • 反汇编视图
  • 反汇编视图列:默认情况下将显示的列集。

构建视图

加载现有代码对象二进制文件后,RGA 会为您创建一个项目并切换到“构建”视图。要了解如何加载现有项目,请访问 RGA 的快速入门文档。

构建视图包含 3 个视图

  • 文件菜单
  • 反汇编视图
  • 构建输出视图

文件菜单

单击代码对象项中的另一个内核名称或管道阶段会将焦点切换到该内核或阶段,并在反汇编视图中显示其内容(如果该文件有任何内容)。当前项以黄色突出显示。

用户可以通过将鼠标悬停在项目项上并单击删除按钮来删除项目中的现有文件。

一旦项目为空,可以通过单击文件菜单中的“加载代码对象二进制文件”按钮将另一个现有的代码对象二进制文件加载到项目中。或者,您也可以通过单击“文件”->“加载代码对象二进制文件”来实现。

构建输出视图

当加载代码对象二进制文件时,会自动触发二进制分析,并且 RGA 命令行应用程序将被启动以执行构建。其输出将被流式传输到“构建输出”视图。

双击顶部的黑色标题栏(或点击其右角的调整大小按钮)将最大化/最小化构建输出视图。

右上角的“清除”按钮将清除视图中的文本。

反汇编视图

相关内核或管道阶段的反汇编将在右侧的反汇编视图中显示

有关反汇编视图中可用的一些功能的更多信息,请参阅 反汇编视图 部分。

如何操作…

查看应用程序版本信息和检查更新

使用 Ctrl+F1 快捷键或单击“帮助”->“关于”菜单项。这将显示“关于”对话框。

除了 RGA 应用程序的版本号和构建日期外,“关于”对话框还显示位于 GUI 应用程序文件夹中的 RGA 命令行可执行文件的版本和构建日期。这使您可以查看 GUI 应用程序正在使用的 RGA 命令行可执行文件的详细信息。将来,您可能希望在运行 GUI 应用程序之前替换命令行可执行文件,以实现即插即用(只要您的 RGA 命令行可执行文件的版本为 2.0 或更高版本,即可允许)。

要更新 RGA,请单击“检查更新”按钮,然后按照说明获取最新更新。

切换 API 模式

API 模式开关用于在 OpenCL™ 离线、Vulkan® 和二进制分析模式之间切换 GUI。当前模式显示在 RGA 标题栏中,并且也由应用程序视图和状态栏的颜色方案指示(绿色 = OpenCL™ 模式,红色 = Vulkan® 模式,紫色 = 二进制分析模式)。

加载现有 RGA 项目文件时,选定的 API 模式将自动切换到所需模式。也可以在 GUI 内以下位置手动切换 API 模式

  • 主窗口左下角的模式切换控件(未加载项目时)。

  • 在应用程序的“设置”选项卡视图下的“常规”部分内。

查找项目文件和输出文件夹

RGA 项目 (.rga) 文件和构建构件在当前用户操作系统的“文档”文件夹下名为“RadeonGPUAnalyzer”的文件夹中生成。

构建项目

要构建已加载的项目,请从文件菜单中选择“构建”->“构建项目”。或者,也可以使用键盘快捷键 Ctrl+Shift+B。

加载现有项目

有五种方法可以加载现有项目

  1. 在“开始”选项卡中,在“最近”列表中找到您的项目并单击它。

  1. 在“开始”选项卡中的“最近”部分下,单击“从资源管理器打开 .rga 文件…”并选择一个项目文件。

  1. 使用键盘快捷键 Ctrl+Alt+O。

  1. 选择“文件”->“打开现有 RGA 项目”。

  1. 将现有的 RGA 项目文件 (.rga) 拖放到开始页面上的 RGA 窗口中。

更改项目的构建设置

通过单击“构建设置”或使用 F8 快捷键打开项目特定的构建设置。有关构建设置选项的更多详细信息,请参阅“默认 OpenCL™ 构建设置”部分。

重命名项目

双击文件菜单顶部(左侧面板)的项目名称。

Vulkan® 模式

编辑管道状态

单击“管道状态”按钮将打开管道状态编辑器。

启用验证层

单击“构建设置”按钮将打开构建设置。然后勾选“启用验证层”以启用验证层。

使用替代前端编译器

单击“构建设置”按钮将打开构建设置。然后可以在文本框中添加替代前端编译器的位置,或使用文本框旁边的浏览按钮在文件系统中搜索。

使用 RGA 层(Beta 功能)

RGA Vulkan® 层,或者全称“VK_LAYER_RGA_pipeline_extraction”,是一个隐式 Vulkan® 层。这意味着您可以在不更改 Vulkan® 应用程序源代码的情况下启用它。要使用 RGA 层,请执行以下步骤

安装

要在您的计算机上安装 RGA Vulkan® 层

  • Windows:下载并运行 RGA .msi 安装程序,然后按照步骤操作 - 这将在您的计算机上安装完整的 RGA 包:GUI 应用程序、命令行工具和 RGA 层。
  • Linux:下载并解压 .tgz 存档(tar -zxvf <archive name>)。要安装该层,请 cd 到层子文件夹并运行 rga_layer_install 脚本。
使用该层
  1. 设置以下环境变量
  • RGA_LAYER_OUTPUT_PATH

此环境变量定义了 RGA 层将转储其输出文件的输出文件夹(确保该文件夹存在)。示例(Windows):SET RGA_LAYER_OUTPUT_PATH=C:\RGALayerOutput\bloom

  • RGA_LAYER_SPECIFIC_PIPELINE(可选)

此环境变量提供了一个分号分隔的字符串列表,表示要序列化的管道的名称(名称可以使用 Vulkan® VK_EXT_debug_marker 扩展设置)。如果定义了此环境变量,该层将仅序列化名称包含在列表中的管道,而跳过列表中未包含的任何管道。示例(Windows):SET RGA_LAYER_SPECIFIC_PIPELINE=blurVert;blurHorz

在这种情况下,该层将仅序列化名称为“blurVert”或“blurHorz”的管道。所有其他管道都将被忽略。

  • ENABLE_RGA_PIPELINE_EXTRACTION_LAYER=1

此环境变量设置为 1 时,将激活 RGA 层。如果未定义此环境变量或其值不是 1,则 Vulkan® 加载器将忽略 RGA 层。

  1. 使用上述设置的环境变量运行您的 Vulkan® 应用程序。关闭应用程序后,该层将在 RGA_LAYER_OUTPUT_PATH 中生成输出文件。输出文件的命名约定如下
  • .gpso 文件:包含 Vulkan® 图形管道的管道状态的 JSON 文件
  • .cpso 文件:包含 Vulkan® 计算管道的管道状态的 JSON 文件
  • .spv 文件:链接到管道的 SPIR-V™ 二进制文件 截获的管道按写入磁盘的顺序从 1 到 N 进行枚举。SPIR-V™ 文件和每个管道的管道状态具有相同的名称前缀

  1. 现在您拥有在 RGA 中加载 Vulkan® 应用程序的管道并对其进行分析所需的一切,以了解 AMD GPU 在运行时真正发生的情况。
对 RGA 层的故障排除
  1. RGA 层支持以下可选环境变量以协助调试和故障排除
  • RGA_LAYER_LOG_ENABLE=1

当此环境变量设置为 1 时,RGA 层将在 RGA_LAYER_OUTPUT_PATH 写入日志文件。

  1. 如果 RGA 层未能生成任何输出文件,请按照以下清单进行检查
  • RGA_LAYER_OUTPUT_PATH 已定义,并且文件夹存在且有效。
  • RGA_LAYER_LOG_ENABLE 已定义并设置为 1。
  • Windows:打开 regedit 并确保 RGA 清单文件的完整路径列在 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\Vulkan\ImplicitLayers 下。同时,请确保路径同时包含该层的清单(JSON)以及该层的 .dll。
  • Linux:确保该层的清单(JSON)文件和 .so 文件位于 /usr/share/vulkan/implicit_layer.d。如果不是这种情况,请运行 rga_layer_install 脚本。
使用 RGA 层启动器(仅限 Windows)

RGA 层启动器是一款仅限 Windows 的应用程序,可用于简化启动 Vulkan® 应用程序时启用 RGA 的过程。

  1. 启动 RGA 层启动器应用程序,并提供目标 Vulkan® 应用程序的详细信息。

  2. 配置层设置

    • 输出目录是该层写入其输出文件的位置
    • 管道名称 [可选]:提供一个分号分隔的字符串列表,表示要序列化的管道的名称(名称可以使用 Vulkan® VK_EXT_debug_marker 扩展设置)。如果定义了此环境变量,该层将仅序列化名称包含在列表中的管道,而跳过列表中未包含的任何管道。

    示例 1:blurVert;blurHorz(仅拦截名称为 blurVert 或 blurHorz 的管道,忽略所有其他管道)示例 2:blurVert(仅拦截名称为 blurVert 的管道,忽略所有其他管道)

OpenCL™ 离线模式

查找代码对象二进制文件和构建构件

右键单击反汇编视图,然后单击“在资源管理器中显示反汇编文件”。

使用替代编译器

默认情况下,RGA 将使用随软件包捆绑的编译器。您可以使用支持 AMDGPU 目标的替代 LLVM 基础的 OpenCL™ 编译器,在构建设置中提供以下路径

  • 二进制文件文件夹::指向替代编译器二进制文件文件夹的路径。在此文件夹中应包含以下可执行文件:clang、lld、llvm-objdump、llvm-readobj。

  • 包含文件夹::指向替代编译器头文件文件夹的路径。指定文件夹应包含 opencl-c.h 头文件。

  • 库文件夹::指向替代编译器 OpenCL™ 设备库文件夹的路径。在指定文件夹中应包含以下位码文件:irif.amdgcn.bc、ockl.amdgcn.bc、oclc_correctly_rounded_sqrt_off.amdgcn.bc、oclc_correctly_rounded_sqrt_on.amdgcn.bc、oclc_daz_opt_off.amdgcn.bc、oclc_daz_opt_on.amdgcn.bc、oclc_finite_only_off.amdgcn.bc、oclc_finite_only_on.amdgcn.bc、oclc_isa_version_900.amdgcn.bc、oclc_isa_version_901.amdgcn.bc、oclc_isa_version_902.amdgcn.bc、oclc_unsafe_math_off.amdgcn.bc、oclc_unsafe_math_on.amdgcn.bc、ocml.amdgcn.bc、opencl.amdgcn.bc

更改主题颜色

RGA 现在支持在深色和浅色主题之间切换。

  1. 导航到“设置”选项卡的“应用程序设置”部分,然后选择颜色主题下拉菜单。

  1. “检测操作系统”是默认选项,将使用系统的颜色主题设置。“浅色”主题使用浅色背景和深色文本,而在“深色”主题下,RGA 将具有深色背景和浅色文本。
  2. 设置颜色主题并保存后,您将被提示重新启动应用程序。如果未重新启动应用程序,并非所有 UI 元素都会更新以反映新的颜色主题。

键盘快捷键

RGA 提供多种键盘快捷键以方便无鼠标操作。

Action

快捷键

通用

退出 RGA

Alt+F4

关于

Ctrl+F1

返回主页

Ctrl+Alt+H

打开现有的 RGA 项目

Ctrl+Alt+O

帮助手册

F1

查找下一个 & 查找上一个

F3 & Shift+F3

构建设置

F8

管道状态

F9

在主页选项卡之间导航

Ctrl+Tab & Ctrl+Shift+Tab

导航设置选项卡视图

Ctrl+上/下箭头

构建视图

查找

Ctrl+F

转到(源代码行)

Ctrl+G

最大化/最小化构建视图中的视图

Ctrl+R

保存文件

Ctrl+S

构建项目

Ctrl+Shift+B

取消构建

Ctrl+Shift+T

在构建视图中循环浏览各种视图

Ctrl+Tab & Ctrl+Shift+Tab

在构建视图中循环浏览各种小部件

Tab & Shift+Tab

反汇编视图

查找

Ctrl+F

转到(源代码行)

Ctrl+G

显示/隐藏 ISA 代码块

Ctrl+右 & Ctrl+左

设置视图

恢复默认设置

Ctrl+R

Vulkan® 模式

创建新的 Vulkan® 计算管道

Ctrl+Alt+C

创建新的 Vulkan® 图形管道

Ctrl+Alt+G

OpenCL™ 模式

创建新的 .cl 文件

Ctrl+N

打开现有的 .cl 文件

Ctrl+O

二进制分析模式

加载现有的代码对象二进制文件

Ctrl+O

© . This site is unofficial and not affiliated with AMD.