Naïve browser GPU code wastes 92%+ of dispatch time.
Kernel fusion fixes it. I shipped it for the web.

Kernel fusion is a known technique — TVM, XLA, and Burn already fuse operator patterns. What I shipped: full transformer decode and full evolutionary fitness loops as a single WebGPU dispatch, measured in the open on whatever hardware visitors brought rather than on one lab machine. Two DOI-archived preprints, one npm SDK. Zero installation. Any browser.

The insight

How eager dispatch works

dispatch

step 1 → waitdispatch step 2 → wait

... × 1,500 steps = 22,500 round-trips

92%+ of time = waiting, not computing

Kernel fusion

dispatch once

→ GPU loops internally

1,500 steps in 1 round-trip

100% of time = computing

Live Demos
Research
New

Browser-to-Browser Distributed Evolution

WebRTC P2P Genome Exchange for Island-Model Optimization

+11.5%
fitness improvement (4 islands, p=0.015)
+14.6%
cross-platform (RTX 3090, N=5)
0
install required

Browser tabs form evolutionary islands, exchanging elite genomes directly via WebRTC data channels. A 113-line signaling relay brokers the handshake; all genome data flows peer-to-peer. Private rooms by default. Validated on Rastrigin (N=30), across Apple Metal and NVIDIA Vulkan.

Published

Single-Kernel Fusion for Sequential Fitness Evaluation

via WebGPU Compute Shaders · Zenodo preprint, v7 (2026-07-28)

one dispatch
whole fitness loop
CUDA · WebGPU
JAX/XLA · Triton
DOI-archived
versioned on Zenodo

Single-dispatch fusion of sequential fitness evaluation: the per-step kernel launch overhead that dominates framework-based GPU computation disappears when the loop collapses into one compute shader. Reproduced across four GPU APIs on two hardware platforms, then measured across vendors via the public benchmark fleet. The ratios live in the preprint, which restates them whenever a re-measurement moves them.

Published

Single-Kernel Fusion for Autoregressive Transformer Decoding

via WebGPU Compute Shaders · Zenodo preprint, v3 (2026-07-28)

one dispatch
attention + FFN + LayerNorm
cross-checked
equivalence before timing
DOI-archived
versioned on Zenodo

Single-dispatch fusion of the autoregressive decoding loop, replacing the per-token chain of kernel launches a browser LLM engine normally issues. Single-threaded and parallel shared-memory variants are cross-checked for numerical equivalence against an f64 CPU reference before anything is timed. The preprint carries the measured ratios and the v3 erratum that revised them.

Real World Results
8 GPU Vendors

Real-world distribution across 7 GPU vendors

Since publishing, 794 runs from 119 distinct GPU/browser/OS combinations across 7 GPU vendors have been published (gpubench, 2026-08-14). Per-vendor medians load from gpubench.dev, the table that computes them.

Apple Silicon median
NVIDIA median
ARM Mali median
Qualcomm Adreno median
🚀

Why not run it on your device?

30 seconds. No installation. Your result joins the live dataset above.

Every result is public

We don't cherry-pick results. Every benchmark run from every device is published in a searchable, sortable, downloadable dataset. GPU name, score, browser, OS, timestamp — all of it. No data is hidden. Verify any claim yourself.

Browse all 0results →
SDK
npm package

@webgpu-fusion/core

One import. One dispatch. All tokens, all layers, all operations fused into a single GPU kernel.

npm install @webgpu-fusion/core

// 3 lines to benchmark your GPU

import { FusedTransformer } from '@webgpu-fusion/core'

const model = await FusedTransformer.create({ dModel: 128, nHeads: 2, nLayers: 4 })

const stats = await model.benchmark({ runs: 10 })

one dispatch
whole decode loop
WGSL
hand-written kernels
0
install required

TypeScript. f32 and f16 precision. Int4 quantization. Single-thread and parallel (64-thread shared memory) modes. Works in Chrome, Firefox, Safari — any WebGPU-capable browser.

Applied

The single-kernel fusion pattern generalises beyond synthetic benchmarks. The flagship application ports a production scientific toolkit — Geant4-DNA (CNRS/IN2P3) — to the browser. Three adjacent projects apply the same pattern to LLM inference, LLM visualisation, and open GPU benchmarking.

Flagship implementationRadiobiology · Monte Carlo

webgpudna.com

Electron track-structure simulation ported from the CNRS/IN2P3 Geant4-DNA toolkit to WebGPU. One thread per primary, full 10 keV history in a single for-loop. Radiolysis chemistry and DNA damage scoring live in a browser tab.The “one dispatch, full history” shape is the same kernel-fusion pattern that gives 3–4 orders of magnitude of speedup on launch-bound workloads — here it's what makes real Monte Carlo radiobiology cheap enough to run live in a browser tab.

Geant4-DNA
physics ported
validated
radiolysis vs Karamitros 2011
browser-native
no install

Full tabulated cross sections from G4EMLOW 8.8: Born ionisation, Emfietzoglou excitation, Champion elastic CDF, Sanche vibrational. Karamitros 2011 9-reaction IRT radiolysis. Direct + indirect SSB scoring against a 21×21 parallel B-DNA fiber grid. Validated at 8 energies (100 eV – 20 keV).

See the simulation →