Skip to content

SIMD enhanced Wasm compilation #1271

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
antimora opened this issue Mar 19, 2023 · 2 comments
Closed

SIMD enhanced Wasm compilation #1271

antimora opened this issue Mar 19, 2023 · 2 comments

Comments

@antimora
Copy link

Requesting to add SIMD support for Wasm build targets.

Burn project uses NDArray for one its backends. It is possible to build this backend for WASM target.

According to this blog post

Chrome, Firefox, and Node LTS have all stabilized the SIMD extension to Wasm in the last few months (Safari is lagging at the time of writing. See the updated roadmap for changes). Additionally, Rust has stabilized Wasm SIMD intrinsics recently too. All the pieces are set and now is the time to start authoring libraries that take advantage of the promised performance that SIMD can bring.

So it seems the browsers and compiler support SIMD and it would be great if NDArray could also be enhanced with the support.

@bluss
Copy link
Member

bluss commented May 3, 2023

Just to add some information: ndarray does not use explicit simd anywhere. Wasm would not be the first target we would add, but if explicit simd started to being used, it should of course be in a way that's generic enough to easily add it - if it's in stable Rust it is "straight forward".

A pointer towards what a plan would look like is this: #46 (comment) abstract out numerical loops into a separate module or crate

@akern40
Copy link
Collaborator

akern40 commented May 20, 2025

As bluss said, explicit SIMD support would be a project in and of itself, and we'd likely want to wait until the std::simd module was stabilized.

@akern40 akern40 closed this as completed May 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants