libs (simd)
This is a project group RFC version of lang-team#29
.
This RFC establishes a new project group, under the libs team, to produce a portable SIMD API in a new rust-lang/stdsimd
repository, exposed through a new std::simd
(and core::simd
) module in the standard library in the same manner as stdarch
. The output of this project group will be the finalization of RFC 2948 and stabilization of std::simd
.
The current stable core::arch
module is described by RFC 2325, which considers a portable API desirable but out-of-scope. The current RFC 2948 provides a good motivation for this API. Various ecosystem implementations of portable SIMD have appeared over the years, including packed_simd
, and wide
, each taking a different set of trade-offs in implementation while retaining some similarities in their public API. The group will pull together a "blessed" implementation in the standard library with the explicit goal of stabilization for the 2021 edition.
std::simd
and core::simd
API in the standard library. This may mean renaming packed_simd
to stdsimd
and working directly on it, or creating a new repository and pulling in chunks of code as needed.std::simd
to be stabilized when they're ready, and coordinate with other unstable features.std::simd
!core::arch
APIs.Support scaffolding a space to work and integrating stdsimd
into libcore
and input from engineers who are familiar with this space.
Community efforts have already produced libraries that are in use, but pulling those together in the standard library needs a group with permissions to get things merged.
The project group will regularly update libs on how things are going, whether there are any blockers
Temporary
Until the 2021 edition, which is probably mid 2021.
The project group will interact with:
There will be lots of feedback to gather from users and input from compiler developers on how to approach implementation.