Tutorial

  • 2020
  • 06/18/2020
  • Public Content

Intel® Advisor
Tutorial for Using the Automated Roofline Chart to Make Optimization Decisions

This tutorial - and C++ sample application you can use to follow along - show how to use the
Intel® Advisor
automated
Roofline
chart to
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.
Intel® Advisor
provides tools to help ensure your Fortran, C and C++ native/managed applications realize full performance potential on modern processors, such as Intel® Xeon Phi™ processors (for full list, see release notes ):
  • Vectorization Advisor
    is a vectorization optimization tool that lets you identify high-impact, underoptimized loops, what is blocking vectorization, and where it is safe to force vectorization. It also provides code-specific how-can-I-fix-this-issue recommendations.
  • Roofline Analysis
    visualizes actual performance against hardware-imposed performance ceilings (rooflines). It provides insights into where the bottlenecks are, which loops are worth optimizing for performance, what are the likely causes of bottlenecks and what should be the next optimization steps.
  • Threading Advisor
    is a fast-track threading design and prototyping tool that lets you analyze, design, tune, and check threading design options without disrupting your normal development.
  • Flow Graph Analyzer
    is a visual prototyping tool that lets you represent and analyze performance for applications that use the Intel® Threading Building Blocks (Intel® TBB) flow graph interfaces.
Intel® Advisor
is available as a standalone product and as part of the following products:
  • Intel® System Studio
    Professional Edition
  • Intel® System Studio
    Ultimate Edition
  • Intel® Parallel Studio XE
    Professional Edition
  • Intel® Parallel Studio XE
    Cluster Edition
  • Intel® oneAPI Base Toolkit
    (Beta)
About This Tutorial
This tutorial for shows how to:
  • Run a Roofline analysis.
  • Focus on the
    Roofline
    chart data of most interest.
  • Interpret
    Roofline
    chart data.
  • Use
    Roofline
    chart data interpretations to make optimization decisions.
This is an advanced
Vectorization Advisor
tutorial. See Intel® Advisor Tutorials for basic
Vectorization Advisor
tutorials that include quick start and basic operations information.
Estimated Duration
20 minutes.
Learning Objectives
After you complete this tutorial, you should be able to:
  • Identify compiler/linker options that produce the most accurate and complete
    Vectorization Advisor
    analysis results.
  • Run a Roofline analysis.
  • Show/hide a
    Roofline
    chart.
  • Use various
    Roofline
    chart controls.
  • Use the
    Roofline
    chart to identify which loops are the best candidates for optimization.
  • Load
    Intel Advisor
    snapshots.
More Resources
See Roofline Analysis in Intel® Advisor 2017 for a video that essentially covers the same content as this tutorial, but in more conceptual depth.
The concepts and procedures in this tutorial apply regardless of programming language; however, a similar tutorial using a sample application in another programming language may be available at:
These sites also offer tutorials for other Intel products.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804