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

マイクロアーキテクチャー全般ビュー

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

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

サイクルを消費する場所を特定

マイクロアーキテクチャー全般ビューポイントの上位レベルのパフォーマンス・メトリックは、4 つのカテゴリーに分類されます。

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

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

  1. メトリックを理解してパフォーマンスのベースラインを定義します。

  2. ハードウェアの問題を特定します。

  3. ソースを解析します。

  4. その他の解析タイプとビューポイントを調査します。

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

マイクロアーキテクチャー全般ビューポイントで、[サマリー] タブをクリックして [サマリー] ウインドウに切り替えます。

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

マイクロアーキテクチャー全般: [サマリー] ウィンドウ

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

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

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

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

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

インテル® VTune™ プロファイラーは、デフォルトの詳細モードでマイクロアーキテクチャー全般データを収集します。このモードでは、サマリービューのすべてのメトリック名はハイパーリンクになっています。ハイパーリンクをクリックすると、[ボトムアップ] ウィンドウが開いて選択されたメトリックでグリッド中のデータがソートされます。軽量サマリー収集モードは、サマリービュー統計に限定されます。

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

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

[ボトムアップ] ペインのほとんどのカラムは、ハードウェアのパフォーマンス・メトリックを表します。インテル® VTune™ プロファイラーは、インテル® アーキテクチャー向けの数式を基にメトリックを計算します。表示されている値のカラムにカーソルを移動すると、メトリックの説明が表示されます。デフォルトでは、メトリック値は数値として表示されます。[データを表示] コンテキスト・メニューから表示モードを変更できます。

右のペインには、選択した関数のコンテキスト・サマリーが表示されます。関数ごとのハードウェア・メトリックと µ パイプ分布図で示される情報を解析して、特定の関数の全体的なパフォーマンスへの影響を推測します。

各メトリックにはしきい値が設定されています。メトリック値がしきい値を超えるプログラム単位はホットスポットであり、インテル® VTune™ プロファイラーはパフォーマンス・クリティカルであるとして、その値をピンク色で強調表示します。ピンク色で強調されたセルにマウスを移動すると、問題の説明と推奨される解決方法 (該当するものがあれば) が表示されます。

マイクロアーキテクチャー全般: [ボトムアップ] ウィンドウ

インテル® マイクロアーキテクチャー (開発コード名 Skylake) 上で作成された上記の例では、インテル® VTune™ プロファイラーは sphere_intersect 関数を最も CPU 時間を消費するホットスポットとして示しています。インテル® VTune™ プロファイラーは、パイプラインのバックエンドの一部がストールの原因であり、バックエンドでメモリー依存 > L1 依存ボトルネックの問題を検出しました。この関数の 14.6% のクロックティックが、L1 データキャッシュをミスしてストールしました。これは、この関数のホットスポットに注目して最適化することで、~15% スピードアップできる可能性があることを意味します。

インテル® VTune™ プロファイラーは、ほとんどの一般的なパイプライン・ボトルネックを特定できます。そして、さらに詳しく調査することが可能です。詳細レベルのメトリックのデータが表示されない場合、それはインテル® VTune™ プロファイラーが低レベルで顕著なボトルネックを識別しなかったことを意味します。

ソースを解析する

クリティカルな関数をダブルクリックして、[ソース/アセンブリー] ウィンドウを開き、ソースコードを解析します。

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

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

次にすることは?

関連情報