この記事は、インテルのウェブサイトに公開されている「Intel® VTune™ Profiler Performance Analysis Cookbook」の「Profiling OpenVINO™ Applications」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。
インテル® VTune™ プロファイラーを使用して、AI アプリケーションをプロファイルする方法を紹介します。このレシピでは、OpenVINO™ ツールキットでベンチマーク・アプリケーションを使用して説明します。
コンテンツ・エキスパート: Kali Uday Balleda、Kumar Sanatan
使用するもの
以下は、このパフォーマンス解析シナリオで使用するハードウェアとソフトウェアのリストです。
アプリケーションとツールキット:
- OpenVINO™ アプリケーションでインテル® oneAPI ディープ・ニューラル・ネットワーク・ライブラリー (インテル® oneDNN) またはインテル® oneAPI データ・アナリティクス・ライブラリー (インテル® oneDAL) を使用する必要がある場合は、インテル® oneAPI ベース・ツールキット Windows* 版 (バージョン 2024.1 以降) をダウンロードしてください。
- インテル® NPU ドライバー – Windows* (バージョン 32.0.100.2381)
- Benchmark Tool アプリケーション (OpenVINO™ ツールキット 2024.1 以降 (英語) に 含まれる benchmark_app の Python* バージョンと C++ バージョン (英語))
- インテル® ディストリビューションの Python* 2024.1 (英語)
- Microsoft* Windows* 向け CMake 3.29.2
- Microsoft* Visual Studio* 2022 Community Edition (17.9.6)
- Windows* 向け Git (英語)
解析ツール: インテル® VTune™ プロファイラー 2024.1 以降
OpenVINO™ のセットアップ
パッケージ・マネージャーから OpenVINO™ をセットアップするには、以下のアプリケーションを順番にインストールします。
- インテル® oneDNN またはインテル® oneDAL ライブラリーを使用する場合は、インテル® oneAPI ベース・ツールキットをインストールします。手順については、こちら (英語) を参照してください。
- インテル® ディストリビューションの Python* (Intel Python3) をインストールします。
- CMake* をセットアップします。
- Microsoft* Visual Studio* 2022 をセットアップします。
- Windows* 向け Git をインストールします。
- コマンドプロンプトで Intel Python3 へのパスを設定します。インテル® ディストリビューションの Python をダウンロードしたフォルダーの env サブディレクトリーで vars.bat を実行します。
OpenVINO™ ソースのビルド
- GitHub* で OpenVINO リポジトリをクローンします。
git clone https://github.com/OpenVINOtoolkit/OpenVINO.git
- OpenVINO フォルダーを開きます。
cd OpenVINO
- サブモジュールを更新します。
git submodule update –init
- build ディレクトリーを作成します。
mkdir build
- build ディレクトリーを開きます。
cd build
- OpenVINO™ ソースコードを使用して Microsoft* Visual Studio* プロジェクトを生成します。Python* API で OpenVINO™ ランタイムを有効にしてください。インストルメンテーションおよびトレーシング・テクノロジー (ITT) API を使用したプロファイルも有効にします。
cmake -G “Visual Studio 17 2022” <path\to\OpenVINO™ source code> -DCMAKE_BUILD_TYPE=Release -DENABLE_PYTHON=ON -DPython3_EXECUTABLE= "C:\Users\sdp\Downloads\intelpython3\python.exe" -DENABLE_PROFILING_ITT=ON
- Microsoft* Visual Studio* 2022 で OpenVINO.sln ソリューションを開きます。
- ソリューション・ファイルを Release モードでビルドします。
ビルドが正常に終了すると、以下を含む新しい bin ディレクトリーが作成されます。
- bin\intel64\Release\python の Python* ライブラリー
- bin\int64\Release\ の OpenVINO™ プラグインと DLL
パフォーマンス解析向けの OpenVINO™ の設定
AI アプリケーションのパフォーマンス解析を実行する前に、OpenVINO™ を設定してください。
- OpenVINO™ ビルドをインストルメンテーションおよびトレーシング・テクノロジー (ITT) API で構成します。次の環境変数を設定します。
set PYTHONPATH=<path to OpenVINO™ repository>\bin\intel64\Release\python;%PYTHONPATH% set OpenVINO™_LIB_PATHS=<path to OpenVINO™ repository>\bin\intel64\Release;%OpenVINO™_LIB_PATH%
- Python* 向けセットアップ・スクリプトを実行します。
C:\Users\sdp\intelpython3\env\vars.bat
- oneAPI ツール向けセットアップ・スクリプトを実行します。
C:\Program Files (x86)\Intel\<toolkit_version>\oneAPI-vars.bat
インテル® プロセッサー上で AI アプリケーションを実行する前に、AI モデルを OpenVINO™ IR 形式に変換する必要があります。変換については、「omz_converter ツールの使用」 (英語) を参照してください。
ここで説明するプロファイル解析は、任意の AI アプリケーションで実行できます。このレシピでは、OpenVINO™ ツールキットに含まれる Benchmark Tool を使用して、インテル® VTune™ プロファイラーで解析を実行する方法を示します。benchmark_app を使用して AI アプリケーションのスループットを計算し、レイテンシー解析を実行します。
benchmark_app を実行するには、コマンドライン・プロンプトで以下のコマンドを入力します。
benchmark_app -m model.xml -d NPU -niter 1000
説明:
model.xml: AI アプリケーション
d: ターゲットデバイス (CPU/GPU/NPU)
niter: 反復回数
CPU ホットスポットのプロファイル
CPU ボトルネックを特定するには、ホットスポット解析を実行します。コマンドラインで、次のコマンドを入力します。
vtune -c hotspots -r <path to VTune results directory> -- benchmark_app -m model.xml -d CPU -niter 1000
解析結果を開き、[Bottom-up (ボトムアップ)] ウィンドウと [Platform (プラットフォーム)] ウィンドウで CPU ホットスポットを特定します。
GPU ホットスポットのプロファイル
GPU ボトルネックを特定するには、GPU 計算/メディア・ホットスポット解析を実行します。コマンドラインで、次のコマンドを入力します。
vtune -c gpu-hotspots -r <path to VTune results directory> -- benchmark_app -m model.xml -d GPU -niter 1000
解析結果を開き、[Graphics (グラフィック)] ウィンドウで GPU ホットスポットを特定します。
NPU のプロファイル
NPU をプロファイルするには、NPU 全般解析を実行します。コマンドラインで、次のコマンドを入力します。
vtune -c npu -r <path to VTune results directory> -- benchmark_app -m model.xml -d npu -niter 1000
解析結果を開き、[Platform (プラットフォーム)] ウィンドウで NPU の使用状況を把握します。