「インテル® VTune™ プロファイラー」とは 精度の高いデータで高速なアプリケーションを素早く開発

このエントリーをはてなブックマークに追加
本稿はエクセルソフト株式会社による寄稿記事です。

インテル® VTune™ プロファイラーの概要

インテル® VTune™ プロファイラーは、アプリケーションの計算処理にかかる時間を短縮するために使用するパフォーマンス・プロファイラーです。CPUの機能に精通していない方でも活用できるように、目的にあわせた情報収集が可能なプリセットが用意されており、プリセットを実行するだけで必要な情報が収集できます。例えば、アプリケーションで1番時間のかかる処理を発見する機能や、複数のコアの中から処理を行っていないコアを発見する機能など、アプリケーションの最適化に役立つ、豊富な情報を簡単に収集できるように設計されています。あわせて C/C++、Fortran、Python、Go、Java といった主要な言語に対応しており、幅広くアプリケーションの最適化に活用できます。

チューニングで最も大きな効果が得られるプリセットとして、hotspots 解析があげられます。hotspots 解析では、多くの計算時間を消費しているコードを素早く特定するために、全ての処理を消費時間でソートされたリストを確認できます。さらに詳細を確認するために、ソースコードの行レベルでプロファイル情報を表示できます。

典型的な hotspot 解析では、上記の通り最も多くの時間を費やしているコードを表示できますが、より最適化に必要な情報を収集するためには、異なるプリセットを実行します。例えば、メモリーアクセス解析を実行することで、帯域幅を消費している処理が示されるため、hotspot 解析に加えて、メモリー読み書きを実行するタイミングや読み書きしたデータ量に関する新しい情報が得られます。

また、得られた情報の順番を切り替える機能を使うと、スレッド化の効率が悪い原因を影響の大きい順に確認が可能になり、複数のコアを利用するアプリケーションの最適化に役立ちます。並列化している処理から最適化による性能向上が得られやすいと考えられる順番にソートされます。

インテル® VTune™ プロファイラーのターゲット

インテル® VTune™ プロファイラーは、多種多様な業界にて、精度の高いデータで高速なアプリケーションを素早く開発することを目的として、利用されています。他社の事例をもとに、OpenVINO™ ツールキットによるディープラーニング・アプリケーションのパフォーマンスを最適化するにあたり、インテル® VTune™ プロファイラーがどのように利用されているのか説明します。

インテル® VTune™ プロファイラーの事例

ディープラーニング・アルゴリズムのパフォーマンスを 24 倍に向上

GeoVision は、包括的なセキュリティーおよび監視ソリューションのニーズに応えるため、高精度な顔認識を実現するプロフェッショナル・レベルのデジタル・ビデオ・レコーダー (DVR) およびネットワーク・ビデオ・レコーダー (NVR) システム、IP カメラ、社内開発ビデオ管理システム (VMS) を提供しています。これらのネットワーク接続されたデジタルビデオ監視ソリューションは、インテル® VTune™ プロファイラーを活用しており、ディープラーニング・アルゴリズムのパフォーマンスを向上しました。

ディープラーニング顔認識ソリューションにおいて、継続的に最先端のパフォーマンスを顧客に提供することは課題の一つとなっています。認識結果の瞬時な提供だけでなく、入退室管理、ブラックリストに掲載されている人物の識別、識別マッピングなど、従来の再生型よりも進んだ追跡システムは、高レベルかつ高速な推論パフォーマンスを提供します。

これらの高精度な推論結果をリアルタイムで収集するにあたり、さまざまな環境下で高速に稼働する顔認識ソリューションを導入する必要があります。システムの高速化にあたり、インテル® VTune™ プロファイラーと関連ツールを使用することで、ディープラーニング・アルゴリズムのパフォーマンスを 24 倍に向上できるようになりました。インテル® VTune™ プロファイラーをはじめとするインテル開発ツールにより、インテル® アーキテクチャー・ベースのハードウェアの能力を最大限に引き出し、最先端のパフォーマンスを提供するシステムの構築を可能にします。

GeoVision が提供する包括的なビデオ管理システムは、顧客のセキュリティーに関するニーズを理解して、最先端の顔認識のテクノロジーを使用した高速かつ効率的なソリューションにより、人物の追跡と検索機能を同時に提供します。インテル® VTune™ プロファイラーは、さまざまなハードウェア上での動作に最適化されたディープラーニング推論アプリケーションの高速化を支援します。

Yandex はインテル® VTune™ プロファイラーのホットスポット解析を活用して CatBoost のパフォーマンスを最適化

Yandex は、主要なインターネット/クラウド企業としてマシンラーニングや人工知能 (AI) の発展に貢献し、決定木の勾配ブースティング向けにハイパフォーマンスかつオープンソースのライブラリーである CatBoost を提供しています。このライブラリーはインテル® VTune™ プロファイラーのホットスポット解析を活用しており、メモリーアクセスの効率を損なうフォルス・シェアリングや余分なアトミック操作の問題を特定し、マシンラーニング・モデルの構築を高速化できます。

マシンラーニング・モデルのトレーニングや推論では、データの前処理やチューニングがパフォーマンスに影響を及ぼすため、多くの時間や労力を費やす必要があります。複雑なモデルとデータセットをより高速に処理できるライブラリーは、計算リソースの効率的な利用や、クラウドリソースの節約に役立ちます。

無駄な時間や労力を削減するにあたり、CPU ベアメタルまたはクラウド上でのパフォーマンスを最適化する必要があります。コード解析や、主要なプロファイリング・データの収集にはインテル® VTune™ プロファイラーが活用されており、計算やスレッド化をはじめ、メモリーやストレージに至るまで、最も効果的なソフトウェアの最適化に関する解析結果を提供します。ボトルネックを特定することにより、CatBoost のパフォーマンスを 1.47 倍高速化できました。

Yandex が提供するCatBoost は、パラメーターの調整に費やす時間を削減するためにデフォルトのパラメーターを提供します。数値以外のデータも使用できるため、数値への変換に掛かる時間や労力を削減できます。また、特定のアルゴリズムの高速実装でモデルをトレーニングできるだけでなく、レイテンシーが重要視されるタスクにも迅速かつ効率的にトレーニング済みのモデルを適用できます。

インテル® VTune™ プロファイラー総括

インテル® VTune™ プロファイラーは、様々なレベルのアプリケーションのチューニングやパフォーマンスの最適化を行うための C/C++、Fortran、Python、Go、Java 対応パフォーマンス/スレッド・プロファイラーです。ハイレベルのサマリーと強力な解析により、タイムラインやソースコードで結果をソート、フィルター、視覚化して最適化にかける時間と労力を節約できます。
また、低オーバーヘッドで詳細なハードウェア・プロファイルにより、キャッシュミス、分岐予測ミス、 帯域幅などの重要なパフォーマンス問題も簡単に見つけることができます。

インテル® VTune™ プロファイラーはインテル® oneAPI ベース・ツールキット以上に同梱され、下記のサイトから入手できます。
https://www.xlsoft.com/jp/products/intel/vtune/index.html

エクセルソフト株式会社では、定期的に技術セミナーを開催しており、インテル® VTune™ プロファイラーを使用したパフォーマンス最適化の流れや利用するコンポーネントの説明を行っています。開催予定のセミナー情報はこちらからご確認ください。
https://www.xlsoft.com/jp/products/intel/tech/seminar.html