次の方法で共有


Copilot+ PC 用の AI アプリケーションを開発する

Copilot+ PC は Windows 11 ハードウェアの新しいクラスで、1 秒あたり 40 兆回を超える演算 (TOPS) を実行できる、リアルタイム翻訳や画像生成などの AI 集中型プロセス用の特殊なコンピューター チップである、高性能ニューラル処理ユニット (NPU) を搭載しています。 Copilot+ PC は、終日のバッテリ寿命と、最も高度な AI 機能とモデルへのアクセスを提供します。

詳細情報:

次の Copilot+ PC 開発者向けガイダンスについて説明します。

  • デバイスに関する前提条件
  • Arm ベースの Snapdragon Elite X+ チップとは何ですか?
  • + NPU プロセッサを搭載した Copilot+ PC でサポートされる固有の AI 機能
  • Copilot+ PC で NPU にアクセスする方法
  • ONNX Runtime を使用して Copilot+ PC 上の NPU にプログラムでアクセスする方法
  • デバイス NPU でローカルに実行されている AI モデルのパフォーマンスを測定する方法

前提条件

このガイダンスは、 Copilot+ PCs に固有です。

新しい Windows AI 機能の多くには、次のような 40 以上の TOPS で実行できる NPU が必要です。

  • Microsoft Surface サーフェス ラップトップ Copilot+ PC
  • Microsoft Surface Pro Copilot + PC
  • HP OmniBook X 14
  • Dell Latitude 7455、XPS 13、Inspiron 14
  • Acer Swift 14 AI
  • Lenovo Yoga Slim 7x と ThinkPad T14s
  • Samsung Galaxy Book4 Edge
  • ASUS Vivobook S 15 および ProArt PZ13
  • さらに、Copilotや Intel Core Ultra 200V シリーズなど、AMD と Intel の新しいシリコンを搭載した PC。

ビジネス向け Surface Copilot+ PC:

Arm ベースの Snapdragon Elite X チップとは

Qualcomm が開発した新しい Arm ベースチップSnapdragon X Elite は、業界トップクラスの ニューラル処理装置(NPU) を搭載し、AI 統合に重点を置いています。 この NPU は、大量のデータを並列に処理でき、1 秒あたり数兆回の演算を実行し、CPU や GPU よりも効率的に AI タスクにエネルギーを使い、デバイスのバッテリー充電を長持ちさせることができます。 NPU は CPU および GPU と連携して動作します。 Windows 11 は、高速かつ効率的なパフォーマンスを実現するために、処理タスクを最適な場所に割り当てます。 NPU は、エンタープライズ グレードのセキュリティを備えたオンデバイス AI インテリジェント エクスペリエンスを実現し、チップからクラウドまでの保護を強化します。

NPU を搭載した Copilot+ PC でサポートされる独自の AI 機能

Copilot+ PC は、最新バージョンの Windows 11 に付属する独自の AI エクスペリエンスを提供します。 デバイス NPU 上で実行するように設計されたこれらの AI 機能は、Windows の最新リリースに付属しており、 Windows 上の Microsoft Foundry の API を介して利用できるようになります。 NPU で実行 (推論) するように最適化されたモデルでサポートされている Windows API 上の Microsoft Foundry の詳細について説明します。 これらの API は Windows App SDK の今後のリリースで提供されます。

Copilot+ PC で NPU にアクセスする方法

ニューラル処理装置 (NPU) は、新しいハードウェア リソースです。 NPU の利点を最大限に引き出すために、PC 上の他のハードウェア リソースと同様に NPU に特化したソフトウェア開発が必要です。 NPU は、AI モデルを構成するディープ ラーニング算術演算を実行するように特別に設計されています。

上記の Windows 11 Copilot+ AI 機能は、NPU を利用するように特別に設計されています。 ユーザーはバッテリー充電の持ちが向上し、NPU をターゲットとする AI モデルの推論実行時間が短縮されます。 WINDOWS 11 の NPU のサポートには、Arm ベースの Qualcomm デバイスの他、Intel と AMD デバイス (近日公開予定) が含まれます。

NPU を使用するデバイスの場合、タスク マネージャーを使用して NPU リソースの使用状況を表示できるようになりました。

CPU、GPU、メモリ、イーサネット、ディスクの使用状況と NPU パフォーマンスが表示されている Windows タスク マネージャーのスクリーンショット

デバイス NPU で推論 (AI タスクを実行) する推奨される方法は、 Windows ML を使用することです。

AI アクセラレーションのために Copilot+ PC 上の NPU にプログラムでアクセスする方法

