インテル® Advisor は 2 つのリファインメント解析を提供します。
依存関係解析 (オプション) - 安全性のため、データの依存関係が想定されるとコンパイラーは保守的なコードを生成します。依存関係が想定されたため、コンパイラーがベクトル化できなかったループの実際の依存関係を確認するには、依存関係解析を実行します。実際に依存関係が検出されると、解析は依存関係を解決するのに役立つ詳細情報を提供します。目的: ベクトル化の強制が安全ではない真のデータ依存関係を特定して分類することが重要です。詳細については、依存関係の問題を確認を参照してください。
メモリー・アクセス・パターン (MAP) 解析 (オプション) - 不連続なメモリーアクセスや、ユニットストライド対非ユニットストライドなアクセスなど、多様なメモリーアクセスの問題を調査するため、MAP 解析を実行します。目的: ベクトルコードの実行速度を大幅に低下させたり、コンパイラーによる自動ベクトル化を妨げる問題を排除することが重要です。詳細については、メモリー使用とトラフィック調査をご覧ください。
[リファインメント・レポート] ウィンドウの上部にある [Site Report (サイトレポート)] ペインには、トップレベルの情報が示されます。
[Site Location (サイトの場所)] リストには、ループ名 (ID) 、ソースコードを含むファイル名、およびループが呼び出されたソースの行番号が表示されます。
Loop-Carried Dependencies (ループ伝搬依存) 反復間の依存関係 (ループ伝搬依存) の有無をまとめます。依存関係タイプ:
RAW-書き込み後の読み取り (フロー依存)
WAR-読み取り後の書き込み (アンチ依存)
WAW-書き込み後の書き込み (出力依存)
Strides Distribution (ストライド分割) 指定されたサイトのユニット/定数/可変ストライド比率。
Access Pattern (アクセスパターン) サイト内で検出されたストライドタイプに関する情報。
Site Name (サイト名) サーベイ解析でソース・アノテーションを使用する際のサイト名、または詳細な解析のためループをマークする際のシーケンス。
[Refinement Reports (リファインメント・レポート)] の上部ペインにある任意の行をダブルクリックして、ループのソースコードを表示します。
[Filters (フィルター)] ペイン - モジュール、ループ/関数、ベクトル化/非ベクトル化などの各種基準で解析データをフィルター処理します。
[Advanced View (詳細ビュー)] ペイン - 次のタブを含みます。
[Memory Access Patterns Report (メモリー・アクセス・パターン・レポート)] タブ - 選択されたループ/関数内部でアクセスされるメモリーのタイプに関する情報を表示します。(ベクトル化とコードの調査パースペクティブ。)
[Dependencies Report (依存関係レポート)] タブ - 予測されたデータ共有の問題と情報のリマークメッセージを表示します。
[Recommendations (推奨)] タブ - メモリーアクセス固有の推奨を表示します。