プロジェクトの設定

プロジェクトを作成すると、[Project Properties (プロジェクトのプロパティー)] ダイアログボックスが開きます。[Analysis Target (解析ターゲット)] タブで、ターゲットの実行形式を指定し、重要なプロジェクトのプロパティーの設定して、現在のプロジェクトのプロパティーを確認します。

ヒント

新たなターゲットの解析を始める前に、常にプロジェクトのプロパティーを確認します。

既存のプロジェクトでは、次のタブにもアクセスできます。

[解析ターゲット] タブの概要

[Analysis Target (解析ターゲット)] タブで、左にあるリストから解析タイプを選択して、プロジェクトのプロパティーを表示および設定します。

[Analysis Type (解析タイプ)] セレクター

設定する解析タイプを選択します。選択した解析タイプに応じて、[Analysis Properties (解析のプロパティー)] で各種プロジェクトのプロパティーを設定できます。次の解析タイプを利用できます。

  • Survey Analysis Types (サーベイ解析タイプ)
    • サーベイ・ホットスポット解析
    • トリップカウントと FLOP 解析
    • スータビリティー解析
  • Refinement Analysis Types (リファインメント解析タイプ)
    • メモリー・アクセス・パターン解析
    • 依存関係解析
  • Performance Modeling Analysis (パフォーマンスのモデル化解析)

[Analysis Properties (解析プロパティー)]

[Analysis Type (解析タイプ)] ウィンドウで選択した解析タイプのプロジェクト・プロパティーを設定します。

[Analysis Target (解析ターゲット)] タブのコントロール

次の表は、すべての解析タイプに適切なプロパティーを示しています。特定の解析タイプに適用されるコントロールは、次のリンクを参照してください。

プロジェクトを構成するには、共通のプロパティーを設定するだけで十分です。

共通のコントロール

次のコントロールは、すべての解析タイプで共通です。[Survey Hotspot Analysis (サーベイ・ホットスポット解析)] タブのプロパティーを選択し、[Inherit settings from the Survey Hotspots Analysis Type (サーベイ・ホットスポット解析タイプから設定を引き継ぐ)] チェックボックスを有効にして、すべての解析タイプのプロパティーを共有します。

操作

説明

[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 (変更)...] ボタン

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

[Managed code profiling mode (マネージドコードのプロファイル・モード)] ドロップダウン

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

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

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

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

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

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

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

Dependencies Analysis Type (依存関係解析タイプ): [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> は秒数ではなくミリ秒単位です。

[Sampling Interval (サンプリング間隔)] セレクター

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

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

[Collection data limit, MB (収集データの制限 (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 (キャッシュされたファイルを保持)] を選択)。

トリップカウントと FLOP 解析固有のコントロール

操作

説明

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

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

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

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

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

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

ヒント

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

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

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

[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) で生成されたコード領域のメトリックを収集します。

[Capture metrics for stripped binaries (ストリップされたバイナリーのメトリックを取得)] チェックボックス

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

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

[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 (軽量) - ホストメモリーとデバイスメモリー間のデータ転送をモデル化します。
  • Full (完全) - データ転送をモデル化し、メモリー・オブジェクトをオブジェクトにアクセスしたループに関連付けて、スタックメモリーへのアクセスを追跡します。
[GPU kernels matching mode (GPU カーネル・マッチング・モード)] ドロップダウン

GPU カーネルマッチング戦略を選択します。

  • Strict - GPU カーネルを名前とワークサイズで一致させます。
  • Relaxed - 正確な一致が不可能な場合は、GPUカーネルを名前で一致させます収集された操作を分散するヒューリスティックが適用されます。

スータビリティー解析固有のコントロール

操作

説明

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

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

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

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

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

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

ヒント

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

[Sampling Interval (サンプリング間隔)] セレクター

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

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

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

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

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

メモリー・アクセス・パターン解析固有のコントロール

操作

説明

[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 = すべてのループ・インスタンスを解析。

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

[Instance of interest (注目するインスタンス)] セレクター

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

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

[Report stack variables (スタック変数をレポート)] チェックボックス

メモリー・アクセス・ストライドが検出されたスタック変数を報告します (有効)。

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

[Report heap allocated variables (ヒープに割り当てられた変数をレポート)] チェックボックス

メモリー・アクセス・ストライドが検出されたヒープ割り当て変数を報告します (有効)。

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

[Enable CPU cache simulation (CPU キャッシュのシミュレーションを有効にする)] チェックボックス

モデル・キャッシュ・ミス、キャッシュミスとキャッシュライン使用率、またはキャッシュミスとループのフットプリント (有効にしてオプションを選択します)。

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

[Cache associativity (キャッシュ連想性)] ドロップダウンリスト

CPU キャッシュの動作をモデル化するため、キャッシュの連想性を設定します。この値は、次の 2 のべき乗数を整数で設定します: 1、2、4、8、16。

[Cache sets (キャッシュセット)] ドロップダウンリスト

CPU キャッシュの動作をモデル化するため、キャッシュのセットサイズ (バイト単位) を設定します。この値は、次の 2 のべき乗数を整数で設定します: 256、512、1024、2048、4096、8192。

[Cache line size (キャッシュライン・サイズ)] ドロップダウンリスト

CPU キャッシュの動作をモデル化するため、キャッシュラインのサイズ (バイト単位) を設定します。この値は、次の 2 のべき乗数を整数で設定します: 4、8、16、32、…、最大 65536。

[Cache simulation mode (キャッシュシミュレーション・モード)] ドロップダウンリスト

注目する CPU キャッシュ動作のモデル化を設定します。

  • キャッシュミス・モデル

  • キャッシュミス・モデルとループ・フットプリント。計算方法: キャッシュライン・サイズ x シミュレーション中にアクセスされる一意なキャッシュライン数。

  • キャッシュミス・モデルとキャッシュライン利用率

依存関係解析コントロール

操作

説明

[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 = すべてのループ・インスタンスを解析。

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

[Instance of interest (注目するインスタンス)] セレクター

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 (解析ワークフロー)] ペインからのみ使用できます。

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

操作

説明

デバイス設定

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

その他のパラメーター

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