AI アクセラレーション用の NPU (ニューラル処理ユニット) と GPU にプログラムでアクセスするための推奨される方法は、DirectML から Windows ML (WinML) に移行しました。 この移行は、Windows デバイス上の AI ワークロードの開発者エクスペリエンスを簡素化および最適化するための広範な取り組みを反映しています。 更新されたガイダンス については、Windows Machine Learning (ML) を使用して Windows アプリが AI モデルをローカルで実行する方法について説明します。

  • 組み込みの EP 検出: 以前は、開発者は、どの実行プロバイダー (EP) がハードウェアと互換性があるかを知り、それらの EP をアプリケーションにバンドルする必要がありました。 これにより、多くの場合、アプリケーション サイズが大きくなり、依存関係の管理の複雑さが増しました。 Windows ML を使用すると、プロセスが自動化され、合理化されます。 Windows ML は、デバイスで使用可能なハードウェアを自動的に検出し、必要に応じて適切な IP をダウンロードします。 つまり、開発者は特定の IP をアプリケーションにバンドルする必要がなくなり、アプリケーション サイズが小さくなり、複雑さが軽減されます。

  • 統合 EP 配信: Qualcomm の QNNExecutionProvider や Intel の OpenVINO EP などの必要な EP が Windows にバンドルされるか、Windows Update 経由で配信されるため、手動ダウンロードは不要になりました。

  • 内部の ORT: Windows ML では、推論エンジンとして ONNX ランタイムが引き続き使用されますが、EP 管理の複雑さが抽象化されます。 ONNX Runtime は、ONNX 形式を使用し、開発者がさまざまなデバイスで効率的に実行できる AI アプリケーションを構築できるようにする、AI モデル用のオープン ソース推論およびトレーニング エンジンです。

  • ハードウェア ベンダーとのコラボレーション: Microsoft は、Qualcomm や Intel などのハードウェア ベンダーと直接連携して、初期のドライバー バージョンや新しいシリコン (Snapdragon X Elite、Intel Core Ultra など) との EP 互換性を確保します。

Copilot+ PC で Windows ML を使用して AI モデルをデプロイする場合:

  • Windows ML は、使用可能なハードウェア アクセラレータについてシステムにクエリを実行します。
  • 最もパフォーマンスの高い EP (QNN for Qualcomm NPUs、OpenVINO for Intel NPUs など) を選択します。
  • EP が自動的に読み込まれ、推論が開始されます。
  • 優先 EP が失敗した場合、または使用できない場合、Windows ML は別の EP に正常にフォールバックします (GPU や CPU の使用など)。

つまり、開発者は低レベルのハードウェア統合を気にせずに AI エクスペリエンスの構築に集中できます

サポートされているモデル形式

多くの場合、AI モデルはトレーニングされ、FP32 などのより大きなデータ形式で利用できます。 ただし、多くの NPU デバイスでは、パフォーマンスと電力効率を向上させるために、INT8 などの下位ビット形式の整数演算のみがサポートされています。 そのため、NPU で実行するには、AI モデルを変換 (または "量子化") する必要があります。 既にすぐに使用できる形式に変換されている多くのモデルがあります。 独自のモデルを持ち込んで (BYOM) 変換または最適化することもできます。

  • Qualcomm AI Hub (コンピューティング): Qualcomm は、Snapdragon X Elite を搭載した Copilot+ PC で既に使用が検証されている AI モデルと、この NPU で効率的に実行するように特別に最適化された使用可能なモデルを提供します。 詳細情報: Qualcomm AI Hub を使ってモデルのデプロイを高速化する | Microsoft Build 2024
  • ONNX Model Zoo: このオープンソース リポジトリは、事前トレーニング済みの最新のモデルを ONNX 形式でキュレーションされたコレクションで提供します。 これらのモデルは、Intel と AMD デバイス (近日公開予定) を含め、すべての Copilot+ PC で NPU で使用することをお勧めします。

独自のモデルを使用する場合は、ハードウェア対応モデル最適化ツール Olive を使用することをお勧めします。 Olive は、NPU パフォーマンス最適化ソリューションとして ONNX Runtime を使用するためのモデル圧縮、モデル最適化、モデルコンパイルに役立ちます。 詳細情報: AI が簡単になりました: ONNX Runtime と Olive ツールチェーンが Q&A を支援する方法 | Build 2023

デバイス NPU でローカルに実行されている AI モデルのパフォーマンスを測定する方法

アプリケーションに統合された AI 機能と、その機能を実行する AI モデルランタイムのパフォーマンスを測定するには:

  • トレースの記録: 一定期間のデバイス アクティビティを記録することは、システム トレースと呼ばれます。 システム トレースは、レポートの生成に使用できる "トレース ファイル" を生成し、アプリのパフォーマンスを向上させる方法を特定するのに役立ちます。 詳細: システム トレースをキャプチャしてメモリ使用量を分析します。

  • NPU 使用状況の表示: NPU を利用しているプロセスと、作業を送信する呼び出し履歴を調べます。

  • CPU での作業と呼び出し履歴の表示: 作業前のフィード AI モデルと作業後処理 AI モデルの結果を確認します。

  • 読み込みとランタイム: AI モデルを読み込み、ONNX Runtime セッションを作成する時間の長さを調べます。

  • ランタイム パラメーター: モデル ランタイムのパフォーマンスと最適化に影響を与える ONNX Runtime 構成および実行プロバイダー (EP) パラメーターを調べます。

  • 個々の推論時間: NPU から推論ごとの時間とサブ詳細を追跡します。

  • プロファイラー: AI モデル操作をプロファイリングして、各オペレーターが推論時間の合計に貢献するのにかかった時間を確認します。

  • NPU 固有: サブ HW メトリック、メモリ帯域幅などの NPU サブ詳細を調べます。

