Benchmarks
Measure how workloads behave on your device. These experiments help guide compiler work, including private kernel input projection.
Unified benchmark
One run includes every experiment and correctness check on both builds. It covers application calls, memory, computation and execution patterns.
Close other GPU applications and keep this tab visible. Switching tabs stops the run and retains completed results. Your device may become warm.
Running automatically sends results and device information to TypeShade. What is sent
Choose a run size, then run the benchmark.
Reported device
- WebGPU adapter
- WebGL renderer
A software renderer is reported. This run checks the instrument and does not establish physical GPU performance.
Version comparison
Run the same programs with the baseline and candidate builds. Each build has an isolated runtime, and their measured calls alternate.
- Baseline
3b40e065e17fd4d6929d4c30ab45656da73f0fcd- Candidate
91c2fe31de045ebf0e5f2c333ac98b95cc460280
Compare versions within the same run and workload. Inspect both adapter snapshots and raw samples before interpreting a ratio. A submitted GPU command does not prove every part of a call ran on the GPU.
Performance report
Results will appear here after a run.
Each baseline is 100. Shorter bars mean less time or buffer memory. Each section uses its own scale. Raw values appear above the bars.
Lines span percentiles 10 to 90 of repeated samples. Overlapping ranges stay separate from observed decreases and increases. First calls have one observation.
Application workloads
Complete image, particle, reduction and collection calls, plus a resident image chain.
Sample ranges
Data and memory
Object and field arrays, buffer transfers and memory access patterns.
Sample ranges
Computation
Integer arithmetic, reduction and atomic additions.
Sample ranges
Execution
Workgroup sizes and queue submission patterns.
Sample ranges
Measurement method
First-call time includes case preparation. Repeated compiled timings are per dispatch in a calibrated batch. Application timings cover the complete call. Resident timings cover a fixed chain; readback is recorded separately in the JSON.
The field-read kernel cases measure validation and packing in separate probes before the actual call. These probes can warm caches and are not additive parts of elapsed time. Uploaded bytes count actual buffer writes. Available GPU times cover the compute pass with equal query overhead in both builds. Query buffers are excluded from workload memory. Shared runtime information describes the actual opened device; artifact and compiler hashes remain separate provenance.
GPU timing requires timestamp queries and a resolved interval. Unavailable timing remains empty. Separate submissions report host time only.
Peak buffer bytes count live WebGPU buffers created through the instrument. They exclude textures, driver allocations and JavaScript memory. The record also includes allocation and submission counts.
Each workload checks its output against an independent CPU reference and tests the comparison with a corrupted value. Alternatives rotate between rounds.
Run limits come from the selected profile. Setup includes pipeline creation, buffer allocation and initial upload. Raw samples and setup times are in the record.
Contribute results
The record contains device and renderer information, browser version, workload identifiers, timings and correctness results. It contains no page URL or user program.
WebGPU adapter information and WebGL renderer information have separate fields. The APIs may select different GPUs. Browsers can hide either value.
Records expire after 90 days. A daily cleanup deletes expired records. Temporary address hashes enforce an hourly limit and expire at the end of the hour.
These are voluntary, unverified device reports. Maintainers check controlled reproductions before making compiler decisions. Raw submissions are private.