使用 Intel® 图形性能分析器 (GPA) - Platform Analyzer 进行 CPU 密集型离线分析





0/5 (0投票)
在本文中,我们将详细介绍如何对工作流进行 CPU 绑定的离线分析。
Intel® Developer Zone 提供跨平台应用程序开发工具和操作指南、平台和技术信息、代码示例以及同行专业知识,帮助开发人员创新和取得成功。加入我们的 Android、物联网、Intel® RealSense™ 技术和 Windows 社区,下载工具、获取开发套件、与志同道合的开发人员分享想法,并参与黑客松、竞赛、路演和本地活动。
Intel® 图形性能分析器 (Intel® GPA) Platform Analyzer 可随时间推移在整个平台上可视化您代码中任务的执行配置文件,涵盖 CPU 和 GPU。这有助于您了解游戏中的基于任务的问题,使您能够优化 CPU 和 GPU 上的计算和渲染任务。Intel GPA Platform Analyzer 使用在应用程序运行时收集的跟踪数据,提供对代码在所有线程上的执行情况的详细分析,并将 CPU 工作负载与 GPU 工作负载进行关联。
先前,我们分享了如何使用 Intel GPA Frame Analyzer for DirectX* 进行分析。在本文中,我们将详细介绍如何对工作流进行 CPU 绑定的离线分析。
使用 Intel® 图形性能分析器 Platform Analyzer 分析跟踪捕获
单击下图中所示的分析应用程序。此功能允许您浏览要分析的游戏的二进制文件并运行它。Intel GPA monitor 将代码注入游戏以提取性能分析数据。
如果您的应用程序是 CPU 绑定的,请捕获跟踪以便在 Intel GPA Platform Analyzer 中打开并对该应用程序进行性能分析。如果应用程序是 GPU 绑定的,请捕获帧。如果您使用的是 Intel GPA System Analyzer,请单击相机按钮捕获帧,或单击红色录制按钮捕获跟踪。如果您使用的是 HUD 快捷键,默认情况下,Ctrl+Shift+C 是帧的热键,Ctrl+Shift+T 是跟踪捕获的热键。
我们将进行一次跟踪捕获,以便在 Intel GPA Platform Analyzer 中进行分析,如下所示。
打开 Intel GPA Platform Analyzer。左侧是跟踪列表。双击最近捕获的跟踪。跟踪打开后,您会看到几个不同的窗口,如下所示。
跟踪加载后,主窗口将显示所有数据相对于时间的折线图。
-
在窗口底部,您可以看到在捕获跟踪时启用并记录的所有指标。
-
在屏幕中央,您可以看到捕获时正在运行的所有线程。
-
在顶部,您可以看到 GPU 帧分隔符和 CPU 帧分隔符以及正在发生的任务。
让我们专注于 CPU 离线分析。请注意,跟踪的时长约为 5 秒。这可以在图形监控器的配置文件部分进行修改。
让我们放大以查看此跟踪的较小部分。单击并拖动一个区域(使用鼠标左键然后释放)即可放大该区域。放大以获取三个帧,其中包含数据,如下所示。
现在我们已经放大到三个帧,让我们看一下各个列。
帧列
在帧列中,您可以查看单个 GPU 和 CPU 帧的时间。请注意,颜色与相同的 CPU 和 GPU 帧相关联。例如,CPU 112 帧与 GPU 112 帧的颜色相同。
我们可以查看单个持续时间,还可以计算 CPU 帧开始时间和 GPU 帧开始时间之间的差值。
渲染和 GPGPU 列
虚线以上的所有内容都在 GPU 上执行。如下所示的红色交叉阴影区域是 present 调用。您可以跟踪 present 调用从其开始到其执行。您将看到 present 调用何时执行以及 GPU 帧何时完成,这有助于计算单帧延迟。您可以查看 CPU 何时提交 present 调用以及 GPU 何时完成 present 调用。
线程窗格
您可以查看线程何时运行、操作系统何时需要切换上下文以及何时发生同步。此外,您还可以看到叠加在线程上的 GPU 工作,这有助于关联 CPU 或 GPU 何时繁忙,从而确定工作负载是 CPU 绑定还是 GPU 绑定。您可以查看 DirectX API 调用以及用户定义的调用(如果可用)。
平台指标
此处显示的指标是我们为 HUD 配置文件设置的指标。如果使用 Intel GPA System Analyzer 捕获跟踪,则指标是在当时 Intel GPA System Analyzer 中的指标。
统计信息窗格
此窗格将更新,并与您的选择同步。根据您的选择,此窗格将显示 GPU 使用率、OpenCL™ 内核或任务,例如用户定义的函数或 DirectX 调用。该窗格还可以识别跟踪中特定区域的热点。例如,如果您突出显示一个区域,统计信息窗格将如下所示更改。您可以看到所选区域的任务时间、GPU 时间和 GPU 队列时间。
图例区域
您可以关闭某些部分以简化用户界面。您可以清除复选框以删除该部分。
关于作者
Praveen Kundurthy 在英特尔® 软件和服务事业部工作。他拥有计算机工程硕士学位。他的主要兴趣是移动技术、Microsoft Windows* 和游戏开发。
Intel 技术的功能和优势取决于系统配置,可能需要启用硬件、软件或服务激活。性能因系统配置而异。请咨询您的系统制造商或零售商,或访问 intel.com 了解更多信息。
本文档不授予任何知识产权的许可(明示或暗示,禁止反言或以其他方式)。
Intel 不对任何明示或暗示的保证负责,包括但不限于适销性、特定用途的适用性以及非侵权的暗示保证,以及因履约过程、交易过程或商业用途而产生的任何保证。
本文档包含有关正在开发的产品、服务和/或流程的信息。此处提供的所有信息如有更改,恕不另行通知。请联系您的 Intel 代表以获取最新的预测、计划、规格和路线图。
所描述的产品和服务可能包含称为勘误的缺陷或错误,这可能导致与公布的规格不符。当前的已特性化勘误可应要求提供。
可通过致电 1-800-548-4725 或访问 www.intel.com/design/literature.htm 获取订购号并在此文档中引用的文档副本。
Intel 和 Intel 标志是 Intel Corporation 在美国和/或其他国家/地区的商标。
*其他名称和品牌可能被声明为他方财产
© 2015 Intel Corporation。
OpenCL 和 OpenCL 徽标是 Apple Inc. 的商标,已获得 Khronos 许可使用。