A 2026 survey of SIMD in Rust explains why SIMD matters, how instruction‑set fragmentation (especially on x86) forces multiversioning, and what programming models are practical today. It defines SIMD and contrasts x86, ARM NEON, and WebAssembly SIMD, then lays out three ways to get SIMD in Rust: automatic vectorization, portable SIMD abstractions, and platform‑specific intrinsics. The writeup highlights Rust 1.98’s algebraic ops that enable safer floating‑point autovectorization and calls out the multiversion crate’s usefulness and its undocumented overhead on very small functions, plus the need to check whether AVX‑512 is actually fast, not just present.
The survey evaluates ecosystem crates - std::simd, fearless_simd, wide, pulp, and macerator - against concrete criteria: fixed‑ vs hardware‑width vectors, generics, intrinsics access, math routines, and ISA coverage. std::simd is essential but nightly and sometimes falls back to scalar implementations for nontrivial float ops (sin, reduce_sum), lacking solid trig support. Fearless SIMD is presented as the most complete, all‑in‑one solution: much less unsafe code, practical multiversioning via a macro, build‑controlled dispatch, and broad ISA support; its principal tradeoff is extra boilerplate.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.