オフロードのモデル化パースペクティブをカスタム

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

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

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

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

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

次の表に、オフロードのモデル化パースペクティブで設定可能なプロジェクトのプロパティーを示します。

共通のプロパティー

操作

説明

[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 (混合) を選択)。マネージドコードを呼び出すネイティブ実行ファイルを解析する場合、このオプションの使用を検討してください。

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

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

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

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

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

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

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

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

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

[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 のレポートに表示します (有効)。

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

[Analyze Python loops and functions (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 (サーベイ・ホットスポット解析タイプから設定を引き継ぐ)] チェックボックス

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

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

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

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

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

ヒント

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

[トリップカウント / ループのトリップカウントに関する情報を収集] チェックボックス

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

[FLOP / Collect information about FLOP, L1 memory traffic, and AVX-512 mask usage (FLOP、L1 メモリー・トラフィック、およびインテル® AVX-512 マスク使用に関する情報を収集)] チェックボックス

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

[Callstacks (コールスタック) / Collect callstacks (スタック収集)] チェックボックス

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

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

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

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

[ストリップされたバイナリーのメトリックを取得] チェックボックス

ストリップされたバイナリーのメトリックを収集します。

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

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

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

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

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

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

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

[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 バイト)

[Data Transfer Simulation (データ転送シミュレーション) / Data transfer simulation mode (データ転送シミュレーション・モード)] ドロップダウン

データ転送シミュレーションの詳細レベルを選択します。

  • Off (オフ) - データ転送シミュレーション解析を無効にします。
  • Light (軽量) - ホストメモリーとデバイスメモリー間のデータ転送をモデル化します。
  • Medium (中) - データ転送をモデル化し、メモリー・オブジェクトをオブジェクトにアクセスしたループに関連付けて、スタックメモリーへのアクセスを追跡します。
  • Full (完全) - データ転送をモデル化し、メモリー・オブジェクトをオブジェクトにアクセスしたループに関連付けて、スタックメモリーへのアクセスを追跡し、ホストとターゲット間でデータが転送される際に再利用できる可能性がある場所を特定します。

依存関係解析のプロパティー

操作

説明

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

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

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

[Suppression mode (抑制モード)] ラジオボタン

  • システムモジュールで発生する可能性がある依存関係の問題を報告します ([Show problems in system modules (システムモジュールの問題を表示)] ラジオボタンを選択)。
  • システムモジュールで発生する可能性がある依存関係の問題を報告しません ([Suppress problems in system modules (システムモジュールの問題を抑制)] ラジオボタンを選択)。

[Loop call count limit (ループ呼び出し回数の制限)] セレクター

マークされたそれぞれのループが解析されるインスタンスの最大数を選択します。0 = すべてのループ・インスタンスを解析。

ゼロ以外の値を指定すると、解析のオーバーヘッドを減らすことができます。

[注目するインスタンス] セレクター

n 番目の子プロセスを解析します。1 = アプリケーションのプロセス階層で指定された名前の最初のプロセス。すべてのプロセスを解析するには 0 を指定します。

ゼロ以外の値を指定すると、解析のオーバーヘッドを減らすことができます。

[Analyze stack variables (スタック変数を解析)] チェックボックス

スタック変数の並列データ共有を解析します (有効)。

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

[Filter stack variables by scope (スコープでスタック変数をフィルター)] チェックボックス

レポートを有効にします。

  • ループ内部で代入された変数は、依存関係が疑われます (警告)
  • ループ外部で初期化された変数は、依存関係があると見なされます (エラー)

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

[Reduction Detection (リダクション検出) / Filter reduction variables (リダクション変数をフィルター)] チェックボックス

特定の診断ですべての潜在的なリダクションをマークします (有効)。

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

Markup type (マークアップ・タイプ) チェックボックス

事前定義されたマークアップ・アルゴリズムでループ/関数を選択します。次のアルゴリズムがサポートされます。

  • GPU generic (GPU メトリック) - GPU で実行されるループを選択します。

  • OpenMP* - OpenMP* ループを選択します。

  • SYCL - SYCL* ループを選択します。

  • OpenCL* - OpenCL* ループを選択します。

  • DAAL - インテル® oneAPI データ・アナリティクス・ライブラリーのループを選択します。

  • TBB - インテル® oneAPI スレッディング・ビルディング・ブロックのループを選択します。

このオプションは、オフロードのモデル化パースペクティブの [Analysis Workflow (解析ワークフロー)] ペインからのみ使用できます。

パフォーマンスのモデル化プロパティー

操作

説明

[Assume Dependencies (依存関係を想定)] チェックボックス

ループの依存性タイプが不明 (unknown) である場合、ループには依存関係があると想定します。

このオプションは、[Analysis Workflow (解析ワークフロー)] ペインからのみ使用できます。

[Single Kernel Launch Tax (単一カーネルの起動コスト)] チェックボックス

呼び出しコストが最初のカーネルの起動に対してのみ課せられると仮定して、呼び出しコストを見積もります。

このオプションは、[Analysis Workflow (解析ワークフロー)] ペインからのみ使用できます。

[Data Reuse Analysis (データの再利用解析)] チェックボックス

ホストとターゲット・プラットフォーム間で転送されるデータが、コード領域間で再利用される可能性があるか解析します。

このオプションは、[Analysis Workflow (解析ワークフロー)] ペインからのみ使用できます。

データの再利用を解析するには、Characterization (特性)Data Transfer Analysis (データ転送解析)Full モードにする必要があります。

[Target Config (ターゲット設定)] ドロップダウン

アプリケーションのパフォーマンスのモデル化を有効にするため、ドロップダウン・リストから事前定義されたハードウェア設定を選択します。

[Other parameters (その他のパラメーター)] フィールド

スペースで区切ったコマンドライン・パラメーターのリストを入力します。指定可能なパラメーターについては、コマンドオプションのリファレンスをご覧ください。

[Baseline Device (ベースライン・デバイス)] ドロップダウン

インテル® Advisor がパフォーマンス・データを収集するためにアプリケーションが動作するベースとなるデバイスを選択します。

[Custom Device Configuration (カスタムデバイス設定)] フィールド

追加のモデル化パラメーターを含むカスタム TOML 構成ファイルの絶対パス、または名前を指定します。