各パースペクティブに対し、インテル® Advisor にはいくつかのレベルの収集精度が用意されています。各精度レベルには、収集されるデータと収集の詳細レベルを制御する一連の解析とプロパティーが設定されています。選択する精度レベルが高いほど、アプリケーションの実行時間に課されるオーバーヘッドは大きくなります。
インテル® Advisor の GUI から、必要とする精度レベルのコマンドラインを生成できます。詳細については、GUI からコマンドラインを生成するを参照してください。
CPU から GPU へのモデル化では、次の精度レベルが利用できます。
比較 / 精度レベル |
Low (低) |
Medium (中) |
High (高) |
|---|---|---|---|
オーバーヘッド |
5-10x |
15-50x |
50-80x |
目的 |
大部分が計算集約型であり、依存関係を持たないアプリケーションのパフォーマンスのモデル化します |
すべてのキャッシュとメモリーレベルのトラフィックを考慮したアプリケーションのパフォーマンスをモデル化します |
オフロード候補の潜在的な制限をすべて考慮してアプリケーションのパフォーマンスのモデル化します |
解析 |
依存関係を想定しないサーベイ + 特性化 (トリップカウントと FLOP) + パフォーマンスのモデル化 |
サーベイ + 特性化 (選択したターゲットデバイスのキャッシュ・シミュレーションによるコールスタック付きトリップカウントと FLOP、および軽量データ転送シミュレーション) + 依存関係 + 依存関係を想定しないパフォーマンスのモデル化 |
サーベイ + 特性化 (選択したターゲットデバイスのキャッシュ・シミュレーションによるコールスタック付きトリップカウントと FLOP、および中間データ転送シミュレーション) + 依存関係 + 依存関係を想定したパフォーマンスのモデル化 |
結果 |
基本オフロードのモデル化レポートは、実行ユニットから L1 キャッシュへのメモリー・トラフィックのみを考慮して、ターゲットデバイスで推測されるスピードアップの可能性とパフォーマンス・メトリックを示します。メモリー集約型のアプリケーションでは、結果が正確でない可能性があります。 |
オフロードのモデル化レポートでは、すべてのキャッシュレベルとメモリーレベルのトラフィックを考慮して、ホストとデバイス間の推測されるデータ転送が拡張されています。 |
オフロードで最も収益性が高い領域を正確に検索する、データ転送の見積もりとループ伝搬依存関係の自動チェックを含むオフロードのモデル化レポート。 |
注: 次のコマンドでは、コマンドを実行する前にmyApplicationをアプリケーションの実行可能ファイルのパスと名前に置き換えてください。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
低精度
デフォルトのターゲットデバイスに対してアプリケーションのパフォーマンスを低精度でモデル化するには、次のコマンドを実行します。
advisor --collect=offload --accuracy=low --project-dir=./advi_results -- ./myApplicationこのコマンドは、次の解析を 1 つずつ実行します。
advisor --collect=survey --auto-finalize --static-instruction-mix --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --auto-finalize --target-device=xehpg_512xve --project-dir=./advi_results -- ./myApplicationadvisor --collect=projection --no-assume-dependencies --config=xehpg_512xve --project-dir=./advi_results中精度
この精度はデフォルトで設定されます。デフォルトのターゲットデバイスに対してアプリケーションのパフォーマンスを中精度でモデル化するには、次のコマンドを実行します。
advisor --collect=offload --project-dir=./advi_results -- ./myApplicationこのコマンドは、次の解析を 1 つずつ実行します。
advisor --collect=survey --auto-finalize --static-instruction-mix --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --stacks --auto-finalize --cache-simulation=single --data-transfer=light --target-device=xehpg_512xve --project-dir=./advi_results -- ./myApplicationadvisor --collect=projection --no-assume-dependencies --config=xehpg_512xve --project-dir=./advi_results高精度
デフォルトのターゲットデバイスに対してアプリケーションのパフォーマンスを高精度でモデル化するには、次のコマンドを実行します。
advisor --collect=offload --accuracy=high --project-dir=./advi_results -- ./myApplicationこのコマンドは、次の解析を 1 つずつ実行します。
advisor --collect=survey --auto-finalize --static-instruction-mix --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --stacks --auto-finalize --cache-simulation=single --target-device=xehpg_512xve --data-transfer=medium --project-dir=./advi_results -- ./myApplicationadvisor --collect=dependencies --filter-reductions --loop-call-count-limit=16 --select markup=gpu_generic --project-dir=./advi_results -- ./myApplicationadvisor --collect=projection --config=xehpg_512xve --project-dir=./advi_resultsループ伝搬依存関係を確認する方法については、依存関係がモデル化に与える影響を確認を参照してください。
GPU から GPU へのモデル化では、次の精度レベルが利用できます。
比較 / 精度レベル |
Low (低) |
Medium (中) |
High (高) |
|---|---|---|---|
オーバーヘッド |
5-10x |
15-50x |
15-50x |
目的 |
大部分が計算集約型であるアプリケーションのパフォーマンスをモデル化します |
すべてのキャッシュとメモリーレベルのトラフィックを考慮したアプリケーションのパフォーマンスをモデル化します |
オフロード候補の潜在的な制限をすべて考慮してアプリケーションのパフォーマンスのモデル化します |
解析 |
サーベイ + 特性化 (トリップカウントと FLOP) + パフォーマンスのモデル化 |
サーベイ + 特性化 (軽量データ転送シミュレーションによるトリップカウントと FLOP) + パフォーマンスのモデル化 |
サーベイ + 特性化 (中間データ転送シミュレーションによるトリップカウントと FLOP) + パフォーマンスのモデル化 |
結果 |
基本オフロードのモデル化レポートは、実行ユニットから L1 キャッシュへのメモリー・トラフィックのみを考慮して、ターゲットデバイスで推測されるスピードアップの可能性とパフォーマンス・メトリックを示します。メモリー集約型のアプリケーションでは、結果が正確でない可能性があります。 |
オフロードのモデル化レポートを拡張し、ホストとデバイス間の推測されるデータ転送を追加します |
オフロードで最も収益性が高い領域を正確に検索する、データ転送の見積もりを含むオフロードのモデル化レポート。 |
注次のコマンドでは、コマンドを実行する前に myApplication をアプリケーションの実行可能ファイルのパスと名前に置き換えてください。アプリケーションが引数を必要とする場合、実行可能ファイル名の後にそれらを指定します。
低精度
デフォルトのターゲットデバイスに対してアプリケーションのパフォーマンスを低精度でモデル化するには、次のコマンドを実行します。
advisor --collect=offload --accuracy=low --gpu --project-dir=./advi_results -- ./myApplicationこのコマンドは、次の解析を 1 つずつ実行します。
advisor --collect=survey --auto-finalize --static-instruction-mix --profile-gpu --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --auto-finalize --target-device=xehpg_512xve --profile-gpu --project-dir=./advi_results -- ./myApplicationadvisor --collect=projection --no-assume-dependencies --config=xehpg_512xve --profile-gpu --project-dir=./advi_results中精度
この精度はデフォルトで設定されます。デフォルトのターゲットデバイスに対してアプリケーションのパフォーマンスを中精度でモデル化するには、次のコマンドを実行します。
advisor --collect=offload --gpu --project-dir=./advi_results -- ./myApplicationこのコマンドは、次の解析を 1 つずつ実行します。
advisor --collect=survey --auto-finalize --static-instruction-mix --profile-gpu --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --auto-finalize --data-transfer=light --target-device=xehpg_512xve --profile-gpu --project-dir=./advi_results -- ./myApplicationadvisor --collect=projection --no-assume-dependencies --config=xehpg_512xve --profile-gpu --project-dir=./advi_results高精度
デフォルトのターゲットデバイスに対してアプリケーションのパフォーマンスを高精度でモデル化するには、次のコマンドを実行します。
advisor --collect=offload --accuracy=high --gpu --project-dir=./advi_results -- ./myApplicationこのコマンドは、次の解析を 1 つずつ実行します。
advisor --collect=survey --auto-finalize --static-instruction-mix --profile-gpu --project-dir=./advi_results -- ./myApplicationadvisor --collect=tripcounts --flop --auto-finalize --target-device=xehpg_512xve --profile-gpu --data-transfer=medium --project-dir=./advi_results -- ./myApplicationadvisor --collect=projection --config=xehpg_512xve --profile-gpu --project-dir=./advi_resultsパースペクティブを実行した後、インテル® Advisor GUI または CLI の対話型 HTML レポートでの結果表示できます。