Windows パフォーマンス アナライザー ツールの一般的な印象を示すスクリーンショット

これらの測定を実行するには、次の診断ツールとトレース ツールをお勧めします。

  • タスク マネージャー: ユーザーがデバイスにインストールされている Windows オペレーティング システムのパフォーマンス (プロセス、パフォーマンス、アプリ履歴、スタートアップ アプリ、ユーザー、詳細、サービスなど) を表示できるようにします。 デバイスの CPU、メモリ、ストレージ ディスク、Wi-Fi、GPU のリアルタイム パフォーマンス データが表示されます。さらに NPU も表示されます。 データには、使用率、使用可能なメモリ、共有メモリ、ドライバーのバージョン、物理的な場所などが含まれます。
  • Windows パフォーマンス レコーダー (WPR): WPR には、NPU アクティビティを記録するためのニューラル処理プロファイルが付属するようになりました。 これは、Microsoft Compute Driver Model (MCDM) と NPU のやりとりが記録されます。 開発者は、NPU の使用状況、NPU を使用しているプロセス、および作業を送信している呼び出し履歴を確認できるようになりました。
  • Windows パフォーマンス アナライザー (WPA): WPA は、Windows Performance Recorder (WPR)、Xperf、または評価プラットフォームで実行される評価で記録される Windows イベント トレーシング (ETW) イベントのグラフとデータ テーブルを表示します。 CPU、ディスク、ネットワーク、ONNX Runtime イベントを分析するための便利なアクセス ポイントを提供します。NPU 分析用の新しいテーブルが 1 つのタイムラインに表示されます。 WPA では、作業前のフィード AI モデルと作業後処理 AI モデルの結果に関連する CPU の作業と呼び出し履歴を表示できるようになりました。 Microsoft Store から Windows パフォーマンス アナライザーをダウンロードします
  • GPUView: GPUView は、ログに記録されたビデオとカーネル イベントをイベント トレース ログ (.etl) ファイルから読み取り、データをユーザーにグラフィカルに表示する開発ツールです。 このツールには、GPU 操作と NPU 操作の両方と、NPU などの MCDM デバイスの DirectX イベントの表示のサポートが含まれるようになりました。
  • Windows パフォーマンス アナライザーの ONNX Runtime イベント: ONNXRuntime 1.17 (および 1.18.1 で拡張) 以降、ランタイムで発行されたイベントで次のユース ケースを使用できます。
    • AI モデルの読み込みと ONNX Runtime セッションの作成にかかった時間を確認します。
    • モデル ランタイムのパフォーマンスと最適化に影響する ONNX Runtime 構成および実行プロバイダー (EP) パラメーターを参照してください。
    • NPU (QNN) からの推論時間とサブ詳細ごとに追跡します。
    • AI モデル操作をプロファイリングして、各オペレーターが推論時間にどれだけ貢献しているかを確認します。
    • ONNX Runtime 実行プロバイダー (EP) プロファイルの詳細について 説明します。

WPR UI (Windows に含まれるコマンド ライン ベースの WPR をサポートするために使用できるユーザー インターフェイス)、WPA、GPUView はすべて、Windows Performance Toolkit (WPT) バージョン 2024 以降の一部です。 WPT を使用するには、Windows ADK Toolkit をダウンロードする必要があります。

Windows パフォーマンス アナライザー (WPA) で ONNX Runtime イベントを表示するクイック スタートについては、次の手順に従います。

  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 パフォーマンス レコーダー (WPR) プロファイルを、CPU、ディスクなどの他 の組み込みの記録プロファイルと組み合わせます。

  4. Microsoft Store から Windows パフォーマンス アナライザー (WPA) をダウンロードします

  5. WPA で onnx_NPU.etl ファイルを開きます。 ダブルクリックして、次のグラフを開きます。

    • "ニューラル処理 -> NPU の利用率
    • ONNX イベントの汎用イベント

上記の Microsoft Windows ツールで使用することを検討する追加のパフォーマンス測定ツールは次のとおりです。

  • Qualcomm Snapdragon Profiler (qprof): システム パフォーマンスを視覚化し、Qualcomm SoC CPU、GPU、DSP、およびその他の IP ブロック全体の最適化とアプリケーション スケーリングの改善の機会を特定するように設計された GUI およびシステム全体のパフォーマンス プロファイリング ツール。 Snapdragon Profiler を使用すると、サブ HW メトリック、メモリ帯域幅などの NPU サブ詳細を表示できます。

その他のリソース