ルーフライン・グラフを表示するため、インテル® Advisor は以下を行います。
インテル® Advisor は、次の命令グループの加重合計として計算操作 (FLOP と INTOP) を計算します。BASIC COMPUTE、FMA、BIT、DIV、POW、MATH。
インテル® Advisor は、dst レジスターを使用して、収集された操作のデータタイプを自動的に判別します。
自動スクリプトを使用してインテル® Advisor の環境変数を設定し、advisor コマンドライン・インターフェイス (CLI) 利用できるようにします。
CPU ルーフラインを実行するには 2 つの方法があります。次のいずれかを使用します。
注次のコマンドでは、コマンドを実行する前にmyApplicationをアプリケーションの実行可能ファイルのパスと名前に置き換えてください。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
手法 1ショートカット・コマンドを実行します
ショートカットを使用して、CPU ルーフライン・グラフのデータを収集するには、次のコマンドを実行します。
advisor --collect=roofline --project-dir=./advi_results -- ./myApplicationこのコマンドは、キャッシュ対応のルーフラインのモデル化に基づいて、基本的な CPU ルーフライン・グラフのデータを収集します。コマンドにオプションを指定することでより多くのデータを収集できます。その他のオプションについては、以下の解析の詳細をご覧ください。
手法 2解析を個別に実行
MPI アプリケーションを解析するには、この方法を使用します。
advisor --collect=survey --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --project-dir=./advi_results -- ./myApplicationこれらのコマンドは、キャッシュ対応のルーフラインのモデル化に基づいて、基本的な CPU ルーフライン・グラフのデータを収集します。コマンドにオプションを指定することでより多くのデータを収集できます。その他のオプションについては、以下の解析の詳細をご覧ください。
インテル® Advisor GUI で結果を表示するか、対話型 HTML レポートを生成できます。詳細については、以下の結果表示を参照してください。
解析の詳細
CPU / メモリー・ルーフラインの調査ワークフローには次の解析が含まれます。
各解析には、その動作を変更して、追加のパフォーマンス・データを収集する一連の追加オプションがあります。実行する解析やオプションが増えるほど、アプリケーションに関連する有用なデータを得ることができます。
次のオプションを検討してください。
ルーフラインのオプション
ルーフライン解析を実行するには、次のコマンドラインのアクションを使用します: --collect=roofline。
推奨されるアクションのオプション:
オプション |
説明 |
|---|---|
--stacks |
コール・スタック・データの高度な収集を有効にします。CPU ルーフラインとコールスタックを取得するには、このオプションを使用します。 |
--enable-cache-simulation |
ターゲット・アプリケーションの CPU キャッシュ動作をモデル化します。このオプションを使用して、すべてのメモリーレベルのデータを表示する、メモリーレベルの CPU ルーフラインを取得します。 |
--cache-config=<config> |
キャッシュ階層を指定して、CPU キャッシュの動作をモデル化するデータを収集します。enable-cache-simulation とともに使用します。 値は次のテンプレートに従う必要があります: [<num_of_caches>]:[<num_of_ways_caches_connected> ]:[<cache_size>]:[<cacheline_size>] 3 つのキャッシュレベルは / で区切ります。 |
--cachesim-associativity=<num> |
CPU キャッシュの動作をモデル化するため、キャッシュの連想性を設定します。1 | 2 | 4 | 8 (デフォルト) | 16。enable-cache-simulation とともに使用します。 |
--cachesim-mode=<mode> |
注目する CPU キャッシュ動作のモデル化を設定します。cache-misses |footprint |utilization 。enable-cache-simulation とともに使用します。 |
オプションについては、advisor コマンドオプションのリファレンスをご覧ください。
メモリー・アクセス・パターンのオプション
メモリー・アクセス・パターン解析は、オーバーヘッドが高いためオプションです。この解析では、CPU ルーフライン・グラフに情報が追加されることはありません。結果はリファインメント・レポートに追加され、GUI や CLI で表示できます。これにより、メモリーレベルのルーフライン・グラフをさらに深く理解し、詳細な最適化の推奨事項を得ることができます。
メモリー・アクセス・パターン解析を実行するには、次のコマンドラインのアクションを使用します: --collect=map。
推奨されるアクションのオプション:
オプション |
説明 |
|---|---|
--select=<string> |
ループ ID、ソースの場所、または scalar、has-issue、markup=<markup-mode> などの基準で解析するループを選択します。これは必須オプションです。 その他の選択オプションについては、select を参照してください。 |
--enable-cache-simulation |
ターゲット・アプリケーションの CPU キャッシュ動作をモデル化します。 |
--cachesim-cacheline-size=<num> |
CPU キャッシュの動作をモデル化するため、キャッシュのラインサイズ (バイト単位) を設定します: 4 | 8 | 16 | 32 | 64 (default) | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | 32768 | 65536。enable-cache-simulation とともに使用します。 |
--cachesim-sets=<num> |
CPU キャッシュの動作をモデル化するため、キャッシュのセットサイズ (バイト単位) を設定します。256 | 512 | 1024 | 2048 | 4096 (デフォルト) | 8192。enable-cache-simulation とともに使用します。 |
オプションについては、advisor コマンドオプションのリファレンスをご覧ください。
依存関係オプション
依存関係解析はオーバーヘッドが高いためオプションですが、アプリケーションにスカラーループ/関数がある場合に必要となります。この解析では、CPU ルーフライン・グラフに情報が追加されることはありません。結果はリファインメント・レポートに追加され、GUI や CLI で表示できます。これにより、さらに詳しい最適化の推奨事項を取得できます。
コマンドラインから依存関係解析を実行するには、次のコマンドラインのアクションを使用します: --collect=dependencies。
推奨されるアクションのオプション:
オプション |
説明 |
|---|---|
--select=<string> |
ループ ID、ソースの場所、または scalar、has-issue、markup=<markup-mode> などの基準で解析するループを選択します。これは必須オプションです。 その他の選択オプションについては、select を参照してください。 |
--filter-reductions |
すべての潜在的なリダクションと診断をマークします 。 |
オプションについては、advisor コマンドオプションのリファレンスをご覧ください。
CPU / メモリー・ルーフライン調査の結果を調査を続行します。メトリックのレポートに関する詳細は、CPU とメモリーメトリックをご覧ください。