Per-phase profile

Where the browser forward pass actually spends its time, measured in this tab right now. This page exists because a performance assumption in this project turned out to be wrong and was only caught by measuring. Two sequence lengths: T=77 is what the explainer runs on every interaction, T=154 is two full periods.  ← back to the explainer  ·  parity check

running…

How to read it. xs and ys are the two dense encoder matmuls, scores is the causally-masked Gram matrix, rope is the rotary phase application, nzscan indexes the non-zero entries so the score loop can skip zeros, and count is the sparsity measurement itself.

What it is used for. The two 4-way unrolled loops in bdh.js were added on a hypothesis and first measured at no effect, on a machine that was running two training jobs at the time. Re-measured on a quiet machine they are worth roughly 1.9× on xs and 2.0× on ys. A benchmark taken on a busy machine is not a weak result, it is not a result. Interaction latency end to end is recorded separately in experiments/results/latency.md.