Window: Refinement Reports
Intel® Advisor
offers two
refinement
analyses:
- Dependencies analysis (optional) -For safety purposes, the compiler is often conservative when assuming data dependencies. Run a Dependencies analysis to check for real data dependencies in loops the compiler did not vectorize because of assumed dependencies. If real dependencies are detected, the analysis can provide additional details to help resolve the dependencies. Your objective: Identify and better characterize real data dependencies that could make forced vectorization unsafe.For more details, see .
- Memory Access Patterns (MAP) analysis (optional) -Run a MAP analysis to check for various memory issues, such as non-contiguous memory accesses and unit stride vs. non-unit stride accesses. Your objective: Eliminate issues that could lead to significant vector code execution slowdown or block automatic vectorization by the compiler.For more details, see Investigate Memory Usage and Traffic
Site Report Pane
The
Site Report
pane on top of Refinement Reports window comprises top-level information:
- Site Locationlists names of the analyzed loops, names of the files with the source code, as well as the number of the line where the loop is invoked
- Loop-Carried DependenciesSummarizes presence or absence of dependencies across iterations (loop-carried dependencies). Dependency types:
- RAW - read after write (flow dependency)
- WAR - write after read (anti dependency)
- WAW - write after write (output dependency)
- Strides DistributionUnit/Constant/Variable stride ratio for the selected site.
- Access Patterninformation about stride types detected in the site.
- Site NameSite Name in case of using source annotations, or sequence id in case of marking loops for deeper analysis in survey report.
Double-click any line in the
Refinement Reports
top pane to see the loop source code.
The pane at the bottom of the Refinement Reports window contains the following elements:
- Filterspane - filter analysis data by a variety of criteria, such as module, loop/function, vectorized/non-vectorized.
- Advanced Viewpane - includes the following tabs:
- Memory Access Patterns Report tab - view information about types of memory access inside selected loops/functions. (Vectorization and Code Insightsperspective only.)
- Dependencies Report tab - view any predicted data sharing problems and informational remark messages.
- Recommendations tab - view memory-specific recommendations.