SIMDe
SIMDe is a header-only library that provides portable implementations of SIMD intrinsics for hardware lacking native support. It allows developers to port code across different architectures with minimal effort while enabling gradual optimization. The library currently supports various instruction set extensions and encourages contributions from programmers of all skill levels.
- ▪SIMDe allows seamless integration of SIMD intrinsics on hardware that does not natively support them.
- ▪The library enables developers to run NEON code on x86 machines without emulation.
- ▪Current implementations include support for ARM NEON and multiple x86 instruction sets.
Opening excerpt (first ~120 words) tap to expand
SIMD Everywhere The SIMDe header-only library provides fast, portable implementations of SIMD intrinsics on hardware which doesn't natively support them, such as calling SSE functions on ARM. There is no performance penalty if the hardware supports the native implementation (e.g., SSE/AVX runs at full speed on x86, NEON on ARM, etc.). This makes porting code to other architectures much easier in a few key ways: First, instead of forcing you to rewrite everything for each architecture, SIMDe lets you get a port up and running almost effortlessly. You can then start working on switching the most performance-critical sections to native intrinsics, improving performance gradually. SIMDe lets (for example) SSE/AVX and NEON code exist side-by-side, in the same implementation.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at GitHub.