Skip to content

Add WebAssembly SIMD SGEMM and DGEMM kernels#5680

Open
teddygood wants to merge 1 commit intoOpenMathLib:developfrom
teddygood:wasm128-generic-target-exp
Open

Add WebAssembly SIMD SGEMM and DGEMM kernels#5680
teddygood wants to merge 1 commit intoOpenMathLib:developfrom
teddygood:wasm128-generic-target-exp

Conversation

@teddygood
Copy link

Follow-up to #5676 and #4023

This PR adds a WebAssembly SIMD GEMM kernel for WASM128_GENERIC and wires it up for SGEMM / DGEMM only. The generic packing paths are unchanged.

The kernel keeps the existing generic 2x2 GEMM structure and replaces the hot inner loop with wasm_simd128.h intrinsics.

In a Pyodide/Emscripten validation setup, sgemm / dgemm correctness passed, and the kernel outperformed the current generic -msimd128 baseline by about 4.1x-4.5x for sgemm and 2.2x-2.4x for dgemm.

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

Successfully merging this pull request may close these issues.

1 participant