跳转到主要内容
editor 提交于

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

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

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

点击 Analyze Application,如下所示。 该特性支持您浏览二进制转换成希望分析并运行的游戏。 英特尔 GPA monitor 将代码注入游戏之中以提取分析数据。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-893-1-1.png…; alt=""></center>

1. 分析应用窗口

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

我们将捕获轨迹以使用英特尔 GPA 平台分析器进行分析,如下所示。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-894-1-2.png…; alt=""></center>

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

打开英特尔 GPA 系统分析器。 左侧为轨迹列表。 双击捕获的最新轨迹。 轨迹打开后,您会看到几个不同的窗口(如下所示)。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-895-1-3.png…; alt=""></center>

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

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

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

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

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

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

我们将屏幕放大,看看轨迹的细微部分。 点击并拖动(使用鼠标左侧的按钮,然后释放)将这部分放大。 放大后可以获得三个帧,相关数据如下所示。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-896-1-4.png…; alt=""></center>

4. 放大并选择帧
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-897-1-5.png…; alt=""></center>

5. 英特尔 GPA 平台分析器

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

<strong>帧栏</strong>

在帧栏中,您可以查看单独的 GPU 和 CPU 帧计时。 请注意,颜色表示相同的 CPU 和 GPU 帧之间相互关联。 例如,CPU 112 帧的颜色与 GPU 112 帧相同。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-898-1-6.png…; alt=""></center>

6. 英特尔 GPA 平台分析器: GPU 帧
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-899-1-7.png…; alt=""></center>

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

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

<strong>渲染和 GPGPU 栏</strong>

虚线以上的都在 GPU 上执行。 红色交叉线框区域(如下所示)表示当前的调用。 您可以追踪当前某个调用何时产生、何时执行。 您将看到当前调用何时执行,以及 GPU 帧何时结束,这样有助于计算单帧的延迟。 您可以查看 CPU 何时提交当前调用,以及 GPU 何时完成该调用。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-900-1-8.png…; alt=""></center>

<strong>线程面板</strong>

您可以查看线程何时运行,何时需要操作系统切换环境,以及同步化何时进行。 此外,您还可以查看线程上叠加的 GPU 工作,当 GPU 或 CPU 繁忙时谁来帮助建立相关性,并识别工作负载是 CPU 密集型还是 GPU 密集型。 你可以查看各个 DirectX API 调用以及用户定义的调用是否可用。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-901-1-9.png…; alt=""></center>

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

<strong>平台指标</strong>

此处显示的指标是我们在 HUD 分析文件中设定的指标。 如果轨迹由英特尔 GPA 系统分析器提取,指标则为当时英特尔 GPA 系统分析器中的指标。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-902-1-10.pn…; alt=""></center>

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

<strong>统计面板</strong>

该面板与您的选择同步更新。 根据您的选择,该面板可显示 GPU 利用率、OpenCL™ 内核,或用户定义的函数或 DirectX 调用等任务。 该面板还可识别轨迹中部分区域的热点。 例如,如果突出显示某部分,统计面板将会有所变化,如下所示。 您可以查看指定区域的任务时间、GPU 时间和 GPU 队列时间。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-903-1-11.pn…; alt=""></center>

11. 英特尔 GPA 平台分析器: 统计栏
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-904-1-12.pn…; alt=""></center>

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

<strong>图例区域</strong>

您可以关掉几部分,以降低 UI 的复杂程度。 该部分可以通过清空复选框删除。
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-905-1-13.pn…; alt=""></center>

13. 英特尔 GPA 平台分析器: 图例面板
<center><img src="http://intel.eetrend.com/files/2016-03/wen_zhang_/100001223-906-1-14.pn…; alt=""></center>

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

文章来源:
<a href="https://software.intel.com/zh-cn/articles/cpu-bound-offline-analysis-wi…;英特尔开发人员专区

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