ベクトル化とコードの調査パースペクティブには、目的とする結果に応じて実行できるいくつかの解析タイプがあります。メインの解析はサーベイですが、これは、アプリケーション内のループと関数のパフォーマンス・データを収集し、ベクトル化されている、およびベクトル化されていないループ/関数を特定します。サーベイ解析は、アプリケーションのパフォーマンスに関する基本的な情報を得るには十分です。
自動スクリプトを使用してインテル® Advisor の環境変数を設定し、コマンドライン・インターフェイス (CLI) 利用できるようにします。
注以下のコマンドでは、コマンドを実行する前に myApplication をアプリケーションの実行可能形式へのパスと名前に置き換える必要があります。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
advisor --collect=survey --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --stacks --project-dir=./advi_results -- ./myApplicationadvisor --collect=map --select=has-issue --project-dir=./advi_results -- ./myApplicationadvisor --collect=dependencies --project-dir=./advi_results --select=has-issue -- ./myApplicationインテル® Advisor のグラフィカル・ユーザー・インターフェイス (GUI) で結果を表示したり、コマンドプロンプト/ターミナルでサマリーを出力またはファイルに保存したりできます。詳細については、以下の結果表示を参照してください。
解析の詳細
ベクトル化とコードの調査ワークフローには次の解析が含まれます。
各解析には、その動作を変更して、追加のパフォーマンス・データを収集する一連の追加オプションがあります。実行する解析やオプションが増えるほど、アプリケーションに関連する有用なデータを得ることができます。
次のオプションを検討してください。
特性化オプション
コマンドラインから特性化解析を実行するには、次のコマンドラインのアクションを使用します: --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 | utilization。enable-cache-simulation とともに使用します。 |
オプションについては、advisor コマンドオプションのリファレンスをご覧ください。
メモリー・アクセス・パターンのオプション
メモリー・アクセス・パターン解析は、オーバーヘッドが高いためオプションです。メモリー・アクセス・パターン解析を実行するには、次のコマンドラインのアクションを使用します: --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 コマンドオプションのリファレンスをご覧ください。
依存関係オプション
依存関係解析はオーバーヘッドが高いためオプションですが、アプリケーションにスカラーループ/関数がある場合に必要となります。コマンドラインから依存関係解析を実行するには、次のコマンドラインのアクションを使用します: --collect=dependencies。
推奨されるアクションのオプション:
オプション |
説明 |
|---|---|
--select=<string> |
ループ ID、ソースの場所、または scalar、has-issue、markup=<markup-mode> などの基準で解析するループを選択します。これは必須オプションです。 その他の選択オプションについては、select を参照してください。 |
--filter-reductions |
すべての潜在的なリダクションと診断をマークします 。 |
オプションについては、advisor コマンドオプションのリファレンスをご覧ください。
ベクトル化とコードの調査結果の調査を続行します。メトリックのレポートに関する詳細は、CPU とメモリーメトリックをご覧ください。