跳转到主要内容

英特尔® 图形性能分析器 (GPA) 平台分析器助力 CPU 密集型离线分析

editor 提交于

英特尔® 图形性能分析器(英特尔® GPA) 平台分析器能够在一定时间内使用您的代码显示 CPU 和 GPU.上不同任务的执行情况。 这样可帮助您了解游戏中基于任务的问题,进而优化 CPU 和 GPU 中的计算和渲染任务。 英特尔 GPA 平台分析器利用应用运行过程中收集到的轨迹数据,为您提供代码在所有线程上的执行情况,并关联 CPU 与 GPU 上的工作负载。

之前我们介绍了如何使用面向 DirectX 的英特尔 GPA 帧分析器*进行分析。 本文将逐步介绍如何进行 CPU 密集型离线工作流分析。

使用英特尔® 图形性能分析器平台分析器分析轨迹捕获

点击 Analyze Application,如下所示。 该特性支持您浏览二进制转换成希望分析并运行的游戏。 英特尔 GPA monitor 将代码注入游戏之中以提取分析数据。

1. 分析应用窗口

如果您的应用属于 CPU 密集型应用,请捕获一个轨迹,以便在英特尔 GPA 平台分析器中打开,并对该应用进行分析。 如果属于 GPU 密集型应用,请捕获一个帧。 如果使用英特尔 GPA 系统分析器,请点击摄像头按钮以捕获帧,或点击红色按钮以捕获轨迹。 如果使用 HUD 快捷键,默认 Ctrl+Shift+C 为捕获帧的热键,而 Ctrl+Shift+T 为捕获轨迹的热键。

我们将捕获轨迹以使用英特尔 GPA 平台分析器进行分析,如下所示。

2. 英特尔® GPA 系统分析器

打开英特尔 GPA 系统分析器。 左侧为轨迹列表。 双击捕获的最新轨迹。 轨迹打开后,您会看到几个不同的窗口(如下所示)。

3. 英特尔 GPA 平台分析器:打开轨迹

轨迹加载后,主窗口显示相关时间数据的时间线。

窗口底部显示捕获轨迹时启用并记录的所有指标。

屏幕中间显示捕获轨迹时正在运行的所有线程。

顶部显示 GPU 帧分隔符和 CPU 帧分隔符,以及所出现的任务。

我们来重点看一下 CPU 离线分析。 请注意,轨迹的持续时间大约为 5 秒。 这一数字可在图形监控器的分析部分更改。

我们将屏幕放大,看看轨迹的细微部分。 点击并拖动(使用鼠标左侧的按钮,然后释放)将这部分放大。 放大后可以获得三个帧,相关数据如下所示。

4. 放大并选择帧

5. 英特尔 GPA 平台分析器

放大三个帧后,我们来看看具体的栏。

帧栏

在帧栏中,您可以查看单独的 GPU 和 CPU 帧计时。 请注意,颜色表示相同的 CPU 和 GPU 帧之间相互关联。 例如,CPU 112 帧的颜色与 GPU 112 帧相同。

6. 英特尔 GPA 平台分析器: GPU 帧

7. 英特尔 GPA 平台分析器: CPU 帧

我们可以查看单独的持续时间,也可以计算 CPU 帧启动与 GPU 帧启动时的区别。

渲染和 GPGPU 栏

虚线以上的都在 GPU 上执行。 红色交叉线框区域(如下所示)表示当前的调用。 您可以追踪当前某个调用何时产生、何时执行。 您将看到当前调用何时执行,以及 GPU 帧何时结束,这样有助于计算单帧的延迟。 您可以查看 CPU 何时提交当前调用,以及 GPU 何时完成该调用。

线程面板

您可以查看线程何时运行,何时需要操作系统切换环境,以及同步化何时进行。 此外,您还可以查看线程上叠加的 GPU 工作,当 GPU 或 CPU 繁忙时谁来帮助建立相关性,并识别工作负载是 CPU 密集型还是 GPU 密集型。 你可以查看各个 DirectX API 调用以及用户定义的调用是否可用。

9. 英特尔平台分析器: 线程栏

平台指标

此处显示的指标是我们在 HUD 分析文件中设定的指标。 如果轨迹由英特尔 GPA 系统分析器提取,指标则为当时英特尔 GPA 系统分析器中的指标。

10. 英特尔 GPA 平台分析器: 平台指标栏

统计面板

该面板与您的选择同步更新。 根据您的选择,该面板可显示 GPU 利用率、OpenCL™ 内核,或用户定义的函数或 DirectX 调用等任务。 该面板还可识别轨迹中部分区域的热点。 例如,如果突出显示某部分,统计面板将会有所变化,如下所示。 您可以查看指定区域的任务时间、GPU 时间和 GPU 队列时间。

11. 英特尔 GPA 平台分析器: 统计栏

12. 选择区域和统计面板变化

图例区域

您可以关掉几部分,以降低 UI 的复杂程度。 该部分可以通过清空复选框删除。

13. 英特尔 GPA 平台分析器: 图例面板

14. 图例面板中的 Platform metrics 取消选中后的英特尔 GPA 平台分析器

文章来源:
英特尔开发人员专区