REPROGPU conformance lab
A read-only browser lab that compiles and dispatches the REPROGPU integer WGSL kernel subset, hashes the raw output bytes, and records a canonical cross-adapter manifest. Float is the negative control.
What this proves and what it does not
REPROGPU pins byte-identical SHA-256 outputs for a declared integer/fixed-point WGSL subset: K1 exact f32 summation through a 320-bit integer superaccumulator, K2 Philox4x32-10, K3 Q16.16 GEMM, and K4 integer SHA-256. Only i32/u32 and bit operations, bitcast between i32/u32, comparisons, and host-shared buffer layout are relied upon.
Float is outside the guarantee. WGSL section 15.7 leaves rounding direction, reassociation and fusion, and subnormal flushing unspecified, so two adapters may return different bits for the same f32 program. K5 is the negative control that demonstrates that divergence by design.
Run the harness
Requests one adapter, compiles K1-K5, dispatches the pinned vectors, and hashes the raw output bytes in this browser. Nothing is stored or sent.
Pinned references
These pinned CPU reference hashes and WGSL source hashes let you inspect the harness without a run. They are the values the gate recomputes and the lab compares against.
Pinned reference output hashes
- K1: c046384ed6580b8111b8ef34f5d0932289209f4920666477bc76ffe724dfa27a (count 4104)
- K2: f9004cf3ed50db5cdb6351a3eb090a498586ade2e3f7499744c951bf77f86d01 (count 65536)
- K3: fbe13a3b4e2fc7bf3a4b38c838912651151c03460bd9d1d7f1ea81190af3932e (count 65536)
- K4: eea119f4059566875ceaf784400d519fd8ff2148d9f221e0004fd04944a21797 (count 16385)
Pinned WGSL source hashes
- K1: ea7c46670ea2a3258b7522db6a8b09af1f2e7895021870a32669ca7ec9b2df3f
- K2: 010e4d4db8cc43cf95f9d4329da09d5bd3a4d3d764c20d63490df81c6c0d4dbe
- K3: 1013c964ff0a25721558503d391bd6630e96f848973c7198668dfcd14988132d
- K4: d9d8db073c560de60fead78f846afbb4feec2b2626d2d74c072ed6a1c6b23489
- K5: 3f003ca3d1bba17b2052b5cba08a42211eba3fae742177ad52d9f109541e3cbe
Gate honesty rule
The CI gate verifies the reference implementations, the known-answer tests, and the pinned WGSL sources. It cannot execute WGSL or test cross-adapter equality; the browser lab is the demonstration, and no CI artifact may be cited as evidence of GPU agreement.
Limitations
- The guarantee covers only K1-K4 and only the shapes and domains declared in the spec; float is out of scope (WGSL CRD 2026-09-15 section 15.7.2, 15.7.4, 15.7.5).
- The gate checks the references, the known-answer tests, the pins, and source integrity; it cannot execute WGSL or test cross-adapter equality. The browser lab is the demonstration, not the CI gate.
- Cross-adapter results are a small, time-stamped sample on one machine; adapter.info is self-reported and not cryptographically attested; engine support is limited and may change.
- K1 excludes non-finite inputs (flagged and rejected); K3 documents mod-2^32 wrap on out-of-range output; none of K1-K4 covers general float.
- Any adapter mismatch is a fail unless it is a pre-declared, reproducible exceptions.json driver bug; exceptions are reported, not hidden.
- K5 divergence is permitted and expected; K5 agreement on any hardware set is not evidence of general float reproducibility.
How to reproduce
- Open this page in a browser that exposes WebGPU.
- Press Run conformance to compile and dispatch K1-K5.
- Download the manifest and keep its manifest hash.
- Compare each observed output hash against the committed pins printed in the lab, or run bun run verify:reprogpu to recompute the CPU references and the WGSL source pins.
More artifacts and notes live in the publications index, which records this work as an artifact and conformance contribution rather than a new method.