Intel® VTune™ Amplifier

Window: Summary

The Summary window is your starting point of the performance analysis with the Intel® VTune™ Amplifier . To access this window, click the Summary sub-tab in the result tab.

The Summary window provides the overall statistics for the application run and includes the following sections:

The following controls help you manage the summary data:

Result Summary

The Result Summary section displays a list of performance metrics that help you estimate the total performance of your application. The list of metrics depends on the selected viewpoint. The Elapsed Time metric provided as a section title serves as a key performance baseline for most of the analysis types.

Top Critical Objects

VTune Amplifier displays the most performance-critical objects and their performance values per key metrics. Optimizing these objects typically results in improving overall application performance.

You can control the number of objects in this list and displayed metrics via the viewpoint configuration file. Depending on the selected viewpoint and type of an analysis target, the following objects are possible:

Type of Object

Applicable Viewpoints

Hotspots

Hotspots, Hotspots by CPU Usage, Concurrency

Waiting objects

Locks and Waits

Event samples

Hardware Events

Frequencies

Platform Power Analysis

Causes of Core Wake-ups

Platform Power Analysis

Active SC Devices

Platform Power Analysis

Top Tasks

Hotspots

OpenMP regions by Potential Gain

Hotspots, Hotspots by CPU Usage, Concurrency

OpenMP processes by MPI Communication Spin Time

Hotspots, Hotspots by CPU Usage, Concurrency

GPU computing tasks

Any viewpoint used for GPU analysis configured to trace OpenCL™ kernels

The grayed-out [Others] module provided for functions and waiting objects displays the total value for all other functions/synchronization objects in the application that are not included into this table.

Selected Analysis Summary

Depending on the analysis type, the Summary window may include the following analysis-specific sections:

GPU Usage

Depending on the target platform used for GPU analysis, this section shows the time (in seconds) used by GPU engines. Note that GPU engines may work in parallel and the total time taken by GPU engines does not necessarily equal the application Elapsed time.

OpenMP Analysis. Collection Time

