The state of SIMD in Rust in 2026
2 hours ago
- SIMD(单指令多数据)通过一次处理多个数字来提升性能,但面临可移植性和优化挑战。
- 不同的CPU架构具有不同的SIMD指令集(SSE、AVX、NEON、WASM),需要运行时调度或多版本化以实现广泛支持。
- 在Rust中使用SIMD的三种方法:自动向量化(不可靠)、可移植SIMD抽象(多个库)以及平台特定的内建函数。
- 可移植SIMD库(std::simd、fearless_simd、wide、pulp、macerator)在多版本化、泛型、三角函数支持和平台覆盖方面各不相同。
- Rust 1.87+中安全访问内建函数有所改进,但内建函数的实现仍受编译器优化错误以及与硬件能力之间的张力影响。
- 硬件问题:x86历史混乱(AVX2限制、AVX-512降频),ARM NEON设计良好,而RISC-V向量及其他目前不实用。
- Rust SIMD生态系统已显著成熟,但在三角函数支持和std::simd稳定性方面仍有空白。