共用方式為


開發適用於 + PC 的 CopilotAI 應用程式

Copilot+ 計算機是一種新型的 Windows 11 硬體,由高效能類神經處理單元 (NPU) 提供動力,這是一種適用於 AI 密集程式的特殊計算機晶片,例如實時翻譯和影像產生,每秒可以執行超過 40 萬億次的作業(TOPS)。 Copilot+ PC 提供全天的電池壽命並可存取最先進的 AI 功能和模型。

瞭解詳情:

下列 Copilot+ 電腦開發人員指引涵蓋:

  • 裝置必要條件
  • 什麼是 Arm 型 Snapdragon Elite X+ 晶片?
  • 具有 NPU 處理器的 Copilot+ 電腦支援的獨特 AI 功能
  • 如何在 + 電腦上存取 NPU Copilot
  • 如何使用 ONNX 執行時間以程式設計方式存取 + 電腦上的 NPU Copilot
  • 如何測量在裝置 NPU 本機執行的 AI 模型效能

必要條件

本指南專屬於 Copilot+ 計算機

許多新的 Windows AI 功能都需要能夠以 40+ TOPS 運行的 NPU,包括但不限於:

Surface Copilot+ 商務電腦:

什麼是 Arm 型 Snapdragon Elite X 晶片?

由高通打造的新 Snapdragon X Elite Arm 晶片強調 AI 整合,其領先業界的神經處理單元 (NPU) 。 此 NPU 能夠平行處理大量數據,每秒執行數萬億個作業,比 CPU 或 GPU 更有效率地使用 AI 工作的能量,進而產生較長的裝置電池使用時間。 NPU 可與 CPU 和 GPU 一致。 Windows 11 會將處理工作指派給最適當的位置,以提供快速且有效率的效能。 NPU 可透過企業級安全性啟用裝置上的 AI 智慧型手機體驗,以增強晶片到雲端的保護。

具有 NPU 的 Copilot+ 電腦支援的獨特 AI 功能

Copilot+ 計算機提供獨特的 AI 體驗,隨附於新式 Windows 11 版本。 這些 AI 功能設計用於裝置 NPU 上,並隨最新版本的 Windows 版本提供,並可透過 Windows 上的 Microsoft Foundry API 提供。 了解更多關於 Microsoft Foundry 在 Windows 上支援的 API 的資訊,這些API由優化為在 NPU 上執行(推理)的模型所支援。 這些 API 將會在即將發行的 Windows App SDK中提供。

如何在 + 電腦上存取 NPU Copilot

類神經處理單元 (NPU) 是新的硬體資源。 如同電腦上的其他硬體資源,NPU 需要特別設計軟體,以利用它所提供的優點。 NPU 是專為執行構成 AI 模型的深度學習數學作業所設計。

上述 Windows 11 Copilot+ AI 功能已特別設計來利用 NPU。 針對以 NPU 為目標的 AI 模型,使用者將會獲得改善的電池使用時間,以及更快的推斷運行時間。 Windows 11 對 NPU 的支援將包含 Arm 型 Qualcomm 裝置,以及 Intel 和 AMD 裝置(即將推出)。

針對具有 NPU 的 裝置,任務管理器 現在可以用來檢視 NPU 資源使用量。

Windows 任務管理器的螢幕快照,其中顯示 CPU、GPU、記憶體、乙太網路和磁碟的 NPU 效能

在裝置 NPU 上推斷 (執行 AI 工作) 的建議方式是使用 Windows ML

如何在Copilot+ PC上以編程方式訪問NPU來實現AI加速