This section displays the Collection Time as well as metrics for the duration of serial (outside of any parallel region) and parallel portions of the program. If the Serial time is significant, consider options to minimize serial execution, either by introducing more parallelism or by doing algorithm or microarchitecture tuning for sections that seem unavoidably serial. For high thread-count machines, serial sections have a severe negative impact on potential scaling (Amdahl's Law) and should be minimized as much as possible. See Interpreting OpenMP* Analysis Data for more details.

Average Bandwidth

This sections shows total memory bandwidth, Read Bandwidth, and Write Bandwidth per package averaged over the whole profiling session. This data is available if you run an analysis type collecting platform-wide metrics, for example, CPU/GPU Concurrency.

The performance of your application may be limited by memory bandwidth if values in this table are close to maximum possible bandwidth on your platform. You can use benchmarks to measure your platform maximum bandwidth, for example: Intel Memory Latency Checker.

Devices Concurrency and Usage

This section displays total time when a CPU and/or GPU was active/idle. Use this data to explore how long the CPU and GPU were working in parallel and separately and estimate whether your application is CPU or GPU bound.

Histograms

The histograms help visualize the performance of your application per specific metrics. Depending on the selected viewpoint and analysis type, the following histograms show up in the Summary window:

CPU Usage Histogram

Use This To Do This

Applicable Viewpoints

Vertical bars

Hover over the bar to identify the amount of Elapsed time the application spent using the specified number of logical CPUs.

Hotspots (for sampling event-based collection results), Hotspots by Thread Concurrency, Locks and Waits, Hotspots by CPU Usage

Target Concurrency

Identify the target CPU usage. This number is equal to the number of logical CPUs. Consider this number as your optimization goal.

Average

Identify the average number of CPUs used aggregating the entire run. It is calculated as CPU time / Elapsed time.

CPU usage at any point in time cannot surpass the available number of logical CPUs. Even when the system is oversubscribed, and there are more threads running then CPUs, the CPU usage is the same as the number of CPUs.

Use this number as a baseline for your performance measurements. The closer this number to the number of logical CPUs, the better, except for the case when the CPU time goes to spinning.

Utilization Indicator bar

Analyze how the various utilization levels map to the number of simultaneously utilized logical CPUs.

Note

In the CPU Usage histogram, the VTune Amplifier treats the Spin and Overhead time as Idle CPU usage. Different analysis types may recognize Spin and Overhead time differently depending on availability of call stack information. This may result in a difference of CPU Usage graphical representation per analysis type.

Thread Concurrency Histogram

Vertical bars

Hover over the bar to identify the amount of Elapsed time the application spent simultaneously running the specified number of threads.

For example, an application runs seven threads for 1.5s, waits for an event, and then runs again for 1.5s. The value for the 7th node for this application, is 1.5 + 1.5 = 3s

The last bar in the chart may contain a + indicator. This indicates that there were additional threads in the overutilized state and that the time for these threads is combined into one bar.

Hotspots by Thread Concurrency, Locks and Waits

Target Concurrency

Identify the target concurrency level. This number is equal to the number of logical CPUs. Consider this number as your optimization goal.

Average

Identify the average number of threads running in parallel for the entire run. It is calculated as CPU time / Elapsed time.

For example, on a quad-core machine if an application used 2 cores for 1 second, did not use any cores for 1 second, and used all 4 cores for 1 second then the average CPU usage is calculated as follows: (2 * 1 + 0 * 1 + 4 * 1) / (1 + 1 + 1) = 6 / 3 = 2.

Unlike the CPU usage, the concurrency level of an application can be larger that the number of available logical CPUs, which means that the system is oversubscribed.

Use this number as a baseline for your performance measurements. The closer this number to the number of logical CPUs, the better.

Utilization Indicator bar

Analyze how the various utilization levels map to the number of simultaneously running threads.

Correlate CPU Usage and Thread Concurrency Data

Potential Performance Issue

Average CPU usage is close to target concurrency and average concurrency is much lower than target concurrency.

Parallel application with a lot of contention on spin locks

Average CPU usage and average concurrency are close to 1.

Serial application

Average CPU usage and average concurrency are almost the same, with values falling between 1 and target concurrency.

Parallel application with contention on usual synchronization-based locks

Both average CPU usage and average concurrency are close to target concurrency.

Good parallel application

Frame Rate Histogram

Domain drop-down menu

Choose a frame domain to analyze with the frame rate histogram. If only one domain is available, the drop-down menu is grayed out.

All viewpoints. Available for applications with frames only.

Vertical bars

Hover over a bar to see the total number of frames in your application executed with a specific frame rate. High number of slow or fast frames signals a performance bottleneck.

Frame rate bar

Use the sliders to adjust the frame rate threshold (in frames per second) for the currently open result. Alternatively, you may set the thresholds for fast and slow frames from the Analysis Target tab (applicable to all subsequent results).

OpenMP Region CPU Usage Histogram

OpenMP Region drop-down menu

Filter the histogram data by the selected OpenMP region. Start your OpenMP analysis from the top of the list that is sorted by the Potential Gain metric value, which is the maximum elapsed time that could be saved if the OpenMP region is optimized to have no load imbalance assuming no runtime overhead (Collection Time minus Ideal Time).

All viewpoints. Available for applications with OpenMP regions only.

Vertical bars

Hover over a bar to see how much time the specific number of CPUs were running simultaneously in the OpenMP region selected from the OpenMP Region drop-down menu. Spin and Overhead time adds to the Idle CPU usage value.

Target Concurrency

Identify the target concurrency level. This number is equal to the number of logical CPUs. Consider this number as your optimization goal.

Average

Identify the average number of CPUs used aggregating the entire run. It is calculated as CPU time / Elapsed time.

Use this number as a baseline for your performance measurements. The closer this number to the number of logical CPUs (Target Concurrency), the better, except for the case when the CPU time goes to spinning.

Utilization Indicator bar

Analyze how the various utilization levels map to the number of simultaneously running CPUs.

OpenMP Region Duration Histogram

OpenMP Region drop-down menu

Choose an OpenMP region to see the number of instances distributed by duration.

All viewpoints. Available for applications with OpenMP regions only.

Instance Count

Hover over a bar to see the total number of OpenMP region instances in your application executed with a specific duration. High number of slow or fast regions signals a performance bottleneck.

Duration Type (sec)

Use the sliders to adjust the duration threshold (in seconds) for the currently open result. Initial distribution of region instances by Fast/Good/Slow categories is done as a ratio of 20/40/20 between min and max region time values.

Frequency and Elapsed Time Histograms (available for VTune Amplifier for Systems only)

The Frequency and Elapsed Time histograms show the time spent in each frequency or state. The Y axis shows the time per state type, and the X axis shows the different frequency or state.

Frequency

Identify a frequency state used by the processor.

Hover over a bar to see the number of seconds your application executed in a specific frequency. Much time spent in the high-frequencies leads to higher power consumption.

Platform Power Analysis

Core Sleep State

View core sleep states your system spent time in during the analysis run.

Hover over a bar to see the number of seconds your application executed in a specific sleep state. Spending more time in deeper sleep states (ACPI C1 - ACPI Cn) provides greater power savings.

Graphics Device Sleep State

View graphics device sleep states your system spent time in during the analysis run.

Hover over a bar to see the number of seconds your application executed in a specific sleep state. Spending more time in deeper sleep states (RC1 - RCn) provides greater power savings.

Collection and Platform Info

This section provides the following data:

Application Command Line

Path to the target application.

Operating System

Operating system used for the collection.

Computer Name

Name of the computer used for the collection.

Result Size

Size of the result collected by the VTune Amplifier.

Collection start time

Start time (in UTC format) of the external collection. Explore the Timeline pane to track the performance statistics provided by the custom collector over time.

Collection stop time

Stop time (in UTC format) of the external collection. Explore the Timeline pane to track the performance statistics provided by the custom collector over time.

CPU Information

Name

Name of the processor used for the collection.

Frequency

Frequency of the processor used for the collection.

Logical CPU Count

Logical CPU count for the machine used for the collection.

Physical Core Count

Number of physical cores on the system.

User Name

User launching the data collection. This field is available if you enabled the per-user event-based sampling collection mode during the product installation.

GPU Information

Name

Name of the Graphics installed on the system.

Vendor

GPU vendor.

Driver

Version of the graphics driver installed on the system.

Stepping

Microprocessor version.

EU Count

Number of execution units (EUs) in the Render and GPGPU engine. This data is Intel HD Graphics specific.

Max EU Thread Count

Maximum number of threads per execution unit. This data is Intel HD Graphics specific.

Max Core Frequency

Maximum frequency of the Graphics processor. This data is Intel HD Graphics specific.

Graphics Performance Analysis

GPU metrics collection is enabled on the hardware level. This data is Intel HD Graphics specific.

Note

Some systems disable collection of extended metrics such as L3 misses, memory accesses, sampler busyness, SLM accesses, and others in the BIOS. On some systems you can set a BIOS option to enable this collection. The presence or absence of the option and its name are BIOS vendor specific. Look for the Intel® Graphics Performance Analyzers option (or similar) in your BIOS and set it to Enabled.

See Also