GPU ルーフラインの調査パースペクティブのカスタマイズ

パースペクティブ・フローをカスタマイズして、目標とアプリケーションに合わせます。

[解析ワークフロー] タブから解析の設定を変更すると、精度レベルが自動的にカスタマイズされます。この精度レベルを使用して、パースペクティブ・フローや解析プロパティーをカスタマイズできます。

解析プロパティーを変更するには次の操作を行います。

  1. [解析ワークフロー] ペインと で、解析の詳細を展開します。
  2. 目的の設定を選択します。
  3. さらに細かくカスタマイズするには、[ギア] アイコンをクリックします。選択した解析の [プロジェクトの設定] ダイアログボックスが開きます。
  4. 目的のプロパティーを設定して [OK] をクリックします。

設定可能なプロパティーの完全なセットについては、左にある アイコンをクリックするか、[File (ファイル)] > [Project Properties (プロジェクトのプロパティー)] に移動します。

次の表に、GPU ルーフラインの調査パースペクティブで設定可能なプロジェクトのプロパティーを示します。

共通のプロパティー

操作

説明

[Target type (ターゲットタイプ)] ドロップダウン

  • 実行形式またはスクリプトを解析します ([Launch Application (アプリケーションを起動)] を選択)。

  • プロセスを解析します ([Attach to Process (プロセスにアタッチ)] を選択)。

[Attach to Process (プロセスにアタッチ)] を選択して、[Survey Hotspots Analysis Type (サーベイ・ホットスポット解析)] から設定を引き継ぐか、必要な設定を指定します。

[Inherit settings from Visual Studio project (Visual Studio* プロジェクトから設定を引き継ぐ)] チェックボックスとフィールド (Visual Studio* IDE のみ)

Visual Studio* のスタートアップ・プロジェクトからインテル® Advisor のプロジェクト・プロパティーを継承します (有効)。

有効にすると、[Application (アプリケーション)][Application parameters (アプリケーションの引数)]、および [Working directory (作業ディレクトリー)] に引き継いだ値が設定され、変更することはできません。

Visual Studio* 2022 では、インテル® Advisor の軽量な統合が提供されます。アプリケーションを設定およびコンパイルし、Visual Studio* からスタンドアロンのインテル® Advisor インターフェイスを開いてさらに解析することができます。すべての設定はスタンドアロンのインテル® Advisor プロジェクトに継承されます。

[Application (アプリケーション)] フィールドと [Browse (参照)...] ボタン

解析ターゲットの実行形式またはスクリプトを選択します。

このフィールドにスクリプトを指定する場合、[高度] > [子アプリケーション] フィールドに実行形式ファイルを指定することを検討してください (依存関係ツールに必要です)。

[Application parameters (アプリケーションの引数)] フィールドと [Modify (参照)...] ボタン

解析実行時に使用する引数を指定します (コマンドライン引数と同等)。

[Use application directory as working directory (アプリケーション・ディレクトリーを作業ディレクトリーとして使用)] チェックボックス

事前に指定された [Working directory (作業ディレクトリー)] の値を、[Application directory (アプリケーション・ディレクトリー)] の値に自動的に適用します (有効)。

[Working directory (作業ディレクトリー)] フィールドと [Browse (参照)...] ボタン

作業ディレクトリーを指定します。

[User-defined environment variables (ユーザー定義環境変数)] フィールドと [Modify (変更)...] ボタン

解析中に使用する環境変数を指定します。

[マネージドコードのプロファイル・モード] ドロップダウン

  • ターゲットの実行可能ファイルのタイプをネイティブまたはマネージドとして自動的に検出して、モードを切り替えます (Auto (オート) を選択)。

  • ネイティブコードのデータのみ収集し、マネージドコードにデータを関連付けません (Native (ネイティブ) を選択)。

  • ネイティブとマネージドコードの両方のデータを収集して、マネージドコードのデータを適切に関連付けます (Mixed (混合) を選択)。マネージドコードを呼び出すネイティブ実行ファイルを解析する場合、このオプションの使用を検討してください。

  • ネイティブとマネージドコードの両方のデータを収集して、ネイティブコードに関連するサンプルを解決し、マネージドソースへのみデータを関連付けます (マネージド を選択)。解析結果のコールスタックは、マネージドコードのデータのみ表示されます。

[Child application (子アプリケーション)] フィールド

開始アプリケーションではないアプリケーションを解析します。以下に例を示します: スクリプト ([Application (アプリケーション)] フィールド確認された) から呼び出される実行形式 (このフィールドで確認された) を解析します。

