Windows Machine Learning を使用したアプリのプロファイリング

プロファイリングは、開発者や AI エンジニアがプロセスの CPU、GPU、および NPU リソースの使用状況を診断し、さまざまな実行プロバイダーで ONNX モデルをプロファイリングし、Windows ML イベントをキャプチャするために設計されたツールです。

この記事では、プロファイリングを開始する方法と、リソース使用状況ビューおよびイベントビューを調査する方法について学びます。

前提条件

アプリ起動時のプロファイリング

このモードでは、プロファイリングツールは次に起動され、Windows ML イベントを送信するアプリをプロファイリングします。このオプションは、1回だけ実行するアプリのテストに最適です。この場合、プロファイリングを開始してからアプリを実行すると、リソースの使用状況が表示されます。

Screenshot that shows how to start by the next session

このツールは、新しく起動されたアプリのプロファイリングを開始します。つまり、Python ノートブックをプロファイリングする場合、カーネルが既に実行中であれば、そのプロファイリングを開始するためにカーネルを再起動する必要があります。新しいノートブックを起動しただけでは、自動的にプロファイリングは開始されません。

重要

Windows ML イベントを受信するには、ツールを管理者モードで実行する必要があります。VS Code が管理者モードで起動されていない場合、通知が表示され、VS Code の再起動が案内されます。管理者モードでの再起動を有効にするには、他のすべての VS Code インスタンスを閉じる必要があります。VS Code を管理者モードで再起動するための通知を示すスクリーンショット

実行中のアプリのプロファイリング

このモードでは、プロファイリングツールは既に実行中のアプリのプロファイリングを開始します。以下の基準に基づいてプロセスを選択できます。

  • プロセス 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

ONNX GenAI モデルのプロファイリング

このモードでは、プロファイリングツールは、指定された数のプロンプトに対して、ターゲットの実行プロバイダー (EP) 上で ONNX GenAI モデルのプロファイリングを開始します。実行中のリソース使用状況を確認できます。

Screenshot that shows how to start by genai model

注意

GenAI モデルのフォルダーを選択する必要があります。これは genai_config.json を含むフォルダーです。

リソース使用状況ビュー

メインウィンドウの上部にあるプロットは、CPU、GPU、NPU、およびメモリの使用状況を示します。使用状況は 1 秒ごとに更新され、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 を管理者モードで再起動するための通知を示すスクリーンショット

現在、以下のイベントタイプのみが表示されます。

  • Ensure ExecutionProvider Ready: Windows ML が EP を準備しているとき
  • Session Creation: セッションが作成されるとき
  • Inference: モデルがセッションで推論を実行するとき

Screenshot that shows the Windows ML events view

学んだこと

この記事では、以下の方法を学びました。

  • さまざまな方法でプロファイリングを開始する
  • リソース使用状況ビューを調査する
  • Windows ML イベントビューを調査する

関連項目

© . This site is unofficial and not affiliated with Microsoft.