インテル® Advisor ヘルプ

ルーフライン解析

目的と使い方 | 要件 | 実行 | 領域と使い方 | 次に行うことは?

ルーフライン解析の目的と使い方

ルーフライン解析を実行して [サーベイレポート][ルーフライン] グラフを追加して、ハードウェアによって課せられるパフォーマンスの上限と実際のパフォーマンスを可視化し、制限の主な要因 (メモリー帯域幅や計算能力) を特定するのを支援します。これにより、最適化ステップの理想的なロードマップが示されます。

[ルーフライン] グラフを使用して、次のような疑問に対する答えを見つけることができます。

ルーフライン解析の要件

ルーフライン解析を開始する前に、次の操作を行います。

ループライン解析を実行

[ベクトル化ワークフロー] タブで、[ルーフラインを実行] の下にある インテル® Advisor のコントロール: 解析の実行 をクリックし、ターゲット・アプリケーションを 2 回実行します。

完了すると、インテル® Advisor は [ルーフライン] グラフを表示します。

ルーフライン・グラフ領域と使い方

[ルーフライン] グラフの表示に関するいくつかのコントロールがあります。
インテル® Advisor: ルーフライン・グラフとサーベイレポート

1

クリックして、[ルーフライン] グラフと [サーベイレポート] を切り替えることができます。

2

クリックして、[ルーフライン] グラフと [サーベイレポート] 並べて表示するかどうかを切り替えることができます。

3

クリックして、[ルーフライン] グラフと [サーベイレポート] のサイズを調整できます。

重要なデータに注目するのに役立つ次のようなコントロールがあります。
インテル® Advisor: ルーフライン・コントロール

1

  • マウスで範囲を選んで複数のループを選択します。単一のループを選択するには、ループを示す点をクリックします。マウスホイールでズームイン/アウトすることもできます。

  • グラフを上下左右に移動します。

  • ズームを解除、再適用します。

  • デフォルトのズームレベルにリセットします。

  • グラフをクリップボードへコピー、ファイルへ保存、インテル® Advisor ビューアーを必要としないインタラクティブな HTML ファイルとしてエクスポート、または比較のため保存できます。矢印アイコンを使用してオプションを切り替えます。

2

  • アプリケーションがシステムで利用可能なコアよりも少ないスレッドを使用する場合、実際のパフォーマンスの上限を観測するためルーフを調整します。

  • シングルスレッドのアプリケーション (または、ランクごとに 1 つのスレッドを実行するような MPI アプリケーションのような、シングルスレッドで実行するように構成されたマルチスレッド・アプリケーション) 向けにルーフをビルドする際にこのチェックボックスを使用します。(インテル® Advisor のフィルターを使用して [ルーフライン] グラフに表示するループを制御できますが、[ルーフライン] グラフは [スレッド] フィルターをサポートしていません。)

3

結果やスナップショット・ファイルを選択してロードし、同じ [ルーフライン] グラフ上で (同じピークを持つ) 現在の結果と比較します。ドロップダウンを使用し異なる結果やスナップショット・ファイルを選択します。

4

  • 浮動小数点操作、整数操作、ミックス操作 (浮動小数点と整数) の間で表示を切り替えます。

  • このチェックボックスを使用して、プログラム全体のスタックと同じループの異なるコードパスに関するデータを表示できます。デフォルトでは、[ルーフライン] グラフは [サーベイレポート][ループ情報] ペインにループと関数データのみを表示します。: ルーフライン解析を実行する前に、[コールスタックとルーフラインを有効にする] チェックボックスをオンにする必要があります。

5

  • ルーフラインの表示 (線) と可視性を変更します。

  • ループの重さの表示 (点) を変更します。

  • 手動でルーフ値を調整して、コード固有のハードウェアの制限を設定します。

6

倍率を指定してズームイン/アウトします。

7

項目にマウスをホバーするとその項目のメトリックが表示されます。

マウスを点にホバーすると、[ルーフライン] グラフには 2 つの青い点が表示され、それぞれループを最適化して上位のルーフラインに到達することで得られるパフォーマンスと、達成可能な最上位のルーフラインを示します。(上位のルーフラインと達成可能な最上位のルーフラインが同一である場合、[ルーフライン] グラフには青い点が 1 つのみ表示されます。)

点をクリックして黒く変更すると、対応するコードとメトリックが別のウィンドウタブに表示されます。

点をクリックした後に、[ルーフライン] グラフの空白の部分を右クリックして、以下を選択します。

  • [フィルターアウト] をクリックして一時的に点を隠します

  • [フィルターイン] をクリックして一時的にほかのすべての点を隠します

  • [フィルターをクリア] をクリックして元のデータをすべて表示します

8

ループの重さを示すカテゴリー別にループの数と比率を表示します。

ルーフライン・グラフのデータ

[ルーフライン] グラフは、マシンの [達成可能な最大パフォーマンス] と、アプリケーションの [達成可能なパフォーマンス][演算強度] を表示します。

一般に、次のことが言えます。

次の [ルーフライン] グラフでは、ループ A と G (大きな赤いドット)、そして B (小さな黄のドット) が最適化の最良の候補となります。ループ C、D、と E (小さな緑のドット)、および H (黄のドット) は、改善の余地がわずかであるため最適化に適していません。
ルーフライン・グラフの実際のスクリーンショット

[ルーフライン] グラフと [サーベイレポート] は、同期されます。ループが浮動小数点操作を含んでいる場合、[ルーフライン] グラフの [サーベイレポート] の対応するデータ行がハイライトされ、[サーベイレポート] のデータ行をクリックすると [ルーフライン] グラフの対応する点が点滅します。浮動小数点操作を含まないループは、[ルーフライン] グラフには表示されません。

[ルーフライン] グラフのそれぞれのルーフライン (線)、ピーク (長方形)、およびループ (点) にマウスポインターを移動すると、各要素の詳細が示されます。