この方法で解析のオーバーヘッドを軽減できます。

依存関係解析タイプ: [Application (アプリケーション)] フィールドにスクリプトファイルを指定した場合、[Child application (子アプリケーション)] フィールドにターゲットの実行形式を指定する必要があります。

[Modules (モジュール)] ラジオボタンと [Modify (変更)...] ボタン

  • 特定のモジュールを解析し、他のすべてのモジュールの解析を無効にします ([Include only the following module(s) (次のモジュールのみを含める)] ラジオボタンをクリックしてモジュールを選択します)。

  • 特定のモジュールの解析を無効化し、他のすべてのモジュールを解析します ([Exclude only the following module(s) (次のモジュールのみを除外する)] ラジオボタンをクリックしてモジュールを選択します)。

モジュールを除外または含めることで、解析のオーバーヘッドを最小化できます。

[GPU kernels of interest (注目する GPU カーネル)] フィールドと [Modify... (変更...)] ボタン

特定のカーネルのみを解析し、オーバーヘッドを最小限に抑えます。

[Use MPI launcher (MPI ランチャーを使用)] チェックボックス

次のパラメーターに基づいて、[Get command line (コマンドラインを取得)] フィールドに表示されるコマンドライン (有効) を生成します。

  • [Select MPI Launcher (MPI ランチャーを選択)] - インテルまたはその他ベンダー

  • [Number of ranks (ランク数)]: アプリケーションのインスタンス数

  • [Profile ranks (プロファイルするランク)] - すべてまたは選択したランク

[Automatically stop collection after (sec) (指定時間後に収集を自動停止 (秒))] チェックボックスとフィールド

指定した秒数後に収集を停止します (有効にして秒数を指定)。

この方法で解析のオーバーヘッドを軽減できます。

サーベイ解析のプロパティー

操作

説明

[Automatically resume collection after (sec) (指定時間後に収集を自動再開 (秒))] チェックボックスとフィールド

収集を一時停止した状態でターゲット・アプリケーションの実行を開始し、指定した秒数後に収集を再開します (有効にして秒数を指定)。

この方法で解析のオーバーヘッドを軽減できます。

ヒント

対応する CLI アクションオプションは、--resume-after=<integer> です。ここで、<integer> は秒数ではなくミリ秒単位です。

[サンプリング間隔] セレクター

ターゲット・アプリケーションの実行中に、各解析収集の CPU サンプル間の待機時間を設定します。

待機時間を増やすとオーバーヘッドを減らすことができます。

[収集データの制限 (MB)] セレクター

サイズのしきい値を超えると問題が発生する場合は、収集する生データの量を設定します。ハードウェア・イベントベース解析では利用できません。

制限を減らすとオーバーヘッドを減らすことができます。

[Callstack unwinding mode (コールスタック・アンワインド・モード)] ドロップダウン・リスト

次の場合、 After collection (収集後) を設定します。

  • サーベイ解析の実行時のオーバーヘッドが 1.1x を超えている場合。

  • これは、Fortran アプリケーションや多数の小さな OpenMP* 並列領域を持つアプリケーションで、大量のデータがスタックに割り当てられる一般的なケースです。

それ以外では、During Collection (収集中) を設定します。このモードではスタックの精度は向上しますが、オーバーヘッドが増加します。

[Stitch stacks (スタックのスティッチ)] チェックボックス

ランタイムからの通知をキャッチして並列ワークロードに入るポイントでスタックをアタッチすることで、インテル® oneAPI スレッディング・ビルディング・ブロック (oneTBB) や OpenMP* アプリケーションの論理的な呼び出しツリーを復元します (有効)。

サーベイ解析の実行時のオーバーヘッドが 1.1x を超えている場合、無効化します。

[Analyze MKL Loops and Functions (MKL ループと関数を解析)] チェックボックス

インテル® oneAPI マス・カーネル・ライブラリー (oneMKL) のループと関数をインテル® Advisor のレポートに表示します (有効)。

有効にすると解析のオーバーヘッドが増加します。

[Python* ループと関数を解析] チェックボックス

インテル® Advisor のレポートに、Python* ループと関数を表示します (有効)。

有効にすると解析のオーバーヘッドが増加します。

[Analyze loops that reside in non-executed code paths (実行されなかったコードパスのループを解析)] チェックボックス

