Survey, Trip Counts, FLOPS, and Roofline Analyses
Survey Report Purpose and Usage
- Survey analysis - Identifies:
- Where vectorization, or parallelization with threads, will pay off the most
- If vectorized loops are providing benefit, and if not, why not
- Un-vectorized loops and why they are not vectorized
- Performance problems in general
- Trip Counts analysis - Dynamically identifies the number of times loops and functions are invoked and executed (also calledcall count/loop countanditeration countrespectively). Use Trip Counts data to:
- Detect loops with too-small trip counts and trip counts that are not a multiple of vector length.
- Analyze parallelism granularity more deeply.
- FLOP analysis - Dynamically measures floating-point and integer operations, and memory traffic. Use the FLOP analysis to generate application memory usage and performance values that help you make better decisions about your vectorization strategy.
- Roofline analysis - Helps youvisualize actual performance against hardware-imposed performance ceilings, as well as determine the main limiting factor (memory bandwidth or compute capacity), thereby providing an ideal roadmap of potential optimization steps.Use theRooflinechart to answer the following questions:
- What is the maximum achievable performance with your current hardware resources?
- Does your application work optimally on current hardware resources?
- If not, what are the best candidates for optimization?
- Is memory bandwidth or compute capacity limiting performance for each optimization candidate?
Survey Report Regions
- Roofline Chart pane -visualize actual performance against hardware-imposed performance ceilings, as well as determine the main limiting factor (memory bandwidth or compute capacity), thereby providing an ideal roadmap of potential optimization steps.
- Advanced View pane -View more information for a loop selected in the Loop Information pane.
- Sourcetab -View source code for a selected loop.
- Top Down tab -View the function/loop hierarchy in a stack, and the source code associated with a specific function or loop. Each function or loop appears on a separate grid line. Loops are identified with an icon, the word[loop, followed by the source location and the function or procedure name that executes it.
- Assemblytab -View assembly representation for a selected loop.
- Why No Vectorization?tab -View the reason automated vectorization failed (Vectorization Advisor only).