Fearless SIMD v1.0
Fearless SIMD v1.0 is released for Rust, removing unsafe code from vector processing, introducing clean function multiversioning, and supporting stable compilers.
read it Rust developers building high-performance software will appreciate the deep dive into eliminating unsafe code and achieving clean function multiversioning on stable Rust.
summary
Fearless SIMD v1.0 has been released, bringing safe, portable, and high-performance vector processing to stable Rust without requiring widespread unsafe blocks. The crate isolates unsafe code into a tiny, audited core utilizing compiler target features and safe transmutes, while a new procedural macro handles seamless function multiversioning. It serves as a robust stable alternative to standard library SIMD abstractions, already underpinning dozens of downstream crates.
key points
- Eliminates ad-hoc unsafe code by encapsulating vector logic within a small, audited kernel macro and safe transmute module.
- Provides the #[simd] macro for seamless function multiversioning on stable Rust without leaky abstractions.
- Includes precise and fast variants for platform-dependent edge cases like floating-point maximum and swizzles.
who should read it
Rust systems engineers and performance-critical software developers.
discussion warm
consensus
Commenters are enthusiastic about the 1.0 release, noting it successfully brings robust, stable SIMD to projects that previously depended on nightly Rust or std::simd.
pushback
Some discussion focuses on library naming conventions and versioning rather than technical flaws.
This is quite amazing. Fearless SIMD is what finally allowed my FFT crate, PhastFT, to run on stable Rust [0]. PhastFT previously depended on Rust’s std::simd (as well as multiversion), which still requires nightly [1].
One of the main contributors to v1.0 of fearless_simd started out by helping me evaluate portable SIMD crates for PhastFT. Once we landed on fearless_simd, he ported PhastFT from std::simd to fearless_simd. We did find that more functionality was needed than fearless_simd offered at the time. So, he started contributing significantly to fearless_simd. It’s really rewarding to …
An early adopter shares a concrete success story of migrating an FFT crate from nightly std::simd to fearless_simd on stable Rust.
Generated by an LLM from the article and thread. Check the sources before relying on it.