Crate rten_simd

Source
Expand description

Portable SIMD types for implementing vectorized functions that work across different architectures.

Compared to std::simd it offers the following benefits:

  • Works on stable Rust
  • Includes infrastructure for dispatching vectorized operations using the optimal instruction set as determined at runtime.
  • Includes higher order functions for vectorized maps, folds etc.

§Supported architectures

SIMD wrappers are provided for the following architectures:

  • Arm Neon
  • AVX 2 / FMA
  • AVX-512 (requires avx512 feature and nightly Rust)
  • WebAssembly SIMD

There is also a scalar fallback that works on all platforms, but provides no performance benefit over non-SIMD code.

Modules§

  • Architecture-specific functionality.
  • Dispatch SIMD operations using the preferred SIMD instruction set for the current system, as determined at runtime.
  • Higher order functions (map, fold etc.) that use vectorized operations.
  • Functions for testing the availability of instruction sets at runtime.
  • Slice-like types without the restrictions on aliasing.

Traits§

  • Trait for SIMD vectors containing single-precision floats.
  • Trait for SIMD vectors containing 32-bit integers.
  • Trait implemented by SIMD masks.
  • Base trait for SIMD vectors.

Functions§

  • Return the number of SIMD vectors required to hold count elements.