2026 年 Rust 中 SIMD 的现状与未来

The state of SIMD in Rust in 2026

自去年以来,Rust 的 SIMD 生态取得了显著进展。作为 Fearless SIMD 的维护者,我深入调研了 std::simd、wide、pulp 和 macerator 等主流库。文章对比了自动向量化、可移植抽象和平台特定 intrinsic 三种实现路径,剖析了 x86 指令集碎片化带来的多版本编译挑战。尽管 std::simd 提供了底层构建块,但其在三角函数等复杂运算上仍显不足,而 Fearless SIMD 则试图提供一站式解决方案。本文旨在帮助开发者在 2026 年做出更明智的 SIMD 技术选型。

在 SIMD 伪装下提供标量实现,是绝对的罪过。
  1. sharktheone

    我真心期盼着能出现可移植的 SIMD。不过,我仍然认为,在很多情况下,手动实现的 SIMD 会更快。

    此外,Cranelift 中的 SIMD 现状也仍处于非常早期的开发阶段(WIP)。他们基本上只支持 128 位向量的一部分,偶尔有一些罕见的例外。

  2. the__alchemist

    我正在使用我自己编写的库 `lin_alg`,它模仿了 core_simd 来处理浮点数值,并将这一概念扩展到了向量和四元数。一旦 core::simd 正式进入 Rust 稳定版,我最终会用它来替换其中的浮点部分。

    缺点:目前它仅支持 x86 架构。

  3. Archit3ch

    热评观点:根本不存在可移植的 SIMD。

    你要么追求性能(即为每个平台手动编写汇编),要么追求可移植性,两者不可兼得。

    所谓的“可移植 SIMD”库给你提供的是“可移植的自动向量化”。“可移植的性能”是算法的全局属性。依赖自动向量化在实践中会导致次优的寄存器溢出等问题。不过,微观基准测试(microbenchmarks)的数据看起来会非常漂亮。;)

同日更多故事

2026-09-27