使用 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 通知的螢幕擷取畫面

剖析執行中的應用程式

在此模式下,效能剖析工具會開始剖析已經在執行的應用程式。您可以根據以下條件選取處理程序:

  • 處理程序識別碼 (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 模型檔案。您可以在其執行時看到資源使用量。

此選項非常適合用於在不同的 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 通知的螢幕擷取畫面

目前僅顯示下列事件類型:

  • 確保 ExecutionProvider 就緒 (Ensure ExecutionProvider Ready):當 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.