Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
P

packed_simd

> 编程语言
Open source

Portable Packed SIMD Vectors for Rust standard library

646 stars0 likes1 views
WebsiteGitHub

About

Portable Packed SIMD Vectors for Rust standard library

packed_simd crate

NOTE: This crate has been superceded by the rust-lang/portable-simd repo, which is the implementation for std::simd.

Implementation of Rust RFC #2366: std::simd

Latest Version docs

WARNING: this crate only supports the most recent nightly Rust toolchain and will be superseded by #![feature(portable_simd)].

Documentation

  • API docs (master branch)
  • Performance guide
  • API docs (docs.rs)
  • RFC2366 std::simd: - contains motivation, design rationale, discussion, etc.

Examples

Most of the examples come with both a scalar and a vectorized implementation.

  • aobench
  • fannkuch_redux
  • matrix inverse
  • mandelbrot
  • n-body
  • options_pricing
  • spectral_norm
  • triangle transform
  • stencil
  • vector dot product

Cargo features

  • into_bits (default: disabled): enables FromBits/IntoBits trait implementations for the vector types. These allow reinterpreting the bits of a vector type as those of another vector type safely by just using the .into_bits() method.

Performance

The following ISPC examples are also part of packed_simd's examples/ directory, where packed_simd+rayon are used to emulate ISPC's Single-Program-Multiple-Data (SPMD) programming model. The performance results on different hardware is shown in the readme.md of each example. The following table summarizes the performance ranges, where + means speed-up and - slowdown:

  • aobench: [-1.02x, +1.53x],
  • stencil: [+1.06x, +1.72x],
  • mandelbrot: [-1.74x, +1.2x],
  • options_pricing:
    • black_scholes: +1.0x
    • binomial_put: +1.4x

While SPMD is not the intended use case for packed_simd, it is possible to combine the library with rayon to poorly emulate ISPC's SPMD programming model in Rust. Writing performant code is not as straightforward as with ISPC, but with some care (e.g. see the Performance Guide) one can easily match and often out-perform ISPC's "default performance".

Platform support

The following table describes the supported platforms: build shows whether the library compiles without issues for a given target, while run shows whether the test suite passes for a given target.

Linux build run
i586-unknown-linux-gnu ✓ ✗
i686-unknown-linux-gnu ✓ ✗
x86_64-unknown-linux-gnu ✓ ✓
arm-unknown-linux-gnueabihf ✓ ✓
armv7-unknown-linux-gnueabi ✓ ✓
aarch64-unknown-linux-gnu ✓ ✓
powerpc-unknown-linux-gnu ✓ ✗
powerpc64-unknown-linux-gnu ✓ ✗
powerpc64le-unknown-linux-gnu ✓ ✓
s390x-unknown-linux-gnu ✓ ✗
sparc64-unknown-linux-gnu ✓ ✗
thumbv7neon-unknown-linux-gnueabihf ✓ ✓
MacOSX build run
x86_64-apple-darwin ✓ ✓
Android build run
x86_64-linux-android ✓ ✓
armv7-linux-androideabi ✓ ✗
aarch64-linux-android ✓ ✗
thumbv7neon-linux-androideabi ✓ ✗
iOS build run
x86_64-apple-ios ✗ ✗
aarch64-apple-ios ✗ ✗

Machine code verification

The verify/ crate tests disassembles the portable packed vector APIs at run-time and compares the generated machine code against the desired one to make sure that this crate remains efficient.

License

This project is licensed under either of

  • Apache License, Version 2.0 (LICENSE-APACHE)

  • MIT License (LICENSE-MIT)

at your option.

Contributing

We welcome all people who want to contribute. Please see the contributing instructions for more information.

Contributions in any form (issues, pull requests, etc.) to this project must adhere to Rust's Code of Conduct.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in packed_simd by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Rust

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言