Intel Vectorization Tools

Vectorization, the Other Parallelism

Moore's Law correctly predicted that processor transistor density would increase year after year. All those extra transistors have been used to make powerful hardware capabilities like multiple cores and hardware extensions that improve performance. Intel processors have extensions that support SIMD (single instruction, multiple data) parallelism with Intel® SSE and Intel® AVX(2). These instructions operate on a vector of data in parallel. The vector width, and therefore the number of elements that can be accessed in parallel, continues to expand as new processor technologies are introduced. Applications need to be vectorized to take advantage of SIMD instructions that utilize the expanded vector width.

more cores, wider vectors

Vectorization CodeBook

There are some pretty easy ways to vectorize your code like autovectorization. This requires no changes to code. Next are using libraries that utilize both threading and vectorization to improve performance. For some applications, more advanced techniques may be needed to provide information to the compiler, including using special build logs and features such as Intel® Cilk™ Plus.

A great place to start is by downloading the Vectorization CodeBook. You will find simple, yet powerful vectorization techniques that can be used by just about any application developer using Intel® Compilers and libraries. If you came from the Vectorization CodeBook, explore additional topics included on the right.

Download the Vectorization CodeBook >

Learning Tools

Performance essentials using OpenMP* 4.0 vectorization with C/C++

Future-Proof Your Application's Performance With Vectorization Technical Presentation, Webinar Replay

Vectorization Toolkit - This toolkit outlines 6 Steps to Increase Performance Through Vectorization in Your Application.

Intel® C++ Compiler Getting Started Tutorials

Intel® Fortran Compiler Getting Started Tutorials

Intel Software Product Tutorials, A complete listing of getting started tutorials and show-me videos for many Intel development products.

Intel Learning Lab, Repository of learning materials, videos, guides filterable by expertise, product, operating system and more.

Additional Reading

C++ Compiler

An Introduction to Vectorization with the Intel® C++ Compiler
A Guide to Vectorization with Intel® C++ Compilers
Vectorization Essentials
Vectorization: Writing C and C++ code in VECTOR Format, Intel® Developer Zone Knowledge base and search the title in the keyword search
Intel® Cilk™ Plus Introductory Information. Overviews, videos, getting started guide, documentation, white papers and a link to the community.
Elemental functions: Writing data parallel code in C/C++ using Intel® Cilk™ Plus
Requirements for Vectorizable Loops

Documentation and Books
Intel® C++ Composer XE documentation, Includes documentation for the Intel® C++ Compiler
Vectorization Advisor-Linux* OS
Vectorization Advisor-Windows* OS

Fortran Compiler

An Introduction to Vectorization with the Intel® Fortran Compiler
Vectorization Essentials
Software Blog by "Dr. Fortran" with Steve Lionel. Dr. Fortran discusses topics of interest to Fortran developers.
Requirements for Vectorizable Loops

Documentation and Books
Intel® Fortran Composer XE documentation
Quick-Reference Guide to optimization with Intel® Compilers version 15, For IA-32 processors and Intel® 64 processors.
Vectorization Advisor-Linux* OS
Vectorization Advisor-Windows* OS