Tutorial

  • 2021.4
  • 09/27/2021
  • Public Content

Intel® Advisor
Tutorial for Adding Efficient SIMD Parallelism to C++ Code Using the
Vectorization Advisor
for
Linux*

This tutorial - and C++ sample application you can use to follow along - shows how to use the
Vectorization Advisor
on a
Linux*
platform to add efficient SIMD parallelism.
Intel® Advisor
provides tools to help ensure your Fortran, C and C++ native/managed applications realize full performance potential on modern 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.
  • Offload Modeling
    is a modeling tool that lets you to identify high-impact opportunities to offload to GPU as well as the areas that are not advantageous to offload.
  • Flow Graph Analyzer
    is a visual prototyping tool that lets you represent and analyze performance for applications that use the
    Intel® oneAPI Threading Building Blocks
    flow graph interfaces.
This document was last updated for the
Intel® Advisor
2020 product release. If you are using this tutorial with a higher version of
Intel Advisor
, you may see differences in workflow and analysis type names and user interface design.
About This Tutorial
This tutorial shows how to:
  • Identify loops that will benefit most from vectorization.
  • Identify what is blocking effective vectorization.
  • Increase the confidence that vectorization is safe.
  • Explore the benefit of alternative data reorganizations.
Compilations and analyses were run using a 2018 version of an Intel compiler on an Intel® Core™ i7-6600U with 4 logical CPUs.
Estimated Duration
15-20 minutes.
Learning Objectives
After you complete this tutorial, you should be able to:
  • Explain two recommended
    Vectorization Advisor
    workflows (usage scenarios).
  • Identify compiler/linker options that produce the most accurate and complete
    Vectorization Advisor
    analysis results.
  • Run
    Vectorization Advisor
    analysis tools.
  • View, interpret, and manipulate data collected by
    Vectorization Advisor
    analysis tools.
More Resources
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 Intel® Advisor Tutorials.
For other Intel® Software documentation and resources, see Intel® Software Documentation Library.
In addition, you can find more resources in:

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.