What is old can be made new again…
Intel® SIMD Data Layout Templates (Intel® SDLT) is a C++11 template library providing containers that represent arrays of “Plain Old Data” objects using layouts that enable the generation of efficient SIMD vector code. With it, developers can preserve their Array of Structure (AoS) interface while programming―but, under the hood, laying out the data structure in Structure of Arrays (SoA) format. This is a win-win solution for both object-oriented and vector-friendly programming. Intel SDLT takes advantage of performance features (such as OpenMP* SIMD extensions and SIMD/IVDEP pragmas) that may not be available to all compilers.
This presentation covers these concepts in addition to:
- How to overcome the challenge of AoS vectorization efficiency
- How to analyze the memory access pattern in your performance-sensitive loops
- How to enable Intel SDLT to make any constant/variable strided memory accesses to unit strided memory access wherever possible
- How to incorporate multi-dimensional containers
Intel STLT is part of the Intel® C++ Compiler tool, available in the Intel® Parallel Studio XE. Get it now.