Intel® Advisor Help

Roofline Analysis

Purpose and Usage | Prerequisites | Run | Regions and Usage | What Do I Do Next?

Roofline Analysis Purpose and Usage

Run a Roofline analysis to add a Roofline chart to the Survey Report that helps you 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.

Use the Roofline chart to answer the following questions:

Roofline Analysis Prerequisites

Before you start the Roofline analysis:

Run a Roofline Analysis

In the Vectorization Workflow tab, click the Intel Advisor control: Run analysis control under Run Roofline to execute your target application twice to:

Upon completion, the Intel Advisor displays a Roofline chart.

Roofline Chart Regions and Usage

There are several controls to help you show/hide the Roofline chart:
Intel Advisor: Roofline Chart & Survey Report

1

Click to toggle between Roofline chart view and Survey Report view.

2

Click to toggle to and from side-by-side Roofline chart and Survey Report view.

3

Drag to adjust the dimensions of the Roofline chart and Survey Report.

There are several controls to help you focus on the data most important to you, including the following.
Intel Advisor: Roofline controls

1

  • Zoom in and out by tracing a rectangle with your mouse. You can also zoom in and out using your mouse wheel.

  • Move the chart left, right, up, and down.

  • Undo or redo the previous zoom action.

  • Reset to the default zoom level.

  • Copy the chart to the clipboard, save it to a file, export it as an interactive HTML file that does not require the Intel Advisor viewer to display, or save it for comparison. Use the arrow to toggle among the options.

2

  • Adjust rooflines to see practical performance limits if an application uses fewer threads than available cores.

  • Build roofs for single-threaded applications (or for multi-threaded applications configured to run single threaded, such as one thread-per-rank for MPI applications. (You can use Intel Advisor filters to control the loops displayed in the Roofline chart; however, the Roofline chart does not support the Threads filter.)

3

Choose a result or snapshot file to load and compare with the current result on the same Roofline chart (with the same peaks). Use the accompanying drop-down to select and distinguish among different result and snapshot files.

4

  • Toggle the display between floating-point, integer operations, and mixed operations (floating-point and integer).

  • Display data for whole program stacks and different code paths leading to different representations of the same loops. (By default, the Roofline chart displays data only for loops and functions in the Loop Information pane of the Survey Report.) Note: Requires enabling the Enable Roofline with Callstacks checkbox before running the Roofline analysis.

5

  • Change the visibility and appearance of roofline representations (lines).

  • Change the appearance of loop weight representations (dots).

  • Manually fine-tune roof values to set hardware limits specific to your code.

6

Zoom in and out using numerical values.

7

Hover your mouse over an item to display metrics for that item.

If you hover your mouse over a dot, the Roofline chart displays two blue dots with metrics that show potential performance if you optimize the loop to reach the next roofline and the maximum achievable roofline. (If the next roofline and maximum achievable roofline are the same, the Roofline chart displays only one blue dot.)

Click a dot to outline it in black and display corresponding code and metrics in other window tabs.

After clicking a dot, right-click a blank area in the Roofline chart and choose:

  • Filter Out to temporarily hide the dot

  • Filter In to temporarily hide all other dots

  • Clear Filters to show all originally displayed dots

8

Display the number and percentage of loops in each loop weight representation category.

Roofline Chart Data

The Roofline chart plots an application's achieved performance and arithmetic intensity against the machine's maximum achievable performance:

In general:

In the following Roofline chart representation, loops A and G (large red dots), and to a lesser extent B (yellow dot far below the roofs), are the best candidates for optimization. Loops C, D, and E (small green dots) and H (yellow dot) are poor candidates because they do not have much room to improve.
This is a visual model, not an actual screenshot, of the Roofline Chart

Note

The Roofline chart and Survey Report are synchronized: Click a dot in the Roofline chart to highlight the corresponding data row in the Survey Report, and single-click a data row in the Survey Report to make the corresponding dot flash in the Roofline chart - as long as the loop contains floating-point operations. Loops without floating-point operations do not appear in the Roofline chart.

Mouse over each roofline (line), peak (rectangle), and loop (dot) in your Roofline chart to learn more about each chart element.