スレッド化パースペクティブをカスタマイズ

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

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

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

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

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

共通のプロパティー

操作

説明

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

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

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

[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 (キャッシュされたファイルを保持)] を選択)。

スータビリティー解析のプロパティー

操作

説明

[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 を指定します。

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

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

トリップカウントと FLOP 解析のプロパティー

操作

説明

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

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

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

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

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

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

ヒント

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

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

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

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

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

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

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

[キャッシュ・シミュレーター設定] フィールド

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

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

[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カーネルを名前で一致させます収集された操作を分散するヒューリスティックが適用されます。