インテル® VTune™ Amplifier 2018 ヘルプ

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

インテル® VTune™ Amplifier のハードウェア・イベントベース・サンプリング (EBS) コレクターは、プロセッサーのパフォーマンス・モニタリング・ユニット (PMU) のパフォーマンス・モニタリング・カウンター (PMC) のオーバーフロー機能を使用して、アプリケーションをプロファイルします。

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

統計サンプリングでは 100% 正確なデータを提供できません。インテル® VTune™ Amplifier がイベントを収集するとき、イベントを関連付けるだけでなく、そのイベントに先行するサンプリング間隔 (10,000 から 2,000,000 イベント) を現在のコード・コンテキストに関連付けます。サンプリング数が多い場合、このサンプリングのずれがパフォーマンス解析の精度に深刻な影響を与えることはなく、最終的な統計情報も有用なデータとして参照できます。しかし、短時間に何か発生した場合、わずかなサンプルのみ収集されます。これはドライバーでまれに見られ、0 サイクルで 200 万命令がリタイアするなど、一見不可解な結果をもたらす可能性があります。この場合、わずかなサンプルのホットスポットを無視するか、(関数などの) 高い粒度に切り替えると良いでしょう。

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

同時に収集可能なハードウェア・イベント (パフォーマンス・モニタリング・カウンター) の数は CPU の性能により制限されます。通常は 4 イベント以下です。この制限を克服するため、インテル® VTune™ Amplifier ではイベントをいくつかのグループに分けています。それぞれのグループは、同時に収集可能なイベントからなります。インテル® VTune™ Amplifier は、次のいずれかの手法を使用します。

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

デフォルトでは、インテル® VTune™ Amplifier のコレクターはターゲットのサンプリングは行いますが、実行パスは解析しません。[Collect stacks (スタックを収集)] オプションを有効にすると、スレッドがアクティブまたはインアクティブにされた位置までのコールスタック収集と、すべてのハードウェア・パフォーマンス・イベントやタイムスタンプの正確な測定が可能になります。

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

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

ハードウェア・イベントベース・サンプリング・コレクターを使用する解析タイプは、システム上で一度に 1 つの収集のみが許可されます。

必要条件:

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

関連情報