インテル® VTune™ プロファイラーを使用して AI/ML アプリケーションのパフォーマンスを向上


この記事は、インテルのブログで公開されている「Boost the Performance of AI/ML Applications using Intel® VTune™ Profiler」の日本語参考訳です。原文は更新される可能性があります。原文と翻訳文の内容が異なる場合は原文を優先してください。


インテル® VTune™ プロファイラーでデータ並列 Python* および OpenVINO™ ワークロードをプロファイルする方法

AI およびマシンラーニング (ML) は、ヘルスケア、ライフサイエンス、マーケティング、金融、製造、ロボット工学、自律走行車、スマートシティーなど、さまざまな産業分野に適用範囲を拡大しています。PyTorch*、TensorFlow*、Keras* などのディープラーニング (DL) フレームワークは、実際にこれらの分野で使用されるマシンラーニング (ML) ワークロードのバックボーンを形成します。

OpenVINO™ ツールキットなどの開発者リソースも、「1 つのコードをどこでもデプロイ」アプローチにより、コンピューター・ビジョン (英語) や生成 AI (GenAI) (英語) などの分野で最新のハードウェア・アーキテクチャーを利用した AI 開発の加速に貢献しています。2018年の登場以来、オープンソースの OpenVINO™ ツールキットは、精度を維持しながら、低レイテンシー、高スループットにより AI 推論を加速し、モデル・フットプリントを軽減し、ハードウェアの使用を最適化することに取り組んできました。

非線形関数と多層を含むディープラーニング・モデルの複雑な構造により、基礎となるソースコードのパフォーマンス・ボトルネックの特定と解析は困難です。PyTorch* や TensorFlow* などの ML フレームワークは、モデル開発のさまざまな段階でパフォーマンス・メトリックの測定と解析を行うプロファイル API とネイティブツールを提供していますが、その範囲はソフトウェア機能に限定されています。oneAPI 対応のインテル® VTune™ プロファイラーは、計算とメモリーのボトルネックに関するハードウェア・レベルの詳細な情報を提供することで、パフォーマンスの問題を修正し、さまざまな計算エンベロープを持つハードウェア・プラットフォーム間で AI アプリケーションのパフォーマンスを最適化し、スケーリングできるように支援します。

このブログでは、インテル® VTune™ プロファイラーでデータ並列 Python* および OpenVINO™ アプリケーションをプロファイルし、AI/ML ワークロードの最適化の範囲を拡大する方法を紹介します。

インテル® VTune™ プロファイラーで Python* アプリケーションのパフォーマンスを向上

インテル® VTune™ プロファイラー・クックブックの新しいレシピでは、インテル® VTune™ プロファイラーが Python* アプリケーションのプロファイルにどのように役立つかを説明しています。このレシピの NumPy* ライブラリーを使用したペアワイズ距離計算の例を詳しく見てみましょう。

このレシピの基本的なソフトウェア要件は以下のとおりです。

注: 詳細なハードウェアおよびソフトウェア要件については、レシピの「Ingredients (使用するもの)」セクションを参照してください。

このレシピの NumPy* 実装では、距離計算にインテル® oneAPI マス・カーネル・ライブラリー (インテル® oneMKL) ルーチンを使用し、計算を論理タスクに分割するためインテル® インストルメンテーションおよびトレーシング・テクノロジー (ITT) API を使用しています。インテル® VTune™ プロファイラーは、各論理タスクの実行時間とメモリー消費量の解析に役立ち、パフォーマンス向上に必要な変更を行うコード領域を決定できます。

NumPy* 実装で ホットスポット解析を実行すると、結果レポートに最も多くの CPU 時間を費やしているコード領域の詳細が表示されます。また、並列処理を向上させるスレッド化解析や、ハードウェアを効率良く使用するためのマイクロアーキテクチャー全般解析など、その他の役立つパフォーマンス解析機能についての提案も表示されます。

Data Parallel Extension for NumPy* および Data Parallel Extension for Numba* を使用してパフォーマンス・ボトルネックを修正

ペアワイズ距離計算の例で使用されている基本的な NumPy* 実装では、ホットスポット解析レポートから、NumPy* 操作とインテル® oneMKL 関数が合計実行時間の大部分を消費していることが分かります。これらのボトルネックは、NumPy* を Data Parallel Extension for NumPy* (英語) に置き換えて、コードを少し変更することで解決できます。ホットスポット解析を再度実行して、基本的な NumPy* コードのパフォーマンスが向上したか確認し、さらに最適化できる余地があるかどうかを確認します。

