Intel® Advisor Help

Roofline Analysis

Purpose and Usage | Run | Chart Controls | Chart Data | What Do I Do Next?

Roofline Analysis Purpose and Usage

To add a Roofline chart to the Survey Report, run a Roofline analysis 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:

The Intel Advisor basic roofline model, the Cache-Aware Roofline Model (CARM), offers self data capability. The Intel Advisor Roofline with Callstacks feature extends the basic model with total data capability:

The total-data capability in the Roofline with Callstacks feature can help you:

Run a Roofline Analysis

In the Vectorization Workflow tab, click the Intel Advisor control: Run analysis control under Run Roofline.

Outcome: The Intel Advisor executes the target application twice to:

After both analyses are complete, the Intel Advisor adds a Roofline chart to the Survey Report.

To implement the Roofline with Callstacks feature:
Intel Advisor: Roofline with Callstacks

  1. Run the Roofline analysis with the With Callstacks checkbox enabled. Upon completion, the Intel Advisor displays a Roofline chart.

  2. Enable the With Callstacks checkbox in the Roofline chart.

Roofline Chart Controls

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 Roofline chart data most important to you, including the following.
Intel Advisor: Roofline controls

1

  • Select Loops by Mouse Rect: Select one or more loops/functions by tracing a rectangle with your mouse.

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

  • Move View By Mouse: Move the chart left, right, up, and down.

  • Undo or Redo: Undo or redo the previous zoom action.

  • Cancel Zoom: Reset to the default zoom level.

  • Export as x: Export the chart as a dynamic and interactive HTML or SVG file that does not require the Intel Advisor viewer for display. Use the arrow to toggle between the options.

2

Use the Cores drop-down toolbar to:

  • Adjust rooflines to see practical performance limits for your code on the host machine.

  • 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.)

Choose the appropriate number of CPU cores to scale roof values up or down:

  • 1 – if your code is single-threaded

  • Number of cores equal or close to the number of threads – if your code has fewer threads than available CPU cores

  • Maximum number of cores – if your code has more threads than available CPU cores

By default, the number of cores is set to the number of threads used by the application (even values only).

You’ll see the following options if your code is running on a multisocket PC:

  • Choose Bind cores to 1 socket (default) if your application binds memory to one socket. For example, choose this option for MPI applications structured as one rank per socket.

    Note

    This option may be disabled if you choose a number of CPU cores exceeding the maximum number of cores available on one socket.
  • Choose Spread cores between all n sockets if your application binds memory to all sockets. For example, choose this option for non-MPI applications.

3

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

  • Enable the display of Roofline with Callstacks additions to the Roofline chart.

Select the Memory Level(s) to show for each loop/function in the chart (CARM, L2, L3, DRAM). Selected levels are displayed as additional labeled dots on the chart.

This control requires that you set the environment variable  ADVIXE_EXPERIMENTAL=int_roofline. Also be sure to enable the For All Memory Levels checkbox under Run Roofline in the Vectorization Workflow tab.

4

Display Roofline chart data from other Intel Advisor results or non-archived snapshots for comparison purposes.

Use the drop-down toolbar to:

  • Load a result/snapshot and display the corresponding filename in the Compared Results region.

  • Clear a selected result/snapshot and move the corresponding filename to the Ready for comparison region.

    Note: Click a filename in the Ready for comparison region to reload the result/snapshot.

  • Save the comparison itself to a file.

    Note: The arrowed lines showing the relationship among loops/functions do not reappear if you upload the comparison file.

Click a loop/function dot in the current result to show the relationship (arrowed lines) between it and the corresponding loop/function dots in loaded results/snapshots.

Intel Advisor: Roofline Comparison

5

Add visual indicators to the Roofline chart to make the interpretation of data easier, including performance limits and whether loops/functions are memory bound, compute bound, or both.

Use the drop-down toolbar to:

  • Show a vertical line from a loop/function to the nearest and topmost performance ceilings by enabling the Display roof rulers checkbox. To view the ruler, hover the cursor over a loop/function. Where the line intersects with each roof, labels display hardware performance limits for the loop/function.

  • Visually emphasize the relationships among displayed memory levels and roofs for a selected loop/function by enabling the Show memory level relationships checkbox. Labeled dots represent memory levels (L1, L2, L3, DRAM) for the selected loop/function; lines connect the dots to indicate the relationship between the dots and the selected loop/function.

    This control requires that you set the environment variable  ADVIXE_EXPERIMENTAL=int_roofline. This option requires that the For All Memory Levels checkbox be enabled under Run Roofline in the Vectorization Workflow tab.

    Note

    If you have chosen not to display all memory levels in the chart, unselected memory levels are displayed with X marks.

  • Color the roofline zones to make it easier to see if enclosed loops/functions are fundamentally memory bound, compute bound, or bound by compute and memory roofs by enabling the Show Roofline boundaries checkbox.

The preview picture is updated as you select guidance options, allowing you to see how changes will affect the Roofline chart’s appearance. Click Apply to apply your changes, or Default to return the Roofline chart to its original appearance.

6

  • Roofline View Settings: Adjust the default scale setting to show:

    • The optimal scale for each Roofline chart view

    • A scale that accommodates all Roofline chart views

  • Roofs Settings: Change the visibility and appearance of roofline representations (lines):

    • Enable calculating roof values based on single-threaded benchmark results instead of multi-threaded.
    • Click a Visible checkbox to show/hide a roofline.
    • Click a Selected checkbox to change roofline appearance: display a roofline as a solid or a dashed line.
    • Manually fine-tune roof values in the Value column to set hardware limits specific to your code.
  • Loop Weight Representation: Change the appearance of loop/function weight representations (dots):

    • Point Weight Calculation: Change the Base Value for a loop/function weight calculation.
    • Point Weight Ranges: Change the Size, Color, and weight Range ® of a loop/function dot. Click the + button to split a loop weight range in two. Click the - button to merge a loop weight range with the range below.
    • Point Colorization: color loop/function dots by weight ranges or by type (vectorized or scalar). You can also change the color of loop with no self time.

You can save your Roofs Settings or Point Weight Representation configuration to a JSON file or load a custom configuration.

7

Zoom in and out using numerical values.

8

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

Click a loop/function dot to:

  • Outline it in black.

  • Display metrics for it.

  • If Roofline with Callstacks is enabled, display the corresponding, navigable, color-coded callstack.

  • Display corresponding data in other window tabs.

You can also click an item in the Callstack pane to flash the corresponding loop/function dot in the Roofline chart.

If Roofline with Callstacks is enabled, click a loop/function dot Intel Advisor: Collapse control control to collapse descendant dots into the parent dot, or click a loop/function dot Intel Advisor: Expand control control to show descendant dots and their relationship via visual indicators to the parent dot.

Right-click a loop/function dot or a blank area in the Roofline chart to perform more functions, such as:

  • Further simplify the Roofline chart by filtering out (temporarily hiding a dot), filtering in (temporarily hiding all other dots), and clearing filters (showing all originally displayed dots).

  • Copy data to the clipboard.

9

If Roofline with Callstacks is enabled, show/hide the Callstack pane.

10

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 or are too small to have significant impact on performance.
This is a visual model, not an actual screenshot, of the Roofline Chart

The following Roofline chart representation shows some of the added benefits of the Roofline with Callstacks feature, including:


Intel Advisor: Roofline with Callstacks

See Also