Bandwidth Analysis

Bandwidth analysis type uses event-based sampling collection.

Bandwidth analysis type measures the data read and written to DRAM via the processor's integrated memory controller. As a result of the data collection, the Intel® VTune™ Amplifier displays the bandwidth-over-time chart. Use this chart to identify regions of significant memory bandwidth and compare that bandwidth with your machine's theoretical bandwidth limits. This helps you determine whether the code is saturating available bandwidth, a significant performance limitation. Once you have identified and filtered in a region of significant bandwidth, use the memory-access-correlated grid metrics to identify the thread, process, module, source file, or function responsible for the performance bottleneck.

To determine theoretical bandwidth limits for your machine, use a benchmark that is bandwidth-limited by design (like the STREAM benchmarks).

To see the full list of events used for this analysis type:

  1. Click the New Analysis toolbar button.

    The Analysis Type window opens.

  2. From the left pane, select Microarchitecture Analysis > Bandwidth Analysis.

    The Bandwidth Analysis configuration pane opens on the right. The Details section provides a table with the processor events used for this analysis type.

You can choose to view Bandwidth analysis results in any of the following viewpoints:

Viewpoint

Description

Bandwidth

Helps identify where the application is generating significant bandwidth to DRAM. Memory bandwidth, in GB/sec, is plotted in the timeline, while events often associated with DRAM requests are shown in the grid. In the timeline, select a region of high bandwidth, and filter that region in. Use the grid to discover where in the code DRAM accesses are being generated.

Hardware Event Counts

Displays the event count for all collected processor events. While the Hardware Event Sample Counts viewpoint provides the actual number of samples collected for an event, Hardware Event Count viewpoint estimates the number of times this event occurred during the collection.

Hardware Event Sample Counts

Displays the sample count for all collected processor events. While the Hardware Event Counts viewpoint estimates the number of times an event occurred during the collection, the Hardware Event Sample Counts viewpoint provides the actual number of samples collected for this event.

Hardware Issues

Helps identify where the application is not making the best use of available hardware resources. This viewpoint displays metrics derived from hardware performance counters. Hover over the highlighted metrics values in the grid to read why the extreme value might represent a performance problem.

Task Time

Visualizes tasks, logical units of work on specific threads, based on ITT API annotations. Identify tasks with the highest execution time and analyze threads responsible for a particular task.

These viewpoints may include the following windows:

  • Summary window displays statistics on the overall application execution.

  • Bottom-up pane displays performance data per metric (event ratio/event count/sample count) for each hotspot function.

  • Top-down Tree window displays hotspot functions in the call tree, performance metrics for a function only (Self value) and for a function and its children together (Total value).

  • Caller/Callee window displays parent and child functions of the selected focus function. This window is available only if stack collection was enabled during analysis configuration.

  • PMU Events window displays count for PMU events selected for the analysis.

  • Uncore Events window displays count for uncore events selected for the analysis. If there are no uncore events, the upper pane of the window is empty.

  • Tasks, Tasks over Time, and Tasks by Threads windows provide details on tasks specified in your code with the Task API.

For more complete information about compiler optimizations, see our Optimization Notice.