Intel® Advisor Help

Checking Memory Access Patterns

The compiler attempts to produce high-performance code by implementing all sorts of optimizations. But, in some cases, the compiler cannot vectorize code because of non-unit memory strides, or the arrangement of data structures (for example, by using "arrays of structures" instead of "structures of arrays").

Intel® Advisor Memory Access Patterns tool observes data accesses during execution, and spots the tasks that contain the memory accesses. The data collected and analyzed appears in the Memory Access Patterns Report tab of the Refinement Reports window.

The Intel® Advisor Memory Access Patterns tool runs your annotated target and watches memory access operations for the selected loops. Use the tool to identify memory access strides within the selected loops. To prepare your target program, see Minimizing Data Collection Result Size and Execution Time (Memory Access Patterns) and Before Running the Memory Access Patterns Tool.

You can run the Memory Access Patterns tool to collect memory access data for each of the selected loops:

Similarly, you can view the collected data in the Refinement Reports tab and related windows by using Microsoft Visual Studio, Advisor standalone GUI, or Advisor command-line interface

You can start optimizing loop memory accesses right after running the tool. As you fix the potential issues, rebuild your application and run the Memory Access Patterns tool again.

Note

To make sure the data in each of the open report windows is relevant, rerun the collectors after you change your source code.

Memory Access Patterns Report provides information about types of strides, which memory access operations issue during loop execution. The tool reports the following types of strides:

See Also