SIMD Extensions - A Historical Perspective
Diana Vuţă-Popescu, Ionuţ Cătălin Antofi, Cătălin Bogdan Ciobanu, Csaba-Zoltan Kertesz · 2024
This work provides a historical perspective on the Single Instruction Multiple Data (SIMD) instruction set extensions. SIMD extensions are crucial in modern processors for handling large amounts of data and exploiting data-level parallelism. The effectiveness of SIMD optimizations is influenced by several factors, including data size. Modern SIMD extensions support both integer and floating point numbers. Furthermore, sub-word parallelism is exploited, improving performance when processing narrow data types. We provide an overview of the SIMD extensions for SPARC (VIS), x86 (MMX, SSE, AVX, AVX2, AVX-512, AMX), PowerPC (AltiVec), MIPS (MDMX), Arm (Neon, SVE, SVE2, SME) and RISC-V (RVV) architectures. Furthermore, we provide examples of modern processors featuring SIMD extensions for x86, Arm and RISC-V architectures.