インテル® VTune™ プロファイラー・ユーザーガイド

ハードウェア・イベントベース・サンプリング収集

ハードウェア・イベントベース・サンプリング (EBS) (サンプリング・モードのパフォーマンス・モニタリング・カウンター (PMC) 解析とも呼ばれる) の実行中、インテル® VTune™ プロファイラーはパフォーマンス・モニタリング・ユニット (PMU) のカウンター・オーバーフロー機能を使用して、アプリケーションをプロファイルします。

データコレクターはプロセスに割り込みをかけ、割り込まれたプロセスの IP を取得します。統計的に収集されたアクティブプロセスの IP から、ソフトウェアのパフォーマンスに影響する重要なコード領域を表示できます。

注意

統計的なサンプリングでは 100% 正確なデータは得られません。インテル® VTune™ プロファイラーはイベントを収集すると、そのイベントだけではなくサンプリング間隔全体 (10,000 から 2,000,000 イベント) をコードコンテキストに関連付けます。サンプル数が多い場合、サンプリング・エラーがパフォーマンス解析の精度に重大な影響を与えることはなく、最終的な統計情報は有効です。しかし、短期間に何かが発生した場合、それを示すサンプルはわずかです。0 サイクルで 200 万命令がリタイアするなど、一見不可解な結果をもたらす可能性があります。この場合、サンプル数が少ないホットスポットを無視するか、より荒い粒度 (関数単位など) に切り替えます。

イベントベース・サンプリングの平均オーバーヘッドは、1 ミリ秒のサンプリング間隔でおよそ 2% です。

同時に収集可能なハードウェア・イベント (PMC) の数は、CPU の能力によって異なります。通常 4 イベントを超えることはありません。この制限に対処するため、インテル® VTune™ プロファイラーはイベントリストをいくつかのイベントグループに分割します。各グループは、同時に収集できるイベントで構成されます。インテル® VTune™ プロファイラーは次のいずれかの手法を使用します。

Linux* へのインストールでは、ユーザーごとのフィルター処理を有効にしてサンプリング・ドライバーをインストールする方法もあります。フィルターが有効な場合、コレクターは収集を開始したユーザーによってスポーンされたプロセスのデータのみを収集します。無効 (デフォルト) の場合、システムのすべてのプロセスからサンプルが収集されます。セキュリティーの観点から、クラスター環境ではほかのユーザーから収集を分離するためフィルターを利用することを検討してください。管理者/root は、ドライバーを再ビルド/再起動することでいつでもフィルターモードを変更することができます。一般ユーザーは、製品のインストール後にモードを変更することはできません。

デフォルトでは、インテル® VTune™ プロファイラーのコレクターは、ターゲットをサンプリングして、実行パスは解析しません。ただし、解析の設定で [コールスタック] オプションを有効にすると、ハードウェア・パフォーマンス・イベントやタイムスタンプを正確に測定し、スレッドがアクティブ化または非アクティブ化されるまでコールスタックを収集できます。Linux* システムでは、インテル® VTune™ プロファイラーはデフォルトでハードウェア・イベントベースのスタック解析にドライバーを使用しない Perf 収集モードを使用します。

インテル® VTune™ プロファイラーは、ハードウェア・イベントベース・サンプリング・コレクターを使用して、次の解析タイプのデータを収集します。

プレビュー機能は、正式リリースに含まれるかどうか未定です。皆さんが機能に対する有用性のフィードバックを送ることで、将来の採用決定の判断に役立ちます。プレビュー機能で収集されたデータは、将来のリリースで下位互換が提供される保証はありません。parallel.studio.support@intel.com または intelsystemstudio@intel.com へフィードバックをお送りください。

ハードウェア・イベントベース・サンプリング収集に基づくカスタム解析タイプを作成できます。

注意

ハードウェア・イベントベース・サンプリング・コレクターを使用する解析タイプは、システム上で一度に 1 つしか収集できない制限があります。

必要条件:

ハードウェア・イベントベース・サンプリング収集タイプのサンプリング・ドライバーをインストールすることを推奨します。Linux* と Android* ターゲットでは、サンプリング・ドライバーがインストールされていないと、インテル® VTune™ プロファイラーはドライバーを使用しない Pert* 収集を使用して動作します。Linux* ターゲットシステムでは、次の構成の設定に注意してください。

関連情報