深入理解Intel GPA平台分析器

在现代软件开发中,性能优化是一个永恒的话题。对于游戏开发者、移动应用开发者以及物联网设备开发者来说,如何充分利用硬件资源,提高应用程序的运行效率,是一个至关重要的问题。Intel公司提供了一系列的工具和资源,帮助开发者进行创新和成功。这些资源包括代码样本、技术信息、同行专家的知识,以及各种社区活动,如hackathon、比赛、路演和本地活动。

本文将重点介绍Intel Graphics Performance Analyzers (Intel GPA) 平台分析器,这是一个强大的工具,可以帮助开发者可视化代码在CPU和GPU上的执行情况,从而发现并解决任务中的问题,优化计算和渲染任务。

Intel GPA平台分析器概览

Intel GPA平台分析器使用在应用程序运行期间收集的跟踪数据,提供代码在所有线程上的详细执行分析,并将CPU工作负载与GPU工作负载相关联。这有助于开发者理解基于任务的问题,并优化CPU和GPU上的任务。

在之前的分享中,介绍了如何使用Intel GPA Frame Analyzer for DirectX进行分析。本文将通过一个工作流程的CPU端离线分析,来展示如何使用Intel GPA平台分析器。

使用Intel GPA平台分析器进行跟踪捕获分析

要开始分析,首先需要捕获一个跟踪。如果应用程序主要受CPU限制,那么捕获一个跟踪以进行分析;如果主要受GPU限制,则捕获一个帧。使用Intel GPA System Analyzer时,可以通过点击相机按钮来捕获帧,或者点击红色记录按钮来捕获跟踪。如果使用HUD快捷键,那么默认情况下Ctrl+Shift+C是捕获帧的快捷键,Ctrl+Shift+T是捕获跟踪的快捷键。

以下是使用Intel GPA平台分析器进行跟踪捕获的步骤:

  1. 打开Intel GPA System Analyzer。
  2. 在左侧列表中找到并双击最新的跟踪。
  3. 一旦跟踪打开,将看到不同的窗口,包括时间线、启用的指标、运行的线程、GPU和CPU帧分隔符以及发生的任务。

接下来,将专注于CPU离线分析。注意跟踪的持续时间大约为5秒,这可以在图形监视器的配置文件部分进行修改。

放大和选择帧

为了更详细地查看跟踪,可以放大并选择特定的帧。使用鼠标左键点击并拖动一个区域,然后释放,可以放大到该区域。放大后,可以看到包含数据的三个帧。

Intel GPA平台分析器:查看帧列

在帧列中,可以查看单个GPU和CPU帧的时间。注意颜色与相同的CPU和GPU帧相对应。例如,CPU 112帧与GPU 112帧的颜色相同。

Intel GPA平台分析器:查看渲染和GPGPU列

虚线以上的部分是在GPU上执行的。如下图所示的红色交叉阴影区域是呈现调用。可以从呈现调用的起源追踪到执行时刻。将看到呈现调用何时被执行,以及GPU帧何时完成,这有助于计算单帧延迟。可以看到呈现调用何时由CPU提交,以及何时由GPU完成。

Intel GPA平台分析器:查看线程窗格

可以查看线程何时运行,何时需要操作系统切换上下文,以及何时有同步。此外,还可以看到GPU工作覆盖在线程上,这有助于确定GPU或CPU何时忙碌,识别工作负载是受CPU限制还是GPU限制。还可以查看每个DirectX API调用以及用户定义的调用(如果有的话)。

Intel GPA平台分析器:查看平台指标列

这里显示的指标是在HUD配置文件中设置的指标。如果使用Intel GPA System Analyzer进行跟踪,那么指标就是当时Intel GPA System Analyzer中的指标。

Intel GPA平台分析器:查看统计窗格

这个窗格会随着选择更新。根据选择的内容,这个窗格会显示GPU使用情况、OpenCL内核或任务,例如用户定义的函数或DirectX调用。窗格还可以识别跟踪中某些区域的热点。例如,如果突出显示一个区域,统计窗格会发生变化,如下图所示。可以看到所选区域的任务时间、GPU时间和GPU队列时间。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485