Intel® VTune™ Amplifier
Set configuration options for the specified analysis type or collector type.
Analysis Type window configuration options
-knob | -k <knob-name>=<knob-value> |
knob-name |
An analysis type or collector type may have one or more configuration options (knobs) that provide additional instructions for performing the specified type of analysis. To use a knob, you must specify the knob name and knob value. Multiple knob options are allowed and can be followed by additional action-options, as well as global-options, if needed. |
knob-value |
There are values available for each knob. In most cases this is a Boolean value, so for Boolean knobs, specify <knob-name>=true to enable the knob. |
Knob behavior may vary depending on the analysis type or collector type.
VTune Amplifier for Systems provides GPU analysis only on Android* systems running on processors with Intel HD Graphics.
Knobs applicable to all analysis types:
<knob_name> |
Value |
Description |
|---|---|---|
enable-user-sync |
true | false. Default: false |
Collect synchronization data via the User-Defined Synchronization API. |
enable-user-tasks |
true | false. Default: false |
Analyze tasks specified in your application via the Task API. This option causes higher overhead and increases result size. |
cpu-samples-mode |
off | stack | nostack. Default: off |
Enable to periodically sample the application. Samples can be collected with or without stacks. |
signals-mode |
off | objects | stack | nostack. Default: off |
Enable to view synchronization transitions in the timeline and signalling call stacks for associated waits. The collector instruments signalling APIs, which causes higher overhead and increases result size. |
waits-mode |
off | stack | nostack. Default: off |
Enable to identify where threads are waiting or compute thread concurrency. The collector instruments APIs, which causes higher overhead and increases result size. |
io-mode |
off | stack | nostack. Default: off |
Enable to identify where threads are waiting or compute thread concurrency. The collector instruments APIs, which causes higher overhead and increases result size. |
stackwalk-mode |
online | offline. Default: offline |
Choose between online (during collection) and offline (after collection) modes to analyze stacks. Offline mode reduces analysis overhead and is typically recommended. |
stack-stitching |
true | false. Default: true |
For Intel TBB-based applications, restructure the call flow to attach stacks to a point introducing a parallel workload. |
| enable-gpu-usage |
true | false. Default: false |
Analyze frame rate and usage of Intel HD Graphics engines and identify whether your application is GPU or CPU bound. |
enable-gpu-runtimes |
true | false. Default: false |
Analyze execution of OpenCL™ kernels and Intel® Media SDK programs on Intel HD Graphics. This option may affect the performance of your application on the CPU side. NoteOpenCL kernels analysis is currently supported for Windows and Linux target systems with Intel HD graphics. Intel Media SDK program analysis is supported for Linux targets only. |
gpu-sampling interval |
A number (in microseconds) between 1 and 1000. Default: 1000us |
Specify an interval between GPU samples. |
gpu-counters-mode |
none, overview, global-local-accesses, compute-extended |
Analyze performance data from Intel HD Graphics based on the preset counter sets:
|
sampling-interval |
For user-mode sampling and tracing types: a number (in milliseconds) between 1 and 1000. Default: 10 For hardware event-based sampling types: a number (in milliseconds) between 0.01 and 1000. Default: 1. |
Specify an interval (in milliseconds) between CPU samples. |
trace-mpi |
true | false. Default: false |
For MPI analysis, configure collectors to determine MPI rank ID in case of a non-Intel MPI library implementation. |
analyze-loops |
true | false. Default: false |
Extend loop analysis to collect advanced loops information such as instruction set usage and display analysis results by loops and functions. |
Knobs for user-mode sampling and tracing analysis types (predefined and custom) only:
<knob_name> |
Value |
Description |
|---|---|---|
enable-user-sync |
true | false. Default: false |
Collect synchronization data via the User-Defined Synchronization API. |
cpu-samples-mode |
off | stack | nostack. Default: off |
Enable to periodically sample the application. Samples can be collected with or without stacks. |
signals-mode |
off | objects | stack | nostack. Default: off |
Enable to view synchronization transitions in the timeline and signalling call stacks for associated waits. The collector instruments signalling APIs, which causes higher overhead and increases result size. |
waits-mode |
off | stack | nostack. Default: off |
Enable to identify where threads are waiting or compute thread concurrency. The collector instruments APIs, which causes higher overhead and increases result size. |
io-mode |
off | stack | nostack. Default: off |
Enable to identify where threads are waiting or compute thread concurrency. The collector instruments APIs, which causes higher overhead and increases result size. |
stackwalk-mode |
online | offline. Default: offline |
Choose between online (during collection) and offline (after collection) modes to analyze stacks. Offline mode reduces analysis overhead and is typically recommended. |
stack-stitching |
true | false. Default: true |
For Intel TBB-based applications, restructure the call flow to attach stacks to a point introducing a parallel workload. |
mrte-type |
java,dotnet | java | dotnet . Default: java,dotnet |
Specify a type of managed runtime to analyze. Available values: combined Java* and .NET* analysis, Java only, and .NET only. |
no-altstack |
true | false. Default: false |
Disable using alternative stacks for signal handlers. Consider this option for profiling standard Python 3 code on Linux. |
Knobs for hardware event-based sampling analysis types (predefined and custom) only:
<knob_name> |
Value |
Description |
|---|---|---|
| collection-detail |
hotspots-sampling |
Identify application hotspots based on such basic hardware events as Clockticks and Instructions Retired. NoteThis knob is available only for the Advanced Hotspots analysis. |
stack-sampling |
Identify hardware hotspots, explore statistically reconstructed call flow of your program and analyze thread scheduling. |
|
stack-and-callcount |
Identify hardware hotspots, analyze thread scheduling, explore call stacks and statistically approximated number of calls to sampled functions. |
|
stack-call-and-tripcount |
Extend the stack-and-callcount collection with an analysis of loop trip count statistically estimated using the hardware events. |
|
enable-stack-collection |
true | false. Default: false |
Enable advanced collection of call stacks and thread context switches. |
enable-call-counts |
true | false. Default: false |
Obtain statistical estimation of call counts based on hardware events. |
enable-trip-counts |
true | false. Default: false |
Obtain statistical estimation of loop trip counts based on hardware events. |
enable-system-cswitch |
true | false. Default: false |
Analyze detailed scheduling layout for all threads on the system and identify the nature of context switches for a thread (preemption or synchronization). |
enable-context-switches |
true | false. Default: false |
Analyze detailed scheduling layout for all threads in your application, explore time spent on a context switch and identify the nature of context switches for a thread (preemption or synchronization). |
event-config |
<event_name1>,<event_name2>,... |
Configure PMU events to collect with the hardware event-based sampling collector. Multiple events can be specified as a comma-separated list (no spaces). |
chipset-event-config |
"event1,event2,..." |
Specify a comma-separated list of Android chipset events (up to 5 events) to monitor with the hardware event-based sampling collector. NoteThis option is supported with the VTune Amplifier for Systems only. |
collect-memory-bandwidth |
true | false. Default: false |
Collect data to identify where your application is generating significant bandwidth to DRAM. To view collected data in GUI, enable the Memory Usage viewpoint. |
analyze-mem-objects |
true | false. Default: false |
Enable the instrumentation of memory allocation/de-allocation and map hardware events to memory objects. |
mem-object-size-min-thres |
Default: 1024 bytes |
Specify a minimal size of memory allocations to analyze. This option helps reduce runtime overhead of the instrumentation. |
event-mode |
all | user | os. Default: all |
Limit event-based sampling collection to OS or USER mode. |
analyze-active-power-consumption |
true | false. Default: false |
Collect special energy metrics to analyze active power consumption of your system and the impact your software has on the system behavior. |
analyze-idle-power-consumption |
true | false. Default: false |
Collect special Idle Time and Cx Residency metrics to analyze idle power consumption of your system and the impact your software has on the system behavior. |
atrace-config |
Available events are gfx, input, view, webview, wm, am, audio, video, camera, hal, res, dalvik. |
Collect Android framework events from Systrace*. NoteThis option is supported with the VTune Amplifier for Systems only. |
ftrace-config |
Available events are freq, idle, sched, disk, irq, kvm, workq, softirq, sync. |
Collect Linux Ftrace* framework events.
|
stack-size |
A number between 0 and 2147483647. Default is 0 (unlimited stack size). |
Reduce the collection overhead and limit the stack size (in bytes) processed by the VTune Amplifier. |
enable-cache-metrics |
true | false. Default: true |
Analyze the data locality. Good data accessibility makes your code efficient and helps benefit from vectorization. This analysis includes only L1 metrics since L2 and FILL events on the Intel® Xeon Phi™ coprocessor are counting both demand loads and stores as well as multiple types of prefetches. Since other events do not count all of the prefetches accurately, the formulas cannot be adjusted to calculate real demand L2 hits or misses. NoteThis knob is available only for the General Exploration analysis on the Intel Xeon Phi™ coprocessor. |
enable-12-events |
true | false. Default: true |
Extend cache analysis with adding the L2_DATA_READ/WRITE_MISS_CACHE_FILL and L2_DATA_READ/WRITE_MISS_MEM_FILL events for some insight into L2 data locality. The general ratio of these events may indicate remote cache accesses that have as high a latency as memory accesses and should be avoided if possible. NoteThis knob is available only for the General Exploration analysis on the Intel Xeon Phi coprocessor. |
enable-tlb-metrics |
true | false. Default: false |
Translation Lookaside Buffer (TLB) is a cache used for mapping virtual address to physical ones. Analyze the rate of TLB misses to identify performance problems. NoteThis knob is available only for the General Exploration analysis on Intel Xeon Phi coprocessor. |
enable-vpu-metrics |
true | false. Default: false |
Identify whether the level of vectorization usage (instruction-level parallelism) in your program is sufficient. NoteThis knob is available only for the General Exploration analysis on Intel Xeon Phi coprocessor. |
analysis-step |
cycles | aborts. Default: cycles |
Specify a step for analyzing Intel Transactional Synchronization Extensions behavior. Typically, you start with measuring transactional success (cycles) and then, if the aborts rate is high, you run the TSX Exploration to analyze for aborts. NoteThis option is available only for the TSX Exploration analysis for the Intel microarchitecture code name Haswell. |
Use the knob action-option to configure knob settings for a collect (predefined analysis types) or collect-with (custom analysis types) action where the analysis type supports one or more knobs. Each analysis type or collector type supports a specific set of knobs, and each knob requires a value. In most cases the knob value is Boolean, so you would use True to enable the knob.
To see all knobs available for a predefined analysis type:
$ amplxe-cl -help collect <analysis_type>
To see knobs for a custom analysis type:
$ amplxe-cl -help collect-with <analysis_type>
This example performs the Basic Hotspots analysis, including user tasks specified in your code via the Task API. It marks frames below the slow-frames-threshold of 40 frames per second (fps) as slow, frames above the fast-frames-threshold of 100 fps as fast, and frames between 40 and 100 fps as good. The search-dir specifies the directory to search for symbol information.
$ amplxe-cl -collect hotspots -knob enable-user-tasks=true -slow-frames-threshold 40 -fast-frames-threshold 100 -search-dir usr/lib/debug/ -- myApp
This example returns a list of knobs for the Locks and Waits analysis type:
$ amplxe-cl -help collect locksandwaits
This example runs a custom event-based sampling data collection on an Android system enabling collection of Android framework and chipset events (applicable to the VTune Amplifier for Systems only).
$ amplxe-cl -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
This example configures and runs a custom event-based sampling data collection with the stack size limited to 8192 bytes:
$ amplxe-cl -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