关于 GPUView

GPUView (GPUView.exe) 是一个性能分析工具,可帮助开发人员分析 Windows 系统上的 GPU 和 CPU 活动。 使用它诊断图形密集型应用程序中的性能问题,例如游戏或多媒体软件。 它 随 Windows Performance Toolkit (WPT)一起安装,它是 Windows 评估和部署工具包(ADK)的一部分。

  • 视频核心开发人员使用 GPUView 来确定 GPU 和 CPU 在视频硬件上处理 DMA 缓冲区以及所有其他视频处理的性能。
  • 开发人员和测试人员使用 GPUView 显示可能导致异常情况(如故障、准备延迟和同步不佳)的不同事件。

GPUView 可以从事件跟踪日志 (.etl) 文件中读取记录的视频和内核事件,并以图形方式向用户显示数据。

使用 GPUView 的快速入门

若要使用 GPUView,首先需要生成跟踪。 为此,请执行以下操作:

  1. 使用管理员权限打开命令提示符:

    • 在“开始”菜单搜索框中键入“命令提示符”。
    • 右键单击命令提示符图标,然后选择“ 以管理员身份运行”。
  2. 在提升的命令提示符下,导航到 GPUView 目录并键入以下命令:

    Log.cmd

  3. 重现性能问题(不超过 30 秒到 1 分钟)。 然后重新键入相同的命令:

    Log.cmd

    此命令会在 GPUView 目录中生成多个 Windows 事件跟踪 (*.ETL) 文件。 这些不同的流都被合并到一个名为 Merged.etl 的单个文件中,这就是 GPUView 读取的内容。

    注释

    ETL 文件存储在 GPUView 安装目录中(在其中运行 Log.cmd)。 这些文件可能相当大 - 通常为数百 MB 或更多,具体取决于跟踪的持续时间和复杂性。 确保有足够的磁盘空间可用。

  4. 使用 GPUView 查看生成的 Merged.ETL 文件。

  5. 分析完跟踪后,删除 ETL 文件以释放磁盘空间。 文件会随每个跟踪会话一起累积,不会自动清理。

记录事件的一些示例包括:

  • 所有 CPU 上下文切换,包括堆栈跟踪和切换原因。
  • 所有内核模式进入和退出以及堆栈跟踪。
  • DirectX 图形内核记录的所有 GPU 事件,包括所有命令缓冲区提交以及资源创建、销毁、锁定和绑定事件。
  • 图形驱动程序报告的事件,例如命令缓冲区开始和结束时间,以及每个适配器的垂直同步间隔。
  • 许多其他可能影响性能的系统事件,例如页面错误。

还可以使用 XPerf 读取 ETL 文件;但是,它不理解任何特定于 GPU 的事件。 由于这些日志文件可能非常大,因此可以改用 Log m 该命令,这会跳过许多高频率事件并生成较小的跟踪文件。

有关详细信息,请参阅 Matthew Fisher 的网站 Matt's Webcorner,在那里他谈到了创建 GPUView。