Vectorization Strategies for Intel’s 2nd Generation Intel Xeon® Phi™ Architecture Named Knights Landing
Event Type
Tutorial
Accelerators
Advanced
Algorithms
Intermediate
Programming Systems
Location355-B
DescriptionIntel® has recently introduced the second generation Xeon® Phi™ architecture code named Knights Landing (KNL). KNL incorporates new features, such as self-booting capabilities and a new memory architecture. KNL also leverages the new AVX-512 ISA and has two floating point units that can execute two AVX-512 instructions in the same cycle.
Exploiting vector capabilities is a key to effective programming on KNL. The Intel programming environment can be best harnessed by picking the right level of abstraction and obtaining vectorization with minimal effort. In some cases, the compiler needs only to get a pragma hint. While, for experienced users, the environment provides a set of intrinsics which is abstraction of low-level assembly instructions, the full control over the code can be gained by assembly programming.
This tutorial will give attendees an understanding of vectorization. We will show why codes often fail to auto-vectorize, which features of the compiler they can leverage to help with auto-vectorization, and how to apply AVX-512 vector intrinsics in writing their own low-level vectorized code which cannot be easily expressed in high-level language.
Exploiting vector capabilities is a key to effective programming on KNL. The Intel programming environment can be best harnessed by picking the right level of abstraction and obtaining vectorization with minimal effort. In some cases, the compiler needs only to get a pragma hint. While, for experienced users, the environment provides a set of intrinsics which is abstraction of low-level assembly instructions, the full control over the code can be gained by assembly programming.
This tutorial will give attendees an understanding of vectorization. We will show why codes often fail to auto-vectorize, which features of the compiler they can leverage to help with auto-vectorization, and how to apply AVX-512 vector intrinsics in writing their own low-level vectorized code which cannot be easily expressed in high-level language.








