666db68matmul-bench: browser GEMM benchmark (JS, WebGPU, custom C WASM, libFLAME/BLIS WASM)Jeremy Magland 1// Deterministic PRNG so every method multiplies identical inputs for a given size.
2function mulberry32(seed: number) {
3 let a = seed
4 return () => {
5 a |= 0
6 a = (a + 0x6d2b79f5) | 0
7 let t = Math.imul(a ^ (a >>> 15), 1 | a)
8 t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t
9 return ((t ^ (t >>> 14)) >>> 0) / 4294967296
10 }
11}
13export function generateMatrix(n: number, seed: number): Float64Array {
14 const rand = mulberry32(seed)
15 const m = new Float64Array(n * n)
16 for (let i = 0; i < m.length; i++) m[i] = rand() - 0.5
17 return m
18}