Intel® Advisor provides design tools to help ensure your C/C++, Fortran, Data Parallel C++, OpenMP*, and OpenCL™ native/managed applications realize full performance potential on modern processors: Vectorization and Code Insights, CPU / Memory Roofline, Threading, Offload Modeling, GPU Roofline, and Flow Graph Analyzer.
Intel Advisor is available for download as a standalone installation and as part of Intel® oneAPI Base Toolkit.
Vectorization and Code Insights perspective is a vectorization analysis tool that lets you identify loops that will benefit most from vectorization, identify what is blocking effective vectorization, explore the benefit of alternative data reorganizations, and increase the confidence that vectorization is safe.
One of the key Vectorization and Code Insights features is GUI-embedded recommendations on how to fix vectorization issues specific to your code. This page augments that GUI-embedded advice with links to web-based vectorization resources.
Understand Vectorization with Intel® Advisor
Use the following resources to start taking advantage of the power and flexibility of the Intel Advisor:
Sample-based Get Started Guide | Vectorization Glossary | Support & Forums |
For detailed description and steps of the Vectorization and Code Insights workflow of the Intel Advisor, see the User Guide: Vectorization and Code Insights perspective.
The general Intel Advisor workflow looks as follows:
Recommendation: Follow the dark blue and orange steps to maximize your productivity as quickly as possible.
Intel Compiler Resources
Intel Advisor ships with C++ and Fortran mini-guides of vectorization-related Intel compiler options and directives. These mini-guides are composed of excerpted pages from the full Intel compiler guides. The Vectorization and Code Insights perspective requires the Intel® oneAPI DPC++/C++ Compiler, Intel® C++ Compiler Classic, or Intel® Fortran Compiler Classic version 15.0 or higher to collect a full set of analysis data, including compiler diagnostics about vectorization constraints. The full compiler guides and vectorization diagnostics can be found below:
Compiler Guides & References
NOTE: A subset of metrics is available for binaries built with the GNU gcc* or Microsoft* compiler.
MPI Resources
The following resources are helpful if you are using the MPI.
- User Guide: Analyze MPI Applications
- Cookbook Use Case: Analyze Vectorization and Memory Aspects of an MPI Application
Case Studies
Consider these resources if case studies interest you.
- More Efficient Numerical Simulation [PDF]
- Case Study: More Efficient Numerical Simulation in Astrophysics
- Roofline Model Boosts Manycore Code Optimization Efforts
- Vectorization Becomes Important - Again
Additional Resources
The Intel® Developer Zone offers a wealth of vectorization resources. Many Advisor users find the following pages useful, either as context-rich repositories of links to resources or how-to guides.
These resources contain both information about vectorization and many links to appropriate additional resources. Note that some of these emphasize the vectorization capabilities of other Intel software development tools such as the compiler optimization reports and Intel® VTune™ Amplifier analyses; despite the different focus, they contain useful nuggets of vectorization information that apply across the board.
Also note that many resources are written to support the current Intel compiler version plus two previous versions. Much of the content in compiler resources written for a previous Intel compiler version still applies to the current Intel compiler version; in most cases, version differences are explained.
- Explicit Vector Programming - Best Known Methods
- Programming and Compiling for Intel® Many Integrated Core Architecture
- Vectorization Essentials
How-To Resources
The many miscellaneous articles and resources for vectorization available on the Intel Developer Zone are gathered here for your convenience.
- Common Vectorization Tips
- Consistency of Floating-Point Results using the Intel® Compiler
- Data Alignment to Assist Vectorization
- Explicit Vector Programming in Fortran
- Intel Intrinsics Guide
- Outer Loop Vectorization
- Utilizing Full Vectors and Use of Option -qopt-assume-safe-padding
- Vectorization Codebook [PDF]
Notices and Disclaimers
Intel technologies may require enabled hardware, software or service activation.
No product or component can be absolutely secure.
Your costs and results may vary.
© Intel Corporation. Intel, the Intel logo, and other Intel marks are trademarks of Intel Corporation or its subsidiaries. Other names and brands may be claimed as the property of others.
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
The products described may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade.
"