英語で読む

次の方法で共有


Copilot+ PC 開発者ガイド

Copilot+ PC は Windows 11 ハードウェアの新しいクラスで、1 秒あたり 40 兆回を超える演算 (TOPS) を実行できる、リアルタイム翻訳や画像生成などの AI 集中型プロセス用の特殊なコンピューター チップである、高性能ニューラル処理ユニット (NPU) を搭載しています。 Copilot+ PC では、1 日中使えるバッテリーと、最先端の AI 機能とモデルへのアクセスを提供します。 詳細については、「Microsoft の公式ブログの Copilot+ PC の概要」を参照してください。

次の 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 が必要です。

  • Arm ベース Qualcomm Snapdragon X Elite デバイス
  • Intel Lunar Lake デバイス -- 近日公開予定
  • AMD STRIX (Ryzen AI 9) デバイス -- 近日公開予定

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 スタジオ エフェクト: クリエイティブ フィルター、背景ぼかし、アイ コンタクト、自動フレーム、音声フォーカスなど、Microsoft のオーディオとビデオの NPU アクセラレータ AI エフェクトのセット。 開発者は、システム レベルの制御のためにアプリにトグルを追加することもできます。 AI 強化の Windows スタジオ エフェクトの一覧

  • リコール: AI で強化された UserActivity API を使用すると、ユーザーは自然言語を使用して過去の対話を検索し、中断したところから再開できます。 Windows Insider Program (WIP) を介して Copilot+ PC で使用できます。 詳細情報: リコールで過去の操作手順を辿ります

  • Phi Silica: Phi Small Language Model (SLM) は、今後リリースされる Windows アプリ SDK を使用して、アプリがオンデバイス モデルに接続して自然言語処理タスク (チャット、数値演算、コード、推論) を実行できるようにします。

  • テキスト認識: 画像やドキュメントからテキストを抽出できる光学式文字認識 (OCR) API。 PDF、書面、クラスルームのホワイト ボードの画像を編集可能なデジタル テキストに変換するなどのタスクを想定します。

  • ペイントでコクリエーターを使用 画像を A​​I によるデジタルアートに変換する Microsoft ペイントの新機能

  • スーパー解像度: NPU を活用してゲームの動作速度と画質が大幅に向上させる、業界をリードする AI テクノロジ。

*初期段階では、すべての Copilot+ PC ですべての機能が利用できるわけではありません。

重要

Windows の最新リリースに同梱される AI モデルは、Build 2024 で発表された Windows Copilot Runtime の API を介して利用できるようになります。 Phi Silica などの新しい AI 機能の API は、NPU で実行 (推論) するように最適化されたモデルによってサポートされ、Windows アプリ 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 タスクを実行) するための推奨される方法は、ONNX Runtime を使用することです。 ONNX Runtime は、GPU や CPU だけでなく NPU に対してプログラミングするための柔軟でパフォーマンスの高いスタックであり、独自の AI モデルを持ち込んだり、Web 上にあるオープンソース AI モデルを使用したりすることができます。 ONNX Runtime を使用して以下の NPU にアクセスする方法の詳細、または Windows アプリで機械学習モデルを使用する方法の詳細について説明します。

注意

PyTorch または Tensorflow に他のランタイムを使用する場合はどうでしょうか? PyTorch、Tensorflow、およびその他のシリコン ベンダー提供の SDK の他の種類のランタイムも Windows でサポートされています。 現時点では、柔軟な ONNX 形式に変換することで PyTorch、TensorFlow、およびその他のモデルの種類を実行できますが、ネイティブ サポートは近日公開予定です。

ONNX Runtime を使用して Copilot+ PC 上の NPU にプログラムでアクセスする方法

Microsoft は、ONNX Runtime と呼ばれる完全なオープンソース推論とトレーニング フレームワークを提供しています。 ONNX Runtime は、NPU で AI モデルを実行するために推奨されるオープンソースの Microsoft ソリューションです ONNX Runtime は柔軟性があり、AI モデルを実行するためのさまざまなオプションをサポートしていますが、さまざまな選択肢があるため混乱を招く可能性があります。 このガイドは、Windows Copilot+ PC 向けの選択肢を選択するのに役立ちます。

  • Qualcomm Snapdragon X: 現時点では、開発者は Qualcomm AI Engine Direct SDK (QNN) を使用する Qualcomm QNN Execution Provider (EP) をターゲットにする必要があります。 QNN サポート付きの事前構築済みパッケージ をダウンロードできます。 これは、Windows Copilot Runtime と Qualcomm デバイス搭載の Copilot+ PC でのエクスペリエンスで使用されているのと同じスタックです。 Qualcomm Snapdragon X Elite NPU の DirectML および WebNN サポートは Build 2024 で発表され、間もなく利用可能になる予定です。
  • Intel と AMD NPU デバイス: 追加の NPU デバイスは、2024 年後半に利用できるようになります。 これらのデバイスをターゲットとする場合、DirectML を使用することが推奨されます。

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

多くの場合、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 サブ詳細を表示できます。

追加のリソース