Microsoftは8月19日(米国時間)、「Task Manager features for visibility into AI workloads - Windows IT Pro Blog」において、Windows 11のタスクマネージャーでAIワークロードを評価する方法を解説した。

比較的新しいWindowsデバイスの一部では、タスクマネージャーのプロセスタブからニューラルプロセッシングユニット(NPU: Neural Processing Unit)やGPUに搭載されたニューラルエンジンの使用状況をプロセス単位で確認できる。さらにパフォーマンスタブでは全体の利用率が検証可能だ。同社はこれらを活用することでAIアプリのトラブルシューティングやパフォーマンス調査が可能と述べ、IT専門家や開発者に有効活用を提案している。

AIアプリがNPUやGPUを使っているか確認を確認

NPUやGPUのニューラルエンジンを搭載したデバイスでは、これらの専用ハードウェアを使用してAIワークロードが実行される。ただし、常に専用ハードウェアが使用されるとは限らず、実際にはCPUや標準GPUにフォールバックして動作することがある。

処理がフォールバックすると応答性が低下し、期待した性能を発揮できない可能性がある。そのため、実際の運用ではこの現象がどの程度発生しているかを把握する必要があり、性能改善を試みる上で重要な調査項目となる。

タスクマネージャーでNPUやGPUの使用状況を調べる

Microsoftはこの調査にタスクマネージャーが使用できるとして、その手順を次のとおり解説した。

  • タスクマネージャーを起動し、「プロセス」タブをクリックする
  • 列エリアを右クリックして、NPU、NPUエンジン、GPU、GPUエンジンのいずれか、またはすべてをチェックする
  • 名前欄で希望のソフトウェアまたはエンタープライズエージェントを探し出すか、または検索する。目視で探し出す場合は、「Ctrl」キーを押し続けることで更新を一時停止することができる
  • ソフトウェアがAIワークロードを実行し、専用装置を使用していれば、NPU、NPUエンジン、GPU、GPUエンジンいずれかの活動を観察できる
  • 時間経過による使用状況を可視化するには、「パフォーマンス」タブをクリックする
  • 装置の一覧から「NPU」または「GPU」を選択する。ビューの項目名をクリックし、「ニューラル(Neural)」をクリックする
  • GPUニューラルエンジンの使用状況を表示する 引用:Microsoft

    GPUニューラルエンジンの使用状況を表示する 引用:Microsoft

専用装置の使用率が想定より低く、一方でCPU使用率が高い場合はフォールバックしている可能性がある。この場合はアプリケーションの設定に問題があるか、専用ハードウェアを適切に使用できる設計になっていない可能性があるという。

専用ハードウェアが想定どおり使用されている場合は、アプリの設定や設計が適切に機能していると判断できる。この場合は、実際に割り当てられているNPUおよびGPUエンジンを調査することで、さらなる詳細を探ることも可能と説明している。

AIアプリの性能低下、CPUへのフォールバックを確認

アプリ開発の現場では、ONNX RuntimeWindows Direct Machine Learning(DirectML)といったAIフレームワークが使用される。Microsoftによると、これらフレームワークの使用では特定の装置(CPU、NPU、GPUなど)をターゲットにしたコードを書くことがあるという。

そのようなアプリがサポートされていないデータ型やドライバーの不一致に遭遇すると、フレームワークが別の処理方法にフォールバックして、アプリのクラッシュを防止する。同社はこの問題を特定、修正するために、タスクマネージャーを使用することができるとして、次の検証手順を解説した。

AI処理が使っているハードウェアを確認

基本的なランタイム検証を実施してAIワークロードが実際に使用しているリソースを確認する。手順は次のとおり。

  • タスクマネージャーを起動し、詳細タブをクリックする
  • 任意の列ヘッダーを右クリックし、「列の選択」をクリックする
  • NPU、NPUエンジン、GPU、GPUエンジンのいずれか、またはすべてをチェックして「OK」をクリックする
  • 使用状況を観察し、CPUにフォールバックしているワークロードを特定する
  • 必要な場合は、専用NPUメモリー、共有NPUメモリー、専用GPUメモリー、共有GPUメモリーをチェックし、割り当てやメモリーオーバーフローを追跡する

AIモデルが遅い場合に確認するポイント

ローカルAIモデルが想定外に遅い場合、次の理由でフォールバックしている可能性がある。

  • 特定のドライバーが存在しない
  • データ型の不一致が生じている。具体的にはFP32モデルをINT8に最適化されたNPUに強制的に割り当てた場合や、モデル内の演算がニューラルエンジンやNPUでサポートされていない場合などが該当する

これらの他に、NPUメモリーの使用状況によっては、パフォーマンスが低下する可能性がある。Microsoftは専用NPUメモリーと共有NPUメモリーの両方を持つシステムで、専用NPUメモリーを使い切り、共有NPUメモリーにデータが流れ込むことでパフォーマンスが低下すると説明している。

AIアプリとバッテリー消費

MicrosoftはAIワークロードの消費電力が処理装置によって異なると説明する。動画や画像関連のAI処理では、CPUおよび標準GPUを使用するとノートパソコンのバッテリーをわずか2時間ほどで消耗させるケースがあるという。一方、NPUやGPUのニューラルエンジンでは消費電力をミリワット単位に抑えられ、発熱も抑制できるとしている。

この消費電力の違いもタスクマネージャーで検証できる。プロセスタブを開き、NPU、NPUエンジン、GPUエンジンを表示する。アプリのNPUエンジン欄に「NPU - Compute」または「NPU - Neural」が表示されている場合は、NPU上でワークロードが実行され消費が抑えられている。

同様にGPUエンジンに「GPU – Neural」が表示されている場合は、GPUのニューラルエンジンで実行されていることを示す。双方が空欄でCPU使用率が高い場合はニューラルエンジンを使用できておらず、バッテリー消費が高い状態にある。

また、タスクマネージャーのプロセスタブでは、「電力消費」および「電源の使用率の傾向」の表示もできる。正確な数値表示ではないが、ある程度の負荷傾向を検証できる。

今回の解説は、AI開発にタスクマネージャーの監視機能を組み込むことを提案する内容だ。AI処理がWindows PC上で増える中、Windows 11では専用ハードウェアが実際にどの処理を担っているか、標準で確認する方法を提供している。Microsoftは開発者に対し、タスクマネージャーを活用してAIワークロードの実行状況を検証し、応答性や電力効率の改善につなげることを推奨している。