インテル® VTune™ プロファイラーは、プラットフォームの GPU で Data Parallel Extension for Numba* (英語) を使用して、アプリケーションにアクセラレーターへオフロードする並列処理を追加することなども提案します。Numba* は、NumPy* 用の Numba* JIT コンパイラーのオープンソース拡張です。Python* でのカーネル・プログラミング用に SYCL* のような API を提供します。GPU での Numba* 実装の実行は、インテル® VTune™ プロファイラーの GPU 計算/メディア・ホットスポット解析プレビュー機能で解析できます。

 詳細は、インテル® VTune™ プロファイラー・クックブックの「データ並列 Python* アプリケーションのプロファイル」レシピを参照してください。

注: クックブックで使用されているサンプルコードは、説明を目的としたものであることに注意してください。レシピを参考にして、インテル® VTune™ プロファイラーで任意の Python* アプリケーションのパフォーマンスを解析および最適化できます。

インテル® VTune™ プロファイラーで OpenVINO™ アプリケーションのパフォーマンスを解析

インテル® VTune™ プロファイラー・クックブックの別の新しいレシピでは、インテル® VTune™ プロファイラーで OpenVINO™ ベースの AI アプリケーションをプロファイルして、CPU、GPU、NPU (ニューラル・プロセシング・ユニット) のパフォーマンス・ボトルネックを解析する方法を説明しています。以下のものが必要です。

注: ハードウェアおよびデバイスドライバー要件については、レシピの「Ingredients (使用するもの)」セクションを参照してください。

このレシピでは、OpenVINO™ のセットアップ、OpenVINO™ ソースのビルド、ITT API を使用した OpenVINO™ のパフォーマンス解析設定について、ステップごとに説明しています。このレシピは、AI アプリケーションのプロファイル中に、レイテンシーとスループットを解析するため、リファレンス・ベンチマーク・アプリケーションを使用します。

使用するコンピューティング・アーキテクチャーに応じて、インテル® VTune™ プロファイラーのさまざまなパフォーマンス解析機能を利用してホットスポットを特定し、コード領域ごとのハードウェア使用状況を調べることができます。以下に例を示します。

  • ホットスポット解析機能を使用して、CPU ボトルネック、つまり最も多くの CPU 実行時間を費やしているコード領域を解析します。
  • GPU 計算/メディア・ホットスポット解析プレビュー機能を使用して、GPU ホットスポットをプロファイルします。非効率的なカーネル・アルゴリズムを調査し、さまざまな種類の GPU 命令の頻度を解析するなどして、GPU の使用状況を把握します。
  • AI PC の NPU は、AI/ML アプリケーションのパフォーマンスを向上するように設計されています。インテル® ディストリビューションの OpenVINO™ ツールキットを使用して、計算集約型の AI/ML ワークロードをインテル® NPU (英語) にオフロードできます。インテル® VTune™ プロファイラーの NPU 全般解析プレビュー機能を使用すると、ワークロード・サイズ、実行時間、サンプリング間隔などのさまざまなハードウェア・メトリックに基づいて NPU パフォーマンスを解析できます。

 インテル® VTune™ プロファイラーで任意の AI/ML アプリケーションをプロファイルする方法の詳細については、インテル® VTune™ プロファイラー・クックブックの「OpenVINO™ アプリケーションのプロファイル」レシピを参照してください。

次のステップ

この記事で説明したパフォーマンス・ボトルネックのプロファイルと解析機能に加えて、インテル® VTune™ プロファイラーでは、メモリー消費と割り当て解析、I/O パフォーマンス解析、HPC パフォーマンス特性解析など、さまざまな解析が可能です。今すぐインテル® VTune™ プロファイラー (英語) を使い始めましょう!

インテルの oneAPI ソフトウェア・ポートフォリオにある AI (英語)、HPCレンダリング (英語) ツールもぜひチェックしてみてください。

ソフトウェアの入手

インテル® VTune™ プロファイラーは、インテル® oneAPI ベース・ツールキットの一部、またはスタンドアロン (英語) として利用できます。

関連情報

日本語での優先サポートのご案内

エクセルソフトは、インテル® ソフトウェア開発ツールの正規販売代理店として、25年以上にわたって国内の開発者向けに日本語で技術サポートや最新情報を提供してきました。インテルとの長年の強固なパートナーシップを通して、国内で HPC クラスターシステムやデータセンターの運用に携わる大学機関、政府機関、民間企業を中心とする組織向けにツールの導入やプログラムの最適化に携わってきた経験を活かし、国内のエンジニアや企業の開発を日本語でサポートします。