BLAKE3 icon indicating copy to clipboard operation
BLAKE3 copied to clipboard

Wasm32 SIMD Rust implementation

Open monoid opened this issue 2 years ago • 7 comments

This code is based on rust_sse2.rs of the same distribution, and is subject to further improvements. Some comments are left intact even if their applicability is questionable.

SIMD implementation is gated by wasm32_simd feature, portable version is used otherwise.

Performance measurements with a primitive benchmark with ~16Kb of data:

| M1 native     | 11,610 ns |
| M1 WASM SIMD  | 13,355 ns |
| M1 WASM       | 22,037 ns |
| x64 native    |  6,713 ns |
| x64 intrins.  |  7,979 ns |
| x64 WASM SIMD | 11,985 ns |
| x64 WASM      | 25,978 ns |

wasmtime v12.0.1 was used on both platforms.

Closes #187.

monoid avatar Sep 10 '23 10:09 monoid