ループ・アセンブリー・コード、命令セット・アーキテクチャー (ISA)、ベクトル長など、実行されていないコードパスにあるループの解析中に各種データを収集します (有効)。

有効にすると解析のオーバーヘッドが増加します。

複数の ISA (複数のコードパスを含む) を対象とするバイナリーで実行されていないコードパスの解析は、インテル® コンパイラーで -ax (Linux*)/Qax (Windows*) オプションを使用してコンパイルされたバイナリーでのみ使用できます。

[Enable registry spill/fill analysis (レジスターのスピル/フィル解析を有効にする)] チェックボックス

レジスター内の連続したロード/ストア操作数と、関連するメモリー・トラフィックを計算します (有効)。

有効にすると解析のオーバーヘッドが増加します。

[Enable static instruction mix analysis (静的な命令ミックス解析を有効にする)] チェックボックス

バイナリー内の特定の命令数を静的に計算します (有効)。

有効にすると解析のオーバーヘッドが増加します。

[Source caching (ソースをキャッシュ)] ドロップダウン・リスト

  • 解析を実行するごとにプロジェクトからソース・コード・キャッシュを削除します (デフォルトは [Clear cached files (キャッシュされたファイルをクリア)] を選択)。

  • プロジェクトにソースコード・キャッシュを保持します ([Keep cached files (キャッシュされたファイルを保持)] を選択)。

[Trip Counts and FLOP Analysis Properties (トリップカウント & FLOP 解析のプロパティー)]

操作

説明

[Inherit settings from the Survey Hotspots Analysis Type (サーベイ・ホットスポット解析タイプから設定を引き継ぐ)] チェックボックス

サーベイ解析プロパティーから設定をコピーします (有効)。

このオプションを選択すると、アプリケーションの引数は変更できません。

[指定時間後に収集を自動再開 (秒)] チェックボックスとフィールド

収集を一時停止した状態でターゲット・アプリケーションの実行を開始し、指定した秒数後に収集を再開します (有効にして秒数を指定)。

この方法で解析のオーバーヘッドを軽減できます。

ヒント

対応する CLI アクションオプションは、--resume-after=<integer> です。ここで、<integer> は秒数ではなくミリ秒単位です。

[Collect information about Loop Trip Counts (ループのトリップカウントに関する情報を収集)] チェックボックス

ループの呼び出しと実行を測定します (有効)。

[FLOP、L1 メモリー・トラフィック、およびインテル® AVX-512 マスク使用に関する情報を収集] チェックボックス

浮動小数点操作、整数操作、およびメモリー・トラフィックを測定します (有効)。

[Collect stacks (スタックの収集)] チェックボックス

解析中にコールスタック情報を収集します (有効)。

有効にすると解析のオーバーヘッドが増加します。

[Capture metrics for dynamic loops and functions (動的ループと関数内のメトリックを取得)] チェックボックス

動的なジャストインタイム (JIT) で生成されたコード領域のメトリックを収集します。

[Enable Memory-Level Roofline with cache simulation (キャッシュ・シミュレーションでメモリーレベルのルーフラインを有効にする)] チェックボックス

各ループでロードおよびストアされたバイト数などのデータに対する複数レベルのキャッシュをモデル化しして、すべてのメモリーレベルのルーフライン・グラフを表示します (有効)。

有効にすると解析のオーバーヘッドが増加します。

このオプションは、CPU ルーフラインでのみ使用できます。

[Cache simulator configuration (キャッシュ・シミュレーター設定)] フィールド

モデル化するキャッシュ階層の構成を指定します (有効にして階層を指定)。

このオプションは、CPU ルーフラインでのみ使用できます。

階層の設定には次のようなテンプレートがあります。

[num_of_level1_caches]:[num_of_ways_level1_connected]:[level1_cache_size]:[level1_cacheline_size]/

[num_of_level2_caches]:[num_of_ways_level2_connected]:[level2_cache_size]:[level2_cacheline_size]/

[num_of_level3_caches]:[num_of_ways_level3_connected]:[level3_cache_size]:[level3_cacheline_size]

例えば、4:8w:32k:64l/4:4w:256k:64l/1:16w:6m:64l は、次の階層設定を示します。

  • 4 つの 8 ウェイ 32KB レベル 1 キャッシュ (ラインサイズ 64 バイト)

  • 4 つの 4 ウェイ 256KB レベル 2 キャッシュ (ラインサイズ 64 バイト)

  • 1 つの 16 ウェイ 6MB レベル 3 キャッシュ (ラインサイズ 64 バイト)