Intel® Advisor Help

Investigate Memory Usage and Traffic

Accuracy Level

High

Enabled Analyses

Survey with register spill/fill analysis + Trip Counts, FLOP, Call Stacks (Characterization) + Memory Access Patterns

Note

Collecting additional data may substantially increase report generation time. There is a variety of techniques available to minimize data collection, result size, and execution time. Check Minimize Analysis Overhead.

Result Interpretation

After you run the Vectorization and Code Insights perspective with high accuracy and full Characterization and Memory Access Patterns steps enabled, Intel® Advisor:

In the Survey report

Compute Performance columns in the Survey report (Vectorization perspective)

Use the FLOP data to analyze application memory usage and performance values that help you make better decisions about your vectorization strategy.

Compute Performance column

You can configure this column to show only metrics for a specific type of operations used in your application. Click the control in the Compute Performance column set header and choose the desired drop-down option to:

Select a specific loop/function to see the details about FLOP and/or integer operation utilization in the Code Analytics tab:

Details of operation utilization in the Code Analytics pane (Vectorization perspective)

Memory column

You can configure this column to show only metrics for one or more specific memory levels and specific types of operations. Click the gear icon in the Memory column set header and choose the desired drop-down option to determine which columns to display in the grid:

Note

This data is only available if cache simulation is enabled. By default, Intel® Advisor collects only L1 traffic, so you will not be able to select memory levels or loads/stores.

You can choose to hide the current column, Show All Columns, or customize the columns displayed in the grid by choosing Configure Column Layouts.

You can use the traffic and AI data reported in the Compute Performance and Memory columns to find the best candidates to examine the memory usage for in the Memory Access Patterns tab. For example, bad access pattern has stronger impact on loops/functions with higher AI value suggesting that you start with optimizing their memory usage.

In the Refinement report

Important

Before running the Memory Access Patterns analysis, select loops/functions from the column in the Survey report.

Get information about types of memory access in selected loops/functions, how you traverse your data, and how it affects your vector efficiency and cache bandwidth usage by running the Memory Access Patterns analysis.

Memory access patterns affect how data is loaded into and stored from the vector registers.

Example of a Refinement report with memory access patterns (Vectorization perspective)

To analyze how the data structure layout affects performance, pay attention to the following:

In the Memory Analysis Patterns Report tab at the bottom of the Refinement Reportsdouble-click a line to view the selected operation's source code.

Associated Memory Access Patterns Source window, from top left to bottom right:

Next Steps