关于 GPUView

GPUView (GPUView.exe) 是一个性能分析工具,可帮助开发人员分析 Windows 系统上的 GPU 和 CPU 活动。 它可用于诊断图形密集型应用程序(如游戏或多媒体软件)中的性能问题。

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

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

使用 GPUView 的快速入门

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

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

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

    Log.cmd

  • 重现问题(不超过 30 秒至 1 分钟)。 然后重新键入相同的命令:

    Log.cmd

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

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

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

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

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

可以在 Matthew Fisher 的网站 Matt's Webcorner 上找到更多信息,在那里他谈论了创建 GPUView。