Intel Advisor (also known as "Advisor XE", "Vectorization Advisor" or "Threading Advisor") is a design assistance and analysis tool for
SIMD vectorization, threading, memory use, and GPU offload optimization. The tool supports C, C++, Data Parallel C++ (DPC++), Fortran and Python languages. It is available on
Windows and
Linux operating systems in form of Standalone GUI tool,
Microsoft Visual Studio
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platforms such a ...
plug-in or command line interface. It supports OpenMP (and usage with
MPI
MPI or Mpi may refer to:
Science and technology Biology and medicine
* Magnetic particle imaging, an emerging non-invasive tomographic technique
* Myocardial perfusion imaging, a nuclear medicine procedure that illustrates the function of the hear ...
). Intel Advisor user interface is also available on
macOS.
Intel Advisor is available for free as a stand-alone tool or as part of the Intel
oneAPI Base Toolkit. Optional paid commercial support is available for the oneAPI Base Toolkit.
Features
Vectorization optimization
Vectorization is the operation of Single Instruction Multiple Data (SIMD) instructions (like Intel Advanced Vector Extensions and Intel Advanced Vector Extensions 512) on multiple objects in parallel within a single CPU core. This can greatly increase performance by reducing loop overhead and making better use of the multiple math units in each core.
Intel Advisor helps find the loops that will benefit from better vectorization, identify where it is safe to force compiler vectorization. It supports analysis of scalar,
SSE,
AVX AVX may refer to:
Technology
* Advanced Vector Extensions, an instruction set extension in the x86 microprocessor architecture
** AVX2, an expansion of the AVX instruction set
** AVX-512, 512-bit extensions to the 256-bit AVX
* AVX Corporation, a m ...
,
AVX2 and
AVX-512-enabled codes generated by
Intel,
GNU and
Microsoft compilers auto-vectorization. It also supports analysis of "explicitly" vectorized codes which use
OpenMP 4.x and newer as well as codes or written using C vector
intrinsics or
assembly language
In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
.
Automated Roofline analysis
Intel Advisor automates the
Roofline Performance Model first proposed at Berkeley and extended at the University of Lisbon.
Advisor "Roofline Analysis" helps to identify if given loop/function is memory or CPU bound. It also identifies under optimized loops that can have a high impact on performance if optimized.
Intel Advisor also provides an automated memory-level roofline implementation that is closer to the classical Roofline model. Classical Roofline is especially instrumental for high performance computing applications that are DRAM-bound. Advisor memory level roofline analyzes cache data and evaluates the data transactions between different memory layers to provide guidance for improvement.
Intel Advisor roofline analysis supports code running on CPU or GPU. It also supports integer based applications - that is heavily used in machine learning, big data domains, database applications, financial applications like crypto-coins.
Threading prototyping
Software architects add code annotations to describe threading that are understood by Advisor, but ignored by the compiler. Advisor then projects the scalability of the threading and checks for synchronization errors. Advisor ''Threading'' "Suitability" feature helps to predict and compare the parallel SMP scalability and performance losses for different possible threading designs. Typical Suitability reports are shown on
Suitability CPU screen-shot on the right side. Advisor Suitability provides dataset size (iteration space) modeling capabilities and performance penalties break-down (exposing negative impact caused by
Load Imbalance,
Parallel Runtimes Overhead and Lock Contention).
Offload modelling
Advisor adds GPU offload performance modeling feature in the 2021 release. It collects application performance characteristics on a baseline platform and builds analytical performance model for target (modelled) platform.
This provides performance speedup estimation on target GPUs and overhead estimations for offloading, data transfer and scheduling region execution and pinpoints performance bottlenecks. This information can serve for choosing offload strategy: selecting regions to offload and anticipate potential code restructuring needed to make it GPU-ready.
Customer usage
Intel Advisor is used by
Schlumberger
Schlumberger Limited (), doing business as SLB, is an oilfield services company. Schlumberger has four principal executive offices located in Paris, Houston, London, and The Hague.
Schlumberger is the world's largest offshore drilling compa ...
,
Sandia national lab, and others for design and parallel algorithm research and ''Vectorization'' Advisor capabilities known to be used by
LRZ and
ICHEC,
Daresbury Lab, Pexip.
The step-by-step workflow is used by academia for educational purposes.
See also
Intel Inspector*
oneAPI (compute acceleration)
*
Intel Developer Zone (Intel DZ; support and discussion)
References
External links
*
"Get a Helping Hand from the Vectorization Advisor" - Hartree case study with reference to Unilever and other CAF applications"aixVectorize" Vectorization and Tuning workshop at RWTH
*
aixVectorize "HPC Codes Modernization using Intel (Vectorization) Advisor" tutorial foils*
aixVectorize aixVectorize labs and samplecodeSchlumberger* - Parallelize Oil and Gas software with Intel Software productsAnonymous "leading design" company case study with Advisor XEKyoto University SuperComputing center user guide on Advisor XE usage on LinuxHow to use Intel® Advisor XE 2015 to model suitability on an Intel® Xeon Phi™ coprocessor
{{Intel software
Debuggers
Advisor
Memory management software