Runs the WGSL kernels of the fastwan-rs WebGPU backend on this machine's GPU, checks each one against an f32 JavaScript reference, measures throughput at Wan 2.1 1.3B shapes, and estimates how long a 3-step DMD clip would take here.
| Kernel | Case | Rel. error | Result |
|---|
Pass means max |GPU − reference| / max |reference| ≤ 2·10⁻³. Weights go to the GPU as f16 pairs packed in u32, as the Rust backend stores them; the reference uses the unrounded f32 weights, so the f16 cases measure the real storage error.
| Kernel | Shape | ms / call | TFLOP/s |
|---|---|---|---|
Not run yet. Takes 10–60 s on a desktop GPU; the tab may stutter while it runs. On a weak or software GPU, add #quick to the address for small shapes. | |||
| Geometry | Tokens | Largest buffer | Fits binding | Per step | Denoise |
|---|
Per-step time is the FLOP count of one DiT forward split into GEMM work (QKV, projections, FFN) and attention work, each divided by the rate measured above. It leaves out the norms, the decoder and dispatch overhead, so treat it as a lower bound. Self-attention grows with tokens², which is why it dominates at 480p and why video sparse attention is the next kernel to write.