以程式設計方式存取 NPU(神經處理單元)和 GPU 以進行 AI 加速的建議方式已從 DirectML 轉移到 Windows ML (WinML)。 這項轉變反映了簡化和優化 Windows 裝置上 AI 工作負載開發人員體驗的更廣泛努力。 您可以在這裡找到更新的指引:了解 Windows Machine Learning (ML) 如何協助您的 Windows 應用程式在本機執行 AI 模型。

  • 內建 EP 探索:以前,開發人員需要知道哪些執行提供者 (EP) 與其硬體相容,並將這些 EP 與其應用程式捆綁在一起。 這通常會導致應用程式規模更大,並增加管理相依性的複雜性。 借助 Windows ML,該過程現在已自動化和簡化。 Windows ML 會自動偵測裝置上的可用硬體,並視需要下載適當的 EP。 這意味著開發人員不再需要將特定的 EP 與其應用程式捆綁在一起,從而縮小應用程式大小並降低複雜性。

  • 整合 EP 交付:所需的 EP,如 Qualcomm 的 QNNExecutionProvider 或 Intel 的 OpenVINO EP,現已隨 Windows 打包或透過 Windows Update 提供,免除手動下載的需求。

  • ORT under the hood:Windows ML 仍然使用 ONNX Runtime 作為其推理引擎,但簡化了 EP 管理的複雜性。 ONNX Runtime 是一個開源推理和訓練引擎,用於使用 ONNX 格式的 AI 模型,使開發人員能夠構建可以在各種設備上高效運行的 AI 應用程序。

  • 與硬體廠商合作:Microsoft直接與硬體廠商合作,如高通和英特爾,以確保EP與早期驅動程式版本和新晶片(例如Snapdragon X Elite、Intel Core Ultra等)相容。

當您在 Copilot+ PC 上使用 Windows ML 部署 AI 模型時:

  • Windows ML 會查詢系統是否有可用的硬體加速器。
  • 它會選取效能最高的 EP (例如,QNN 適用於 Qualcomm NPU,OpenVINO 適用於 Intel NPU)。
  • EP 會自動載入,並開始推論。
  • 如果慣用的 EP 失敗或無法使用,Windows ML 會順利切換至其他選項(例如,使用 GPU 或 CPU)。

這意味著開發人員可以專注於建立 AI 體驗,而不必擔心低階硬體整合

支援的模型格式

AI 模型通常會以較大的數據格式定型和可用,例如 FP32。 不過,許多 NPU 裝置只支援低位格式的整數數學,例如 INT8,以提高效能和電源效率。 因此,AI 模型必須經過轉換(或「量化」,才能在 NPU 上執行。 有許多模型已轉換成現成可用的格式。 您也可以 自備模型 (BYOM)來轉換或優化。

對於那些想要攜帶您自己的模型的人來說,我們建議使用硬體感知模型優化工具 Olive。 Olive 可協助模型壓縮、優化和編譯,以使用 ONNX 運行時間作為 NPU 效能優化解決方案。 深入瞭解: AI 更容易:ONNX 運行時間和橄欖工具鏈如何協助您進行問答 |組建 2023

如何測量在裝置 NPU 本機執行的 AI 模型效能

若要測量應用程式中 AI 功能整合的效能,以及相關聯的 AI 模型運行時間:

  • 記錄追蹤:記錄一段時間的裝置活動稱為系統追蹤。 系統追蹤會產生「追蹤」檔案,可用來產生報表,並協助您識別如何改善應用程式的效能。 深入瞭解: 擷取系統追蹤以分析記憶體使用量

  • 檢視 NPU 使用方式:檢查哪些進程正在使用 NPU 和提交工作的 callstack。

  • 檢視 CPU 上的工作和呼叫堆疊:檢查工作前饋送 AI 模型和工作後處理 AI 模型的結果。

  • 載入和運行時間:檢查載入 AI 模型並建立 ONNX 執行時間會話的時間長度。

  • 運行時間參數:檢查影響模型運行時間效能和優化的 ONNX 執行時間組態和執行提供者 (EP) 參數。

  • 個別推斷時間:從 NPU 追蹤個別推斷時間和子詳細數據。

  • 分析工具:分析 AI 模型作業,以查看每個操作員花費多少時間來參與總推斷時間。

  • NPU 特定:檢查 NPU 子詳細數據,例如子 HW 計量、記憶體頻寬等等。

提供 Windows 效能分析器 工具一般印象的螢幕快照

若要執行這些測量,我們建議使用下列診斷和追蹤工具:

  • 任務管理員:讓使用者能夠檢視其裝置上安裝的 Windows 作業系統效能,包括進程、效能、應用程式歷程記錄、啟動應用程式、使用者、詳細數據及服務。 將會針對您的裝置 CPU、記憶體、記憶體磁碟、Wi-Fi、GPU 顯示即時效能資料...和 現在 NPU。 數據報括使用率百分比、可用的記憶體、共用記憶體、驅動程式版本、實體位置等等。
  • Windows Performance Recorder (WPR):WPR 現在隨附類神經處理配置檔來記錄 NPU 活動。 這會記錄 Microsoft計算驅動程式模型 (MCDM) 與 NPU 的互動。 開發人員現在可以看到 NPU 使用方式、使用 NPU 的進程,以及提交工作的呼叫堆疊。
  • Windows 效能分析器 (WPA):WPA 會建立 Windows 事件追蹤 (ETW) 事件圖表和數據表,這些事件是由 Windows Performance Recorder (WPR)、Xperf 或評定平臺中執行的評估。 它提供方便的存取點來分析 CPU、磁碟、網路、ONNX 運行時間事件...和 NPU 分析的新數據表,全都在單一時間軸中。 WPA 現在可以在與工作前饋送 AI 模型和工作後處理 AI 模型結果相關的 CPU 上檢視工作和呼叫堆疊。 從 Microsoft 市集下載 Windows 效能分析器。
  • GPUView:GPUView 是一種開發工具,可從事件追蹤記錄檔 (.etl) 檔案讀取記錄的視訊和核心事件,並以圖形方式向使用者呈現數據。 此工具現在同時包含 GPU 和 NPU 作業,以及支持檢視 MCDM 裝置的 DirectX 事件,例如 NPU。
  • Windows 效能分析器 中的 ONNX 運行時間事件:從 ONNXRuntime 1.17 開始(並在 1.18.1 中增強),下列使用案例適用於運行時間中發出的事件:
    • 查看載入 AI 模型並建立 ONNX 運行時間工作階段所花費的時間。
    • 請參閱影響模型運行時間效能和優化之 ONNX 運行時間組態和執行提供者 (EP) 參數。
    • 從 NPU (QNN) 追蹤每個推斷時間和子詳細數據。
    • 分析 AI 模型作業,以查看每個運算子花費多少時間來貢獻總推斷時間。
    • 深入瞭解 ONNX 執行時間執行提供者 (EP) 分析

注意

WPR UI(可用來支援 Windows 中包含的命令行 WPR 的使用者介面)、WPA 和 GPUView 都是 Windows Performance Toolkit (WPT), 2024 年 5 月版本+ 的一部分。 若要使用 WPT,您必須: 下載 Windows ADK 工具組

如需使用 Windows 效能分析器 檢視 ONNX 運行時間事件的快速入門(WPA),請遵循下列步驟:

  1. 下載 ort.wprpetw_provider.wprp

  2. 開啟命令列並輸入:

    wpr -start ort.wprp -start etw_provider.wprp -start NeuralProcessing -start CPU
    echo Repro the issue allowing ONNX to run 
    wpr -stop onnx_NPU.etl -compress
    
  3. 將 Windows Performance Recorder (WPR) 配置檔與其他 內建錄製配置檔 結合,例如 CPU、磁碟等。

  4. 從 Microsoft 市集下載 Windows 效能分析器 (WPA)。

  5. onnx_NPU.etl WPA 中開啟檔案。 按兩下以開啟這些圖形:

    • 「神經處理 -> NPU 使用率
    • ONNX 事件的泛型事件

要考慮搭配上述Microsoft Windows 工具使用的其他效能測量工具,包括:

  • Qualcomm Snapdragon Profiler (qprof):GUI 和全系統的效能分析工具,旨在將系統效能可視化,以及識別 Qualcomm SoC CPU、GPU、DSP 和其他 IP 區塊的優化和應用程式調整改善機會。 Snapdragon Profiler 允許檢視 NPU 子詳細數據,例如子 HW 計量、記憶體頻寬等等。

其他資源