コマンドラインからベクトル化とコードの調査パースペクティブを実行

ベクトル化とコードの調査パースペクティブには、目的とする結果に応じて実行できるいくつかの解析タイプがあります。メインの解析はサーベイですが、これは、アプリケーション内のループと関数のパフォーマンス・データを収集し、ベクトル化されている、およびベクトル化されていないループ/関数を特定します。サーベイ解析は、アプリケーションのパフォーマンスに関する基本的な情報を得るには十分です。

必要条件

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

ベクトル化とコードの調査パースペクティブを実行

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

  1. サーベイ解析を実行します。
    advisor --collect=survey --project-dir=./advi_results -- ./myApplication
  2. トリップカウントと FLOP データを収集するため特性化解析を実行します。
    advisor --collect=tripcounts --flop --stacks --project-dir=./advi_results -- ./myApplication
  3. オプション: 非効率なメモリー・アクセス・パターンの可能性があるループ/関数に対し、メモリー・アクセス・パターン解析を実行します。
    advisor --collect=map --select=has-issue --project-dir=./advi_results -- ./myApplication
  4. オプション: 依存関係解析を実行して、依存関係が存在すると想定されるループ/関数のループ伝搬依存を確認します。
    advisor --collect=dependencies --project-dir=./advi_results --select=has-issue -- ./myApplication

インテル® Advisor のグラフィカル・ユーザー・インターフェイス (GUI) で結果を表示したり、コマンドプロンプト/ターミナルでサマリーを出力またはファイルに保存したりできます。詳細については、以下の結果表示を参照してください。

解析の詳細

ベクトル化とコードの調査ワークフローには次の解析が含まれます。

  1. 初期パフォーマンス・データを収集するための調査。
  2. さらに詳細なパフォーマンス・データを収集するため、トリップカウント & FLOP データによる特性化を行います。
  3. メモリー・トラフィック・データとメモリー使用量の問題を特定するメモリー・アクセス・パターン (オプション) 解析、
  4. ループ伝搬依存を特定する依存関係解析 (オプション)。

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

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

特性化オプション

コマンドラインから特性化解析を実行するには、次のコマンドラインのアクションを使用します: --collect=tripcounts.

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

オプション

説明

--flop

AVX-512 プラットフォームの浮動小数点演算と整数演算、メモリー・トラフィック、およびマスク利用率メトリックに関連するデータを収集します。

--stacks

コール・スタック・データの高度な収集を有効にします。

--enable-cache-simulation

ターゲット・アプリケーションの 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 | utilizationenable-cache-simulation とともに使用します。

オプションについては、advisor コマンドオプションのリファレンスをご覧ください。

メモリー・アクセス・パターンのオプション

メモリー・アクセス・パターン解析は、オーバーヘッドが高いためオプションです。メモリー・アクセス・パターン解析を実行するには、次のコマンドラインのアクションを使用します: --collect=map

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

オプション

説明

--select=<string>

ループ ID、ソースの場所、または scalarhas-issuemarkup=<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 コマンドオプションのリファレンスをご覧ください。

依存関係オプション

依存関係解析はオーバーヘッドが高いためオプションですが、アプリケーションにスカラーループ/関数がある場合に必要となります。コマンドラインから依存関係解析を実行するには、次のコマンドラインのアクションを使用します: --collect=dependencies

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

オプション

説明

--select=<string>

ループ ID、ソースの場所、または scalarhas-issuemarkup=<markup-mode> などの基準で解析するループを選択します。これは必須オプションです。

その他の選択オプションについては、select を参照してください。

--filter-reductions

すべての潜在的なリダクションと診断をマークします 。

オプションについては、advisor コマンドオプションのリファレンスをご覧ください。

次のステップ

ベクトル化とコードの調査結果の調査を続行します。メトリックのレポートに関する詳細は、CPU とメモリーメトリックをご覧ください。

関連情報