Your Plain Old Data Gets a Vector Makeover

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.

Anoop Madhusoodhanan Prabha, Technical Consulting Engineer, Intel Corporation

Anoop is a Software Engineer in Intel’s Software and Services Group. He currently works as a Technical Consulting Engineer on the C/C++ compiler support team. He joined Intel in 2009. Since joining Intel, he has worked on optimizing various customer applications by enabling multi-threading, vectorization and other micro-architectural tunings. He has experience working with OpenMP, Cilk™ Plus, Intel® TBB, CUDA etc. His current interest are in processor and GPU architecture, heterogeneous computing and high performance computing. He has an M.S. degree in Electrical Engineering from State University of New York at Buffalo.

For more complete information about compiler optimizations, see our Optimization Notice.