コマンドライン から CPU / メモリー・ルーフラインの調査パースペクティブを実行

ルーフライン・グラフを表示するため、インテル® Advisor は以下を行います。

  1. GPU プロファイルとサーベイ解析を使用して、OpenCL* カーネルのタイミングとメモリーデータを収集します。
  2. GPU プロファイルと特性化を使用して、ハードウェアの制限を測定し浮動小数点と整数操作のデータを収集します。

    インテル® Advisor は、次の命令グループの加重合計として計算操作 (FLOP と INTOP) を計算します。BASIC COMPUTE、FMA、BIT、DIV、POW、MATH。

    インテル® Advisor は、dst レジスターを使用して、収集された操作のデータタイプを自動的に判別します。

必要条件

自動スクリプトを使用してインテル® Advisor の環境変数を設定し、advisor コマンドライン・インターフェイス (CLI) 利用できるようにします。

CPUルーフライン・グラフを表示

CPU ルーフラインを実行するには 2 つの方法があります。次のいずれかを使用します。

次のコマンドでは、コマンドを実行する前にmyApplicationをアプリケーションの実行可能ファイルのパスと名前に置き換えてください。アプリケーションが引数を必要とする場合、実行可能ファイル名のにそれらを指定します。

手法 1ショートカット・コマンドを実行します

ショートカットを使用して、CPU ルーフライン・グラフのデータを収集するには、次のコマンドを実行します。

advisor --collect=roofline --project-dir=./advi_results -- ./myApplication

このコマンドは、キャッシュ対応のルーフラインのモデル化に基づいて、基本的な CPU ルーフライン・グラフのデータを収集します。コマンドにオプションを指定することでより多くのデータを収集できます。その他のオプションについては、以下の解析の詳細をご覧ください。

手法 2解析を個別に実行

MPI アプリケーションを解析するには、この方法を使用します。

  1. サーベイ解析を実行します。
    advisor --collect=survey --project-dir=./advi_results -- ./myApplication
  2. トリップカウントと FLOP データを収集するため特性化解析を実行します。
    advisor --collect=tripcounts --flop --project-dir=./advi_results -- ./myApplication

これらのコマンドは、キャッシュ対応のルーフラインのモデル化に基づいて、基本的な CPU ルーフライン・グラフのデータを収集します。コマンドにオプションを指定することでより多くのデータを収集できます。その他のオプションについては、以下の解析の詳細をご覧ください。

インテル® Advisor GUI で結果を表示するか、対話型 HTML レポートを生成できます。詳細については、以下の結果表示を参照してください。

解析の詳細

CPU / メモリー・ルーフラインの調査ワークフローには次の解析が含まれます。

  1. ルーフライン・グラフを表示します。このステップでは、サーベイと特性化 (トリップカウント & FLOP) 解析を連続して実行します。
  2. メモリー・トラフィック・データとメモリー使用量の問題を特定するメモリー・アクセス・パターン (オプション) 解析、
  3. 依存関係 (オプション) は、オフロードを制限する可能性があるループ伝搬依存を特定します。

各解析には、その動作を変更して、追加のパフォーマンス・データを収集する一連の追加オプションがあります。実行する解析やオプションが増えるほど、アプリケーションに関連する有用なデータを得ることができます。

次のオプションを検討してください。

ルーフラインのオプション

ルーフライン解析を実行するには、次のコマンドラインのアクションを使用します: --collect=roofline

解析を個別に実行する場合、このオプションを --collect=tripcounts とともに使用できます。

推奨されるアクションのオプション:

オプション

説明

--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 とメモリーメトリックをご覧ください。

関連情報