Simple, portable and fast SIMD intrinsic programming

Haichuan Wang, Peng Wu, Ilie Gabriel Tănase, Mauricio J. Serrano, José Eduardo Moreira · 2014

Using SIMD (Single Instruction Multiple Data) is a cost-effective way to explore data parallelism on modern processors. Most processor vendors today provide SIMD engines, such as Altivec/VSX for POWER, SSE/AVX for Intel processors, and NEON for ARM. While high-level SIMD programming models are rapidly evolving, for many SIMD developers, the most effective way to get the performance out of SIMD is still by programming directly via vendor-provided SIMD intrinsics. However, intrinsics programming is both tedious and error-prone, and worst of all, introduces non-portable codes.

Read the paper · More papers on PaperTik