インテル® VTune™ プロファイラー・ユーザーガイド

knob

指定した解析タイプやコレクタータイプの設定オプションを設定します。

GUI オプション

[解析の設定] ウィンドウ > [どのように] ペイン

構文

-knob | -k <knob-name>=<knob-value>

引数

knob-name

解析タイプや収集タイプには、指定した解析タイプの実行に関して追加の指示を提供する設定オプション (knob) がある場合があります。knob を使用するには、knob 名と knob 値を指定する必要がります。

複数の knob オプションを指定でき、必要に応じて、追加のアクションオプションとグローバルオプションを続けることができます。

knob-value

各 knob には利用可能な値があります。ほとんどの場合ブール値が使用され、ブール knob は <knob-name>=true で有効にします。

knob の動作は解析タイプやコレクターのタイプにより異なります。

<knob-name>

説明

accurate-cpu-time-detection=true | false (Windows* のみ)

デフォルト: true

より精度の高い CPU 時間データを収集します。このオプションには、追加のディスクスペースと後処理の時間が必要です。管理者権限が必要です。

サポートされる解析: runss

analyze-loops=true | false

デフォルト: false

ループ解析を拡張し、命令セットの使用など高度なループ情報を収集して、ループと関数別に解析結果を表示します。

サポートされる解析: runssrunsa

analyze-mem-objects=true | false

デフォルト: false

メモリーの割り当て/解放のインストルメントとハードウェア・イベントのメモリー・オブジェクトへのマップを有効にします。このオプションは、インテル® マイクロアーキテクチャー開発コード名 Sandy Bridge 以降で実行する Linux* ターゲットでのみサポートされます。

サポートされる解析: memory-access

analyze-openmp=true | false

デフォルト: true (HPC パフォーマンス特性解析向け)。false (その他の解析タイプ向け)。

アプリケーションの OpenMP* ランタイムをインストルメントして、パフォーマンス・データを領域/ワークシェア構造別にグループ化し、スケジュール、リダクションおよびアトミック操作におけるインバランス、ロック競合、またはオーバーヘッドを検出します。このオプションはオーバーヘッドと結果のサイズを増加させます。

サポートされる解析: hotspotsthreadinghpc-performancememory-accessuarch-explorationrunsa

analyze-persistent-memory=true | false

デフォルト: false

インテル® Optane™ パーシステント・メモリー・モジュールのパフォーマンス情報を収集します。

サポートされる解析: platform-profiler

analyze-power-usage=true | false

デフォルト: false

CPU、DRAM、ディスクリート GPU によって消費されるエネルギーに関する情報を収集します。

サポートされる解析: gpu-hotspotsgpu-offload

analyze-throttling-reasons=true | false

デフォルト: false

CPU スロットリングを引き起こす要因に関連する情報を収集します。

サポートされる解析: system-overview

atrace-config=<event>

利用可能なイベントは、gfx、input、view、webview、wm、am、audio、video、camera、hal、res、dalvik です。

Systrace から Android* フレームワーク・イベントを収集します。

サポートされる解析: runsa

characterization-mode=overview | global-local-accesses | compute-extended | full-compute | instruction-count

デフォルト: overview

レンダーや GPGPU エンジンの使用状況 (インテル® グラフィックスのみ) をモニターして、エンジンのどの部分に負荷がかかっているかを特定し、GPU と CPU データを関連付けます。

特性化モードでは、プラットフォーム固有の事前定義された GPU メトリックが用意されています。instruction-count を除くすべての事前定義メトリックは、実行ユニット (EU) のアクティビティーに関する次のデータを収集します: EU アレイアクティブ、EU アレイストール、EU アレイアイドル、計算スレッドの開始、コア周波数、およびそれぞれの追加メトリック。

  • overview メトリックには、メモリーリード/ライト帯域幅などの GPU メモリーアクセス、GPU L3 ミス、サンプラービジー、サンプラー・ボトルネック、および GPU メモリーのテクスチャー・リード/ライト帯域幅を含むメトリックが含まれます。これらのメトリックは、グラフィックスと計算集約型の両方のアプリケーションに役立ちます。
  • global-local-accesses メトリック・グループは、GPU 上の異なる種類のデータへのアクセスを区別するメトリック (型なしメモリーリード/ライト帯域幅、型ありメモリーリード/ライト・トランザクション、SLM リード/ライト帯域幅、ロードされたレンダー/GPGPU コマンド・ストリーマー、および GPU EU アレイ使用) を含みます。これらのメトリックは、GPU 上の計算集約型のワークロードに役立ちます。
  • compute-extended イベントグループは、インテル® プロセッサー開発コード名 Broadwell 以降の GPU 解析のみをターゲットとする追加メトリックを含みます。その他のシステムでは、この事前定義は利用できません。
  • full-compute メトリックグループは、overviewglobal-local-accesses イベントセットの組み合わせです。
  • instruction-count メトリックグループは、 特定の命令クラスの実行頻度をカウントします。

サポートされる解析: gpu-hotspotsgraphics-renderingrunsa

chipset-event-config="event1,event2 ,..."

ハードウェア・イベントベース・サンプリング・コレクターで監視する Android* チップセットのイベントをカンマで区切って指定します (最大 5 イベント)。

サポートされる解析: runsa

source-analysis=bb-latency | mem-latency

デフォルト値: bb-latency

パフォーマンスが重要な基本ブロックで収集されたデータ、および GPU カーネルのメモリーアクセスで発生した問題に関するデータを特定します。次のモードのいずれかを選択します。

  • bb-latency モードは、非効率なアルゴリズムによって引き起こされる問題を特定するのに役立ちます。このモードでは、インテル® VTune™ プロファイラーはすべての基本ブロックの実行時間を測定します。基本ブロックは、シーケンスの先頭に 1 つの開始点があり、シーケンスの最後に 1 つの終了点がある直線的なコードシーケンスです。後処理中に、インテル® VTune™ プロファイラーは基本ブロックの各命令の実行時間を計算します。そのため、このモードはどの操作が高価であるか理解するのに役立ちます。
  • mem-latency モードは、メモリーアクセスによって生じるレイテンシーの問題を特定するのに役立ちます。このモードでは、インテル® VTune™ プロファイラーはメモリーリード/同期命令がカーネルの実行時間に与える影響を予測するため、これらの命令をプロファイルします。特性化モードで、gpu-hotspots 解析を実行して、GPU カーネルがスループットやメモリー依存であることを特定して、同じ基本ブロックのどのメモリーリード/同期命令に時間がかかっているか調査する場合、このオプションの適用を検討してください。

サポートされる解析: gpu-hotspots

collect-bad-speculation=true | false

デフォルト: true

上位レベルのメトリックとすべての投機の問題サブメトリックを計算するのに必要な最小限のデータを収集します。

サポートされる解析: uarch-explorationrunsa

collect-core-bound=true | false

デフォルト: false

上位レベルのメトリックとすべてのコア依存サブメトリックを計算するのに必要な最小限のデータを収集します。

サポートされる解析: uarch-explorationrunsa

collect-frontend-bound=true | false

デフォルト: true

上位レベルのメトリックとすべてのフロントエンド依存サブメトリックを計算するのに必要な最小限のデータを収集します。

サポートされる解析: uarch-explorationrunsa

collect-host-gpu-bandwidth=true | false

デフォルト: false

すべてのホストの DRAM 帯域幅データを収集します。さらに、サポートされるサーバーホストの PCIe* 帯域幅を収集します (インテル® マイクロアーキテクチャー開発コード名 Ice Lake および Sapphire Rapids)。収集したデータを GUI で表示するには、[CPU ホスト - GPU 帯域幅解析] オプションを有効にします。

サポートされる解析:gpu-offload

collect-host-gpu-pci-bandwidth=true | false

デフォルト: false

さらに、サポートされるサーバーホストの PCIe* 帯域幅を収集します (インテル® マイクロアーキテクチャー開発コード名 Ice Lake および Sapphire Rapids)。この knob は、カスタム解析でのみ利用できます。収集したデータを GUI で表示するには、[CPU ホスト - GPU 帯域幅解析] オプションを有効にします。

サポートされる解析:runsa

collect-io-waits=true | false

デフォルト: false

各スレッドと CPU が I/O 待機状態で費やす時間のパーセンテージを解析します。

サポートされる解析: runsa

collect-memory-bandwidth=true | false

デフォルト: 解析タイプに依存

データを収集して、アプリケーションが DRAM への帯域幅に依存する場所を特定します。収集したデータを GUI で表示するには、[メモリー帯域幅を解析] オプションを有効にします。

サポートされる解析: performance-snapshot、uarch-explorationhpc-performancegpu-hotspotsrunsa

collect-memory-bound=true | false

デフォルト: true

上位レベルのメトリックとすべてのメモリー依存サブメトリックを計算するのに必要な最小限のデータを収集します。

サポートされる解析: uarch-explorationhpc-performance

collect-programming-api=true | false

gpu-hotspots のデフォルト: truerunss のデフォルト: false

インテル® HD グラフィックスとインテル® Iris® グラフィックス上の DPC++ アプリケーション、OpenCL* カーネルおよびインテル® メディア SDK プログラムの実行を解析します。このオプションは、CPU 側でアプリケーションのパフォーマンスに影響する可能性があります。

サポートされる解析: gpu-hotspotsgpu-offloadrunsa

collect-retiring=true | false

デフォルト: true

上位レベルのメトリックとすべてのリタイア・サブメトリックを計算するのに必要な最小限のデータを収集します。

サポートされる解析: uarch-explorationrunsa

collecting-mode=hw-tracing | hw-tracing

デフォルト値: hw-sampling

[システムをプロファイル] モードを指定して、デフォルトのイベントベース・サンプリング・モードで CPU、GPU、および I/O リソースの利用率を調査するか、オーバーヘッドの少ないハードウェア・トレースを有効にして、レイテンシーの問題に関する原因を特定します。

サポートされる解析: system-overviewrunsa

computing-task-of-interest=computing_task_name[#start_idx#step#stop_idx]

GPU 計算タスク名と呼び出しをカンマ区切りのリストで指定します。

ここで、computing_task_name は GPU 計算タスク名です。start_idx はプロファイルする最初の呼び出し番号で、stop_idx は最後の呼び出し番号です。

サポートされる解析: gpu-hotspotsrunsa

counting-mode=true | false

デフォルト: false

各 PMU イベントの詳細なコンテキスト・データ (コードやハードウェア・コンテキストなど) とイベントのカウントのどちらを収集するか選択します。カウント収集モードはオーバーヘッドが低くなりますが、得られる情報も少なくなります。

サポートされる解析: runsa

cpu-samples-mode=off | stack | nostack

デフォルト: false

アプリケーションの定期的なサンプリングを有効にします。サンプルはスタックあり/なしで収集できます。

サポートされる解析: runss

dpdk=true | false

デフォルト: false

DPDK I/O API をプロファイルします。

サポートされる解析: io

dram-bandwidth-limits=true | false

デフォルト: collect-memory-bandwidth knob を有効にした HPC パフォーマンス特性とマイクロアーキテクチャー全般解析では true。メモリーアクセス解析とマイクロアーキテクチャー全般解析では true

収集を開始する前に、達成可能な最大 DRAM 帯域幅を評価します。このデータは、タイムライン上で帯域幅メトリックをスケールし、しきい値を計算するために使用されます。

サポートされる解析: performance-snapshot、memory-accessuarch- explorationhpc-performancerunsa

enable-characterization-insights=true | false

ハードウェア使用効率など追加のパフォーマンス情報を収集し、次のステップに進みます。

サポートされる解析: gpu-offload

enable-context-switches=true | false

デフォルト: false

アプリケーション内のすべてのスレッドのスケジュールを詳しく解析して、コンテキスト・スイッチに費やされた時間を調べ、スレッドのコンテキスト・スイッチの原因 (プリエンプションまたは同期) を特定します。

サポートされる解析: runsa

enable-driverless-collection=true | false

デフォルト: false

可能な場合はドライバーを使用しない Linux* Perf 収集を有効にします。

サポートされる解析: runsa

enable-gpu-usage=true | false

デフォルト: false

インテル® HD グラフィックスとインテル® Iris® グラフィックス・エンジンのフレームレートと使用率を解析し、アプリケーションが GPU または CPU のどちらに依存しているか特定します。

サポートされる解析: runssrunsa

enable-interrupt-collection=true | false

デフォルト: false

プログラムの通常の実行フローを変更する割り込みイベントを収集します。それらのイベントは、ハードウェア・デバイスまたは CPU で生成される可能性があります。このデータを使用して、コードのパフォーマンスに影響する低速な割り込みを特定します。

サポートされる解析: system-overview.

enable-parallel-fs-collection=true | false

デフォルト: false

帯域幅、パケットレート、平均パケットサイズ、その他を含む、Lustre* ファイルシステムのパフォーマンス統計を解析します。

サポートされる解析: runsa

enable-stack-collection=true | false

デフォルト: false

ハードウェア・イベントベース・サンプリング収集 (スタックあり) を有効にします。

サポートされる解析: hotspotshpc-performancegpu-offloadrunsa

enable-system-cswitch=true | false

デフォルト: false

システム上のすべてのスレッドのスケジュールを詳しく解析して、スレッドのコンテキスト・スイッチの原因 (プリエンプションまたは同期) を特定します。

サポートされる解析: runsa

enable-thread-affinity=true | false

デフォルト: false

ソケット、物理コア、および論理コアへのスレッドのピニングを解析します。物理コアではなく論理コアを利用して低い物理 CPU 利用率の原因となる、誤ったアフィニティーを識別します。

アフィニティー情報は、スレッドのライフタイムの最後に収集されるため、結果として得られるデータは、スレッドのライフタイム中に変更された動的なアフィニティーの問題全体を示すものではありません。

enable-user-sync=true | false

デフォルト: false

ユーザー定義の同期 API を介して同期データを収集します。

サポートされる解析: threadingrunss

enable-user-tasks=true | false

デフォルト: false

タスク API を使用して、アプリケーションで指定されタスク、イベントおよびカウンターを解析します。このオプションはオーバーヘッドと結果のサイズを増加させます。

サポートされる解析: hotspotsthreadingrunssuarch-explorationrunssrunsa

event-config=<event_name1>,<event_name2>,...

ハードウェア・イベントベース・サンプリング・コレクターで収集する PMU イベントを設定します。複数のイベントはカンマ区切りのリスト (スペースなし) で指定します。

ターゲットの PMU で使用可能なイベントリストを表示するには、次のコマンドを実行します。

vtune -collect-with runsa -knob event-config=? <target>

利用可能なイベント名と簡単な説明が表示されます。イベントに関する詳細情報は、「インテル® プロセッサー・イベントのリファレンス」を参照してください。

サポートされる解析: runsa

event-mode=all | user | os

デフォルト: all

イベントベース・サンプリング収集を OS またはユーザーモードに制限します。

サポートされる解析: hotspotsrunsa

ftrace-config=<event_name>

利用可能なイベントは、freq、idle、sched、disk、filesystem、irq、kvm、workq、softirq、sync です。

Linux* ターゲットのデフォルト: sched、freq、idle、workq、irq、softirq

Android* ターゲットのデフォルト: sched、freq、idle、workq、filesystem、irq、softirq、sync、disk

Linux* Ftrace フレームワーク・イベントを収集します。

サポートされる解析: runsarunss

gpu-sampling-interval=<number> (0.1 から 1000ミリ秒)

デフォルト: 1。

GPU サンプルの間隔を指定します (ミリ秒)。

サポートされる解析: gpu-hotspotsgraphics-renderingrunssrunsa

io-mode=off | stack | nostack

デフォルト: off

スレッドが待機している場所の特定や、計算スレッドの並行性の計算を有効にします。コレクターは API をインストルメントするため、オーバーヘッドが大きくなり、結果サイズが増加します。

サポートされる解析: runssrunsa

ipt-regions-to-load=<number> (10 から 5000)

デフォルト: 1000

詳しく解析するためにロードするコード領域の最大数 (10 から 5000) を指定します。

サポートされる解析: anomaly-detection

kernel-stack=true | false

デフォルト: true

システムディスク I/O API をプロファイルします。

サポートされる解析: io

max-region-duration=<number> (0.001 から 1000ミリ秒)

デフォルト: 100

コード領域ごとの解析の最大期間 (0.001 から 1000ミリ秒) を指定します。

サポートされる解析: anomaly-detection

mem-object-size-min-thres=<number>

デフォルト: 1024 バイト。

解析するメモリー割り当ての最小サイズを指定します。このオプションは、インストルメントの実行時のオーバーヘッドを軽減するのに有効です。

このオプションは、インテル® マイクロアーキテクチャー開発コード名 Sandy Bridge 以降で実行する Linux* ターゲットでのみサポートされます。

サポートされる解析: memory-access

mrte-type=java,dotnet | java,dotnet,python | python

デフォルト: java,dotnet

解析するマネージドランタイムのタイプを指定します。利用可能な値: .NET と Java* の混合解析、Java*、.NET および Python*の混合解析、および Python* のみ。

サポートされる解析: runssrunsa

no-altstack=true | false

デフォルト: false

シグナルハンドラーの代替スタックの使用を無効にします。Linux* 上で Python* 3 コードをプロファイルするには、このオプションの利用を検討してください。

サポートされる解析: runss

pmu-collection-mode=detailed | summary

デフォルト: detailed

関数ごとのデータの内訳またはほかのホットスポットを表示するには、detailed サンプリング収集モードを選択します。プロファイル実行全体の概要には、summary カウンティング収集モードを使用します。このモードは、収集のオーバーヘッドが低く、高速に後処理を行うことができます。

サポートされる解析: uarch-exploration

profiling-mode=characterization (default), code-level-analysis

プロファイル・モードを選択すると、事前定義された GPU ハードウェア・メトリックに基づいて GPU パフォーマンスの問題を特性化するか、ソース解析を有効にして非効率なアルゴリズムによる基本ブロックのレイテンシー、またはメモリーアクセスの問題によるメモリー・レイテンシーを特定します。

サポートされる解析: gpu-hotspotsrunsa

sampling-interval=<number>

ユーザーモード・サンプリングとトレースタイプでは、1 から 1000 の間の数 (ミリ秒) を指定します。デフォルト: 10。

ハードウェア・イベントベース・サンプリング・タイプでは、0.01 から 1000 の間の数 (ミリ秒) を指定します。デフォルト: 1。

CPU サンプル間のサンプリング間隔を指定します (ミリ秒)。

サポートされる解析: hotspotsrunssthreadingrunsasystem-overviewmemory-accesshpc-performancerunss

sampling-mode=sw | hw

デフォルト: sw

プロファイル・モードを指定します。

CPU ホットスポットを特定し、プログラムの呼び出しフローを調査するには、sw を使用します。このモードでは、サンプリング・ドライバーをインストールする必要はありませんが、収集のオーバーヘッドは増加します。

クロックティックやリタイアした命令などの基本的なハードウェア・イベントを基に、アプリケーションのホットスポットを特定するには、hw を使用します。これはオーバーヘッドが少ない収集モードですが、サンプリング・ドライバーをインストールする必要があります。

サポートされる解析: hotspotsthreading

signals-mode=off | objects | stack | nostack

デフォルト: off

タイムラインの同期遷移と関連する待機のシグナル・コールスタックの表示を有効にします。コレクターはシグナル API をインストルメントするため、オーバーヘッドが大きくなり、結果サイズが増加します。

サポートされる解析: runss

spdk=true | false

デフォルト: false

SPDK I/O API をプロファイルします。

サポートされる解析: io

stack-size=<number>

0 から 2147483647 の値。デフォルトは 0 です (スタックサイズの制限なし)。

収集のオーバーヘッドを減らし、インテル® VTune™ プロファイラーが処理するスタックサイズをバイト単位で制限します。

サポートされる解析: runsa

stack-stitching=true | false

デフォルト: true

インテル® oneAPI スレッディング・ビルディング・ブロック(インテル® oneTBB) ベースのアプリケーションでは、呼び出しフローを再構築して、スタックを並列ワークロードの開始位置にアタッチします。

サポートされる解析: runss

stack-type=software | lbr

デフォルト: software

ソフトウェア・スタックとハードウェア LBR ベースのスタックのいずれかを選択できます。ソフトウェア・スタックには深さの制限がなく、ハードウェア・スタックよりも多くのデータを提供しますがオーバーヘッドは増加します。一般に、収集のオーバーヘッドが重要でなければ、ソフトウェア・スタック・タイプを推奨します。ハードウェア LBR スタックは、すべてのプラットフォームで利用できるわけではありません。

サポートされる解析: runsa

stackwalk-mode=online | offline

デフォルト: offline

スタックを解析するオンライン (収集中) とオフライン (収集後) モードを選択します。オフラインモードは、解析のオーバーヘッドを軽減するため、通常推奨されます。

サポートされる解析: runss

target-gpu= <domain:bus:device.function>

デフォルト: インテル® VTune™ プロファイラーが検出可能な最新の GPU アーキテクチャー

システムに複数の GPU が接続されている場合、プロファイルするターゲット GPU を選択します。省略されると、インテル® VTune™ プロファイラーは検出可能な最新の GPU アーキテクチャーを選択します。

例: target-gpu=0:0:2.0

サポートされる解析: gpu-offloadgpu-hotspots

uncore-sampling-interval=<number>

ハードウェア・イベントベース・サンプリング・タイプでは、1 から 1000 の間の数 (ミリ秒) を指定します。デフォルト: 10。

アンコア・イベント・サンプル間の間隔を指定します (ミリ秒)。

サポートされる解析: runsa

waits-mode=off | stack | nostack

デフォルト: off

スレッドが待機している場所の特定や、計算スレッドの並行性の計算を有効にします。コレクターは API をインストルメントするため、オーバーヘッドが大きくなり、結果サイズが増加します。

サポートされる解析: runss

影響するアクション

collectcollect-with

説明

collect (事前定義解析タイプ) または collect-with (カスタム解析タイプ) アクションの knob 設定を構成するには、knob アクションオプションを使用します。ここで、解析タイプは 1 つ以上の knob をサポートします。各解析タイプやコレクタータイプは、特定の knob セットをサポートし、各 knob には値が必要です。ほとんどの場合、knob 値はブール値であるため、knob を有効にするには、True を使用します。

事前定義解析タイプで利用可能な knob を確認するには:

vtune -help collect <analysis_type>

カスタム解析タイプで利用可能な knob を確認するには:

vtune -help collect-with <analysis_type>

この例は、スレッド化解析タイプの knob リストを返します。

vtune -help collect threading

この例は、Android* フレームワークとチップセット・イベントの収集を有効にして、Android* システムでカスタム・イベントベースのサンプリング・データ収集を実行します。

vtune -collect-with runss -target-system=android -knob sampling-interval=2 -knob cpu-samples-mode=stack -knob ftrace-config=gfx,dalvik -knob chipset-event-config="GMCH_PARTIAL_WR_DRAM.ANY,GMCH_CORE_CLKS" --target-process com.intel.tbb.example.tachyon

この例は、スタックサイズを 8192 バイトに制限して、カスタム・イベントベースのサンプリング・データ収集を設定して実行します。

vtune -collect-with runsa -knob enable-stack-collection=true -knob stack-size=8192 -knob enable-call-counts=true -knob event-config=CPU_CLK_UNHALTED.REF_TSC:sa=1800000,CPU_CLK_UNHALTED

関連情報