使用 Windows Machine Learning 進行應用程式效能分析

效能分析 (Profiling) 工具旨在幫助開發人員與 AI 工程師診斷處理程序、不同執行提供者 (Execution Provider) 上的 ONNX 模型以及 Windows ML 事件的 CPU、GPU 和 NPU 資源使用情況。

在本篇文章中,您將了解如何開始進行效能分析,以及如何查看資源使用量檢視和事件檢視。

先決條件

分析應用程式啟動過程

在此模式下,效能分析工具會分析下一個啟動且發送 Windows ML 事件的應用程式。此選項非常適合測試僅執行一次的應用程式。在此情況下,您先啟動效能分析,然後執行應用程式,資源使用量就會開始顯示。

Screenshot that shows how to start by the next session

該工具會從應用程式啟動時開始分析。這意味著若要分析 Python 筆記本 (Notebook),如果核心 (Kernel) 已經在執行中,您需要重新啟動核心才能開始分析。僅僅開啟一個新的筆記本不會自動開始效能分析。

重要

若要接收 Windows ML 事件,該工具必須以管理員模式執行。如果 VS Code 未以管理員模式啟動,系統會顯示通知並引導您重新啟動 VS Code。您需要關閉所有其他的 VS Code 執行個體,才能成功以管理員模式重新啟動。顯示以管理員模式重新啟動 VS Code 之通知的截圖

分析執行中的應用程式

在此模式下,效能分析工具會對已經在執行中的應用程式進行分析。您可以根據以下準則選擇處理程序:

  • 處理程序 ID (Process ID):例如 12345
  • 處理程序名稱:通常是應用程式名稱但不含 .exe。系統會分析第一個符合的結果。
  • 處理程序路徑:例如 c:\Users\xxx\Inference.Service.Agent.exe。系統會分析第一個符合的結果。

此選項非常適合分析已在執行中且無法為了效能分析而重新啟動的應用程式。

Screenshot that shows how to start by process id or name

分析 ONNX 模型

在此模式下,效能分析工具會在指定的期間內,針對目標執行提供者 (EP) 或裝置原則分析 ONNX 模型檔案。您可以觀察模型執行時的資源使用情況。

此選項非常適合在不同的執行提供者或裝置原則上分析 ONNX 模型。

Screenshot that shows how to start by model file

效能分析完成後,會出現通知引導您開啟或儲存報告。

Screenshot that shows the succeeded notification

報告包含詳細的效能分析統計數據,以及 ONNX 模型的執行結果。

Screenshot that shows the report data

資源使用量檢視

在主視窗中,上方的圖表顯示 CPU、GPU、NPU 和記憶體的使用情況。使用量會每秒更新一次,並保留 10 分鐘的紀錄。您可以使用右上角的工具來瀏覽時間軸,包括放大、縮小和平移。

Screenshot that shows the resource usages view

注意

此功能使用效能計數器。若要達到更高的準確度,您也可以嘗試使用 Windows Performance Recorder

Windows ML 事件檢視

在主視窗中,下方的圖表顯示 Windows ML 事件。其時間軸與「資源使用量檢視」同步,因此您可以輕鬆判斷特定事件發生時資源的使用情況。

重要

若要接收 Windows ML 事件,該工具必須以管理員模式執行。如果 VS Code 未以管理員模式啟動,系統會顯示通知並引導您重新啟動 VS Code。您需要關閉所有其他的 VS Code 執行個體,才能成功以管理員模式重新啟動。顯示以管理員模式重新啟動 VS Code 之通知的截圖

目前我們僅顯示以下類型的事件:

  • 確保執行提供者就緒 (Ensure ExecutionProvider Ready):當 Windows ML 正在準備執行提供者時
  • 工作階段建立 (Session Creation):當工作階段建立時
  • 推論 (Inference):當模型在工作階段上進行推論時

Screenshot that shows the Windows ML events view

您所學到的內容

在本文章中,您學習了如何:

  • 以不同方式啟動效能分析
  • 檢查資源使用量檢視
  • 檢查 Windows ML 事件檢視

參見

© . This site is unofficial and not affiliated with Microsoft.