中
サーベイ + 特性化 (トリップカウント & FLOP、コールスタック、メモリーレベル) + メモリー・アクセス・パターン
中精度のプリセットでは、インテル® Advisor は基本的なルーフライン機能を拡張し、すべてのメモリーレベルのメトリックとコールスタック・データを収集します。これにより、アプリケーションを詳しく解析できます。ルーフライン・グラフは、メモリー・アクセス・パターン解析の結果を基に、ループを制限する要因を把握し、ルーフライン・ガイドで推奨事項を示します。
メモリー・アクセス・パターンのデータ解釈については、メモリー使用とトラフィックを調査を参照してください。
メモリーレベルのルーフラインを使用すると、それぞれのキャッシュレベルと演算強度で各ループを調査することができ、どのキャッシュレベルがパフォーマンスのボトルネックであるか正確に理解できます。
メモリーレベルのルーフラインは以下に役立ちます。

次のようにメモリーレベルのルーフライン・グラフを設定します。


メモリーレベルのルーフライン・データ
インテル® Advisor はキャッシュ・シミュレーションにより、CPU および異なるメモリー・サブシステム間のすべてのトラフィック・タイプの統合トラフィック・データを収集します。このデータを基に、インテル® Advisor は特定のキャッシュレベルのデータ転送数をカウントし、それぞれのループと各メモリーレベルの AI を計算します。
一方のレベルから他方のレベルへのトラフィックの変化を観察し、これらのレベルで可能な限り高い帯域幅を表すルーフと比較することで、カーネルのメモリー階層のボトルネックを特定し最適化の方針を決定します。
Arithmetic intensity (演算強度) はドットが表示される順番を決定し、コードのパフォーマンスを視覚的に理解できます。例えば、L1 のドットはグラフ上で左から右に最も大きく最初に表示されるドットでなければなりません。ただし、ドットの順番は、メモリー・アクセス・タイプ、レイテンシー、または技術的な問題により変わることがあります。さらにメモリー・アクセス・パターン解析を実行して、この問題を調査します。
特定のループを詳しく調査するには、グラフ上のドットを選択して、グラフの下にある [Code Analytics (コード解析)] タブを開きます。

インテル® Advisor の基本ルーフライン・モデルである、キャッシュ対応のルーフライン・モデル (CARM) は、セルフデータを示します。コールスタック付きのインテル® Advisor のルーフラインは、合計データにより基本モデルを拡張します。
セルフデータは、メモリーアクセス、FLOP、およびループ/関数にのみ関連する期間を示します。それらから呼び出される他のループ/関数で発生したデータは削除されます。
合計データは、ループ/関数自身とそこから呼び出される関数/ループからのデータの合計です。
コールスタック付きのルーフラインの合計データは次のような場合に有用です。
ループや関数そのものではなく、ループや関数のソースを調査する場合。
さまざまな状況で呼び出された時に異なる動作をするループ/関数の正確なビューを取得したい場合。
小さなループ/関数によるパフォーマンス低下の根本的な原因となる可能性がある、呼び出しチェーンの上位にある設計の問題を明らかにする場合。
コールスタックを表示するには、Roofline (ルーフライン) グラフで、[With Callstacks (コールスタック付き)] をオンにします。

ドットの子や孫を表示/非表示にするには次のようにします。
子のドットを親のドットに折りたたむには、ループ/関数ドットのコントロール
をクリックします。
ループ/関数ドット
をクリックして、子ドットと親ドットへの視覚インジケーターを使用してそれらの関係を表示します。
コールスタック・グラフ・データを含むルーフライン
次の Roofline (ルーフライン) グラフは、コールスタック付きのルーフラインの利点を示します。
選択されたループ/関数の呼び出しチェーン全体 (呼び出し先は除外します) を、ナビゲーション可能な色分けされた [Callstack (コールスタック)] ペインに示します。
ループと関数の関係を示す視覚的なインジケーター (呼び出し側と呼び出し先) を表示します。
いくつかの小さなループを 1 つの全対表現に統合することで、多数のドットがあるグラフを単純化できます。
セルフデータを持たないループ/関数は、展開されるとグレー表示され、折りたたむとカラー表示されます。セルフデータを含むループ/関数は、展開されるとデータに適した座標、サイズ。およびカラー表示されますが、合計時間に関連するサイズは薄いグレーで表示されます。そのようなループ/関数が折りたたまれると、それらは合計時間に適したサイズとカラーに変わり、該当する場合は合計パフォーマンスと合計演算強度を反映します。
