コマンドラインから GPU ルーフラインの調査パースペクティブを実行

ルーフライン・グラフを表示するため、インテル® Advisor は 2 つのステップを実行します。

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

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

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

利便性のため、インテル® Advisor にはショートカット --collect=roofline コマンドアクションが用意されており、これにより単一のコマンドでサーベイと特性化解析の両方を実行できます。このショートカット・コマンドは、GPU ルーフラインの調査パースペクティブの実行に推奨されます。

必要条件

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

GPU ルーフラインの調査パースペクティブを実行

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

オプションで、GPU ルーフラインの調査パースペクティブの一部として、パフォーマンスのモデル化解析を実行できます。この解析を選択すると、ベースラインである GPU デバイス上のアプリケーションのパフォーマンスがターゲットとしてモデル化され、実際のアプリケーションのパフォーマンスと比較されます。このデータは、パフォーマンス最適化の推奨事項を提案するために使用されます。

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

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

  1. ショートカットを使用して、GPU ルーフライン・グラフのデータを収集します。
    advisor --collect=roofline --profile-gpu --project-dir=./advi_results -- ./myApplication

    このコマンドは、アプリケーション内の GPU カーネルと CPU ループ/関数データの両方を収集します。GPU で実行されるカーネルでは、メモリーレベルのルーフラインが生成されます。

  2. アプリケーションが実行される GPU のパフォーマンスのモデル化を実行します。
    advisor --collect=projection --profile-gpu --model-baseline-gpu --project-dir=./advi_results

    重要

    パフォーマンスのモデル化を正しく行うには、--model-baseline-gpu オプションを指定する必要があります。

    このコマンドは、最適化に関する追加の推奨事項を決定するターゲットとして、ベースライン GPU でアプリケーションの潜在的なパフォーマンスをモデル化します。

手法 2解析を個別に実行

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

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

    これらコマンドは、アプリケーション内の GPU カーネルと CPU ループ/関数データの両方を収集します。GPU で実行されるカーネルでは、メモリーレベルのルーフラインが生成されます。

  3. アプリケーションが実行される GPU のパフォーマンスのモデル化を実行します。
    advisor --collect=projection --profile-gpu --model-baseline-gpu --project-dir=./advi_results

    重要

    パフォーマンスのモデル化を正しく行うには、--model-baseline-gpu オプションを指定する必要があります。

    このコマンドは、最適化に関する追加の推奨事項を決定するターゲットとして、ベースライン GPU でアプリケーションの潜在的なパフォーマンスをモデル化します。

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

解析の詳細

CPU / メモリー・ルーフラインの調査ワークフローでは、ルーフライン解析のみが行われ、サーベイと特性化解析 (トリップカウント & FLOP) が連続して実行されます。

各解析には、その動作を変更して、追加のパフォーマンス・データを収集する一連の追加オプションがあります。

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

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

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

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

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

オプション

説明

--profile-gpu

GPU カーネルを解析。このオプションは、各コマンドで必要です。

--target-gpu

プロファイル・データを収集するターゲット GPU アダプターを選択します。アダプターの設定形式は、<domain>:<bus>:<device-number>.<function-number> です。10 進数のみが指定できます。

以下に例を示します。 --target-gpu=0:77:0.0

複数のアダプターを指定するには、カンマで区切ったリストを使用します。

以下に例を示します。 --target-gpu=0:77:0.0,0:154:0.0

このオプションが設定されていない場合 (デフォルト設定)、システムで使用可能なすべての GPU が処理されます。

ヒント

システムで利用可能な GPU アダプターのリストを表示するには、advisor --help target-gpuを実行して、オプションの説明を参照してください。

--gpu-sampling-interval=<double>

GPU 間のサンプリング間隔をセットします (ミリ秒)。デフォルトでは、1 に設定されています。

--enable-data-transfer-analysis

ホストメモリーとデバイスメモリー間のデータ転送をモデル化します。パフォーマンスをモデル化解析を行うには、このオプションを使用します。

--track-memory-objects

オブジェクトにアクセスしたループのメモリー・オブジェクトを属性分けします。パフォーマンスをモデル化解析を行うには、このオプションを使用します。

--data-transfer=<level>

特性化中にデータ転送をモデル化するため詳細レベルを設定します。パフォーマンスをモデル化解析を行うには、このオプションを使用します。

次のいずれかの値を指定します。

  • (軽量) は、ホストとデバイスメモリー間のデータ転送のモデルのみに使用します。
  • (中) は、データ転送のモデル化、メモリー・オブジェクトの属性、スタックメモリーへのアクセス追跡に使用します。
  • (高) は、データ転送のモデル化、メモリー・オブジェクトの属性、スタックメモリーへのアクセスを追跡、およびデータを再利用できる場所の特定に使用します。

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

パフォーマンスのモデル化オプション

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

GPU ルーフラインの調査パースペクティブの一部としてパフォーマンスのモデル化解析を行う場合、次の表に示すアクションオプションを指定する必要があります。

オプション

説明

--profile-gpu

GPU カーネルを解析。このオプションは、各コマンドで必要です。

--enforce-baseline-decomposition

ベースラインを測定したのと同じローカルサイズと SIMD 幅を使用します。これは必須オプションです。

--model-baseline-gpu

ベースライン GPU 構成をモデル化のターゲット・デバイスとして使用します。これは必須オプションです。

このオプションでは、--enforce-baseline-decomposition が自動的に有効になるため、--model-baseline-gpu のみを指定できます。

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

次のステップ

GPU ルーフライン結果の調査を続けます。メトリックのレポートに関する詳細は、アクセラレーターのメトリックをご覧ください。

関連情報