General Exploration (一般解析) データを解釈する

同カテゴリーの次の記事

インテル® VTune™ Amplifier について

この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Interpreting General Exploration Data」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS 環境でも十分ご利用いただけます。また、構成は英語版のヘルプと同じ階層構造にしてあります。


実行カテゴリーで分類された主要なハードウェア・メトリックを使用する、トップダウンのマイクロアーキテクチャー解析法による PMU 解析向けのインテル® VTune™ Amplifier の一般解析ビューポイントを調査することで、パイプラインのどの部分が実行時間の大半を占めるか容易に特定できます。

一般解析タイプ (英語) のデータ収集が完了すると、インテル® VTune™ Amplifier は [General Exploration viewpoint (一般解析ビューポイント)] を開きます。ビューポイントに表示されるイベントベース・メトリック (英語) の階層は、ハードウェアのアーキテクチャーによって変わります。例えば、インテル® マイクロアーキテクチャー (開発コード名: Ivy Bridge) 以降では、インテル® VTune™ Amplifier はトップダウンのマイクロアーキテクチャー解析法に基づいて実行カテゴリーを解析します。

一般解析ビューポイントの上位レベルのパフォーマンス・メトリックは、4 つのカテゴリーに分類されています。

それぞれのメトリックは、インテル® アーキテクチャーで定義されているイベント比率と、固有の事前定義されたしきい値を持っています。インテル® VTune™ Amplifier は、それぞれのプログラムユニット (関数など) で収集された比率を解析します。この値がしきい値を超え、プログラムユニットの CPU 時間が収集された CPU 時間全体の 5% を上回ると、潜在的なパフォーマンスの問題につながるため、その値はピンク色で強調表示されます。

注:

ハードウェア・イベントベース・サンプリング解析で示されるパフォーマンス・データを解釈するため、次のステップに従います。

  1. メトリックを知りパフォーマンスのベースラインを定義する。
  2. ハードウェアの問題を特定する。
  3. ソースを解析する。
  4. その他の解析タイプ/ビューポイントを調査する。

メトリックを知りパフォーマンスのベースラインを定義する

一般解析ビューポイントで、[Summary (サマリー)] タブをクリックして [Summary (サマリー)] ウィンドウに切り替えます。

最初のセクションは、パイプライン・スロットやクロックティックで測定されたハードウェア関連のメトリックごとのアプリケーションの実行全体における特性のサマリーを示しています。メトリックは、実行カテゴリーごとに構成されます。メトリックの説明を見るには、ヘルプアイコン にマウスポインタ―を移動します。

上記は、L1 Bound (L1 依存) メトリックにマウスポインターを移動して表示される説明の例です。

フラグが表示されるメトリックは、アプリケーション実行全体でパフォーマンスの問題に影響することを示します。表示されているフラグの値にマウスポインターを移動すると、問題の説明が表示されます。

開発者の皆さんは、インテル® VTune™ Amplifier によって特定されたパフォーマンスの問題をベースラインとして、最適化の前後で比較されることでしょう。最もよく利用されるパフォーマンスの基準は Elapsed time (経過時間) 値です。

灰色で反転表示されるメトリック値は、このメトリックで収集されたデータの信頼性が低いことを表します。これは、収集された PMU イベントのサンプル数が非常に少ないことが原因であると考えられます。このような信頼性の低いメトリック値にマウスポインターを移動すると、インテル® VTune™ Amplifier は次のようなメッセージを表示します。

このデータは無視できますが、収集に戻ってデータ収集時間、サンプリングの間隔、またはワークロードを増やして再度収集することもできます。

すべてのメトリック名はハイパーリンクされています。ハイパーリンクをクリックすると、[Bottom-up (ボトムアップ)] ウィンドウが開いて選択されたメトリックでグリッド中のデータがソートされます。

ハードウェアの問題を特定する

プログラムユニットごとのパフォーマンス問題を表示するには、[Bottom-up (ボトムアップ)] (英語) ペインに切り替えます。各列はプログラムユニットとそのユニットで費やされる時間の比率を表します。プログラムユニットが CPU 時間の 5% 以上を占有する場合、ホットスポットであると考えられます。デフォルトで、インテル® VTune™ Amplifier は降順でクロックティックでソートされたデータを表示するため、リストの上位にホットスポットが現れます。

[Bottom-up] ペインのほとんどのカラムは、ハードウェアのパフォーマンス・メトリックを表します。インテル® VTune™ Amplifier は、インテル® アーキテクチャー向けの式を基にメトリックを計算します。メトリックの説明と式を見るには、カラムのヘッダーにマウスポインターを移動します。デフォルトでは、メトリック値は数値として表示されます。[Show Data As (形式を指定してデータを表示)] コンテキスト・メニューで表示モードを変更できます。

各メトリックにはしきい値が設定されています。メトリック値がしきい値を超えるプログラムユニットはホットスポットであり、インテル® VTune™ Amplifier はパフォーマンス・クリティカルであるとして、その値をピンク色で強調表示します。問題の説明、解決策 (もしあれば)、および問題のしきい値を計算するために使用された式を見るには、それぞれのピンクのセルにマウスポインターを移動します。

インテル® マイクロアーキテクチャー (開発コード名 Skylake) 上で作成された上記の例では、インテル® VTune™ Amplifier は price_out_impl 関数を最も CPU 時間を消費するホットスポットとして示しています。インテル® VTune™ Amplifier は、パイプラインのバックエンドがストールしており、バックエンドで Memory Bound (メモリー依存) > DRAM Bound (DRAM 依存) のボトルネックの問題を認識しました。44.9% のクロックティックが price_out_impl 関数内で使用され、DRAM からのデータを待機してストールしています。これは、この関数のホットスポットに注目して最適化すると、~2 倍スピードアップできる可能性があることを意味します。

インテル® VTune™ Amplifier は、一般的な種類のパイプラインのボトルネックを特定できます。そして、ボトルネックを掘り下げることで、詳細が得られます。下位レベルのメトリックのデータが表示されない場合、インテル® VTune™ Amplifier は下位レベルでボトルネックを見つけられなかったことを意味します。

ソースを解析する

クリティカルな関数をダブルクリックすると、[Source (ソース)]/[Assembly (アセンブリー)] ウィンドウが開くのでソースコードを解析します。

[Source]/[Assembly] ウィンドウでは、ソースレベルでメトリックが表示されるため、メトリックで示される問題につながるコードの位置を特定できます。例えば、関数のバックエンドのメトリックが 60% であるとすると、ソース表示では 60% が行レベルや命令レベルに分割され、バックエンドのメトリック 60% に最も影響するソース行/命令を特定するのに役立ちます。

ホットスポット・ナビゲーション・ツールバーのボタンを使用して、それぞれのメトリックに影響する最も重要なホットスポットへ移動し、最適化すべきコードを特定できます。

その他の解析タイプ/ビューポイントを調査する

  • ホットスポット・ビューポイントを使用して収集されたデータを表示したり、Basic Hotspot (基本ホットスポット) 解析タイプを実行することができます。ホットスポット・ビューポイントでホットな関数のソースとアセンブリー・コードを解析すると、どの命令がパフォーマンスの低下に影響し、ソース行がどれくらい CPU 時間を消費しているのか特定するのに役立ちます。このようなコード解析は、サブメトリックで問題が示されず、上位レベルのメトリックで問題が報告されている場合の調査に役立ちます (上記の例を参照)。
  • Comparison Analysis (比較解析) を実行して、最適化後のパフォーマンス・ゲインを知ることができます。
  • 独自の解析設定を作成 (英語) して、注目するイベントを監視することも可能です。

注:

プロセッサーのイベントに関する情報は、「インテル® プロセッサーのイベント・リファレンス」 (英語) をご覧ください。

上位トピック: 結果の解釈

関連項目

パフォーマンス解析の設定
マイクロアーキテクチャーのトップダウン解析法を使用して、アプリケーションをチューニングする
ソースを表示する
結果の解釈

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

関連記事

  • 非効率な同期非効率な同期 この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Inefficient Synchronization」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]
  • マイクロアーキテクチャーのトップダウン解析法を使用してアプリケーションをチューニングするマイクロアーキテクチャーのトップダウン解析法を使用してアプリケーションをチューニングする この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Tuning Applications Using a Top-down Microarchitecture Analysis Method」の日本語参考訳です。Windows* […]
  • セルフ時間と合計時間セルフ時間と合計時間 この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Self Time and Total Time」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]
  • OpenMP* アプリケーションの解析OpenMP* アプリケーションの解析 この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Analyzing OpenMP* Applications」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]
  • ヘルプについて この記事は、インテル® デベロッパー・ゾーンに公開されている、インテル® VTune™ Amplifier のオンラインヘルプの一部「Getting Help」の日本語参考訳です。Windows* 用のヘルプではありますが、その他の OS […]