インテル® 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

デフォルト: HPC パフォーマンス特性解析では true、 その他の解析では false

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

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

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

aource-analysis=bb-latency | mem-latency

デフォルト: bb-latency

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

  • bb-latency モードは、非効率なアルゴリズムによって引き起こされる問題を特定するのに役立ちます。このモードでは、インテル® VTune™ プロファイラーはすべての基本ブロックの実行時間を測定します。基本ブロックは、ブロックの先頭に単一の入り口があり、最後に単一の出口を持つ直線的なコードシーケンスです。後処理でインテル® 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-io-waits=true | false

デフォルト: false

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

サポートされる解析: runsa

collect-memory-bandwidth=true | false

デフォルト: 解析タイプによって異なる

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

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

collect-memory-bound=true | false

デフォルト: true

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

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

collect-programming-api=true | false

gpu-hotspots のデフォルト: true
runss のデフォルト: 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]

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

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 帯域幅を評価します。このデータは、タイムライン上で帯域幅メトリックをスケールし、しきい値を計算するために使用されます。

サポートされる解析: 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 から 1000ms の間

デフォルト: 1

CPU サンプルを収集する間隔を指定します (ミリ秒)。

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

io-mode=off | stack | nostack

デフォルト: off

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

サポートされる解析: runssrunsa

kernel-stack=true | false

デフォルト: true

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

サポートされる解析: io

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 (デフォルト)、 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 を使用します。これはオーバーヘッドが少ない収集モードですが、サンプリング・ドライバーをインストールする必要があります。

サポートされる解析: hotspots、threading

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

インテル® TBB ベースのアプリケーションで、呼び出しフローを再構築してスタックを並列ワークロードの開始位置にアタッチします。

サポートされる解析: runss

stack-type=software | lbr

デフォルト: software

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

サポートされる解析: runsa

stackwalk-mode=online | offline

デフォルト: offline

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

サポートされる解析: runss

waits-mode=off | stack | nostack

デフォルト: off

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

サポートされる解析: runss

uncore-sampling-interval=<number>

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

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

サポートされる解析: runsa

影響するアクション

collectcollect-with

説明

knob アクションオプションを使用して、解析タイプが 1 つ以上の knob をサポートする collect (事前定義解析タイプ)、または collect-with (カスタム解析タイプ) アクションの 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

関連情報