使用 Windows Machine Learning 进行应用性能分析

性能分析是一个旨在帮助开发人员和 AI 工程师诊断进程的 CPU、GPU 和 NPU 资源使用情况、在不同执行提供程序上对 ONNX 模型进行性能分析以及捕获 Windows ML 事件的工具。

在本文中,你将了解如何开始性能分析,以及如何检查资源使用情况视图和事件视图。

前提条件

在应用启动时进行性能分析

在此模式下,性能分析工具会分析启动且正在发送 Windows ML 事件的下一个应用。此选项非常适合测试只运行一次的应用。在这种情况下,你需启动性能分析,然后运行应用,接着就会显示资源使用情况。

Screenshot that shows how to start by the next session

该工具开始对新启动的应用进行性能分析。这意味着若要对 Python 笔记本进行性能分析,如果内核已经在运行,则需要重新启动内核才能为其开始性能分析。仅启动新笔记本不会自动开始性能分析。

重要事项

要接收 Windows ML 事件,需要以管理员模式运行该工具。如果未以管理员模式启动 VS Code,则会显示一条通知,引导你重新启动 VS Code。你需要关闭所有其他 VS Code 实例,以便以管理员模式成功重启。 显示以管理员模式重新启动 VS Code 的通知的屏幕截图

对运行中的应用进行性能分析

在此模式下,性能分析工具开始对已在运行的应用进行性能分析。你可以根据以下条件选择进程:

  • 进程 ID:例如 12345
  • 进程名称:通常是不带 .exe 的应用名称。将对第一个匹配项进行性能分析。
  • 进程路径:例如 c:\Users\xxx\Inference.Service.Agent.exe。将对第一个匹配项进行性能分析。

此选项非常适合对已在运行且无法出于性能分析目的将其重启的应用进行性能分析。

Screenshot that shows how to start by process id or name

对 ONNX 模型进行性能分析

在此模式下,性能分析工具开始在指定的持续时间内对目标执行提供程序 (EP) 上的 ONNX 模型文件进行性能分析。你可以在其运行的同时查看资源使用情况。

此选项非常适合在不同的 EP 上对 ONNX 模型进行性能分析。

Screenshot that shows how to start by model file

性能分析完成后,会显示一条通知,引导你打开或保存报告。

Screenshot that shows the succeeded notification

该报告包含有关 ONNX 模型的详细性能分析统计信息和结果。

Screenshot that shows the report data

每个操作的基准测试时间

如果启用了操作 (OP) 性能分析,将生成操作级别的数据,以便你更详细地检查模型。

Screenshot that shows the succeeded notification with OP profiling enabled

报告包含每个操作的详细延迟。

Screenshot that shows the report data for each OP

为 Intel (OpenVINO) EP 启用操作级别的数据

若要在 Intel (OpenVINO) EP 上运行时查看操作级别的数据,请执行以下操作:

  1. 下载 Intel® Unified Telemetry
  2. 将内容解压到类似 C:\Users\XXX\Downloads\ut-tool-ext-v0.2.0-beta1.1 的路径
  3. 在 Foundry Toolkit 设置中,将 Model Lab Intel Unified Telemetry Path 设置为 C:\Users\XXX\Downloads\ut-tool-ext-v0.2.0-beta1.1\bin

Intel Unified Telemetry 需要管理员权限才能运行。如果 VS Code 未以管理员身份运行,性能分析将提示提升权限并打开显示其进度的新的终端窗口。在进程完成之前,请勿关闭此窗口。

如果 VS Code 已经在以管理员身份运行,则不会收到提示,也不会打开其他窗口。

对 ONNX GenAI 模型进行性能分析

在此模式下,性能分析工具开始针对指定数量的提示词,在目标执行提供程序 (EP) 上对 ONNX GenAI 模型进行性能分析。你可以在其运行的同时查看资源使用情况。

Screenshot that shows how to start by genai model

注意

你需要选择 GenAI 模型的文件夹,该文件夹必须包含 genai_config.json

资源使用情况视图

在主窗口中,顶部的图表显示 CPU、GPU、NPU 和内存的使用情况。使用情况每秒更新一次,并保留 10 分钟。你可以使用右上角的工具通过放大、缩小和平移来浏览时间线。

Screenshot that shows the resource usage view

注意

此功能使用性能计数器。若要获得更高的准确性,你还可以尝试 Windows Performance Recorder

Windows ML 事件视图

在主窗口中,底部的图表显示 Windows ML 事件。其时间线与“资源使用情况”视图同步,因此你可以轻松确定发生特定事件时资源的使用情况。

重要事项

要接收 Windows ML 事件,需要以管理员模式运行该工具。如果未以管理员模式启动 VS Code,则会显示一条通知,引导你重新启动 VS Code。你需要关闭所有其他 VS Code 实例,以便以管理员模式成功重启。 显示以管理员模式重新启动 VS Code 的通知的屏幕截图

目前,仅显示以下事件类型:

  • Ensure ExecutionProvider Ready(确保 ExecutionProvider 准备就绪):当 Windows ML 正在准备 EP 时
  • Session Creation(会话创建):创建会话时
  • Inference(推理):模型在会话上运行推理时

Screenshot that shows the Windows ML events view

您学到了什么

在本文中,您学习了如何

  • 以不同方式开始性能分析
  • 检查“资源使用情况”视图
  • 检查 Windows ML 事件视图

另请参阅

English 한국어 中文(简体) 中文(繁體)
© . This website operates independently and is not affiliated with or endorsed by Microsoft. All brand names, logos, and trademarks are the property of their respective owners.