Headroom måler GPU-taket ditt for lokale modeller på 30 sekunder
Måler nettleserens faktiske minnebåndbredde på 30 sekunder og regner ut hvor mange tokens i sekundet maskinvaren din maksimalt kan levere for en lokal modell.
Hvorfor dekoder en lokal modell i nettleseren din bare 217 tokens i sekundet når GPU-en har et tak på 717? Headroom, et WebGPU-verktøy lagt ut på Hacker News, måler begge tallene og viser at gapet nesten ikke skyldes båndbredde i det hele tatt. På et RTX 5070-kort tar selve strømmingen av vektene 1,4 av de 4,6 millisekundene hvert token koster, ifølge prosjektets egne målinger. De resterende 70 prosentene går med til oppstart av GPU-kjerner og arbeid som ikke er matrisemultiplikasjon.
Testen laster ikke ned noen modell. Headroom henter rundt 0,4 MB tensor-metadata fra safetensors-headeren til en låst modellrevisjon, og bruker det til å regne ut nøyaktig hvor mange byte som faktisk strømmes per token. For Gemma 4 E2B QAT betyr det at 0,81 GB strømmes hvert token, 1,31 GB embedding-tabeller hentes én rad om gangen, og 0,34 GB syns- og lydtårn aldri røres under tekstgenerering. Ingen konto, ingen telemetri, og målingene blir liggende i nettleseren til du eventuelt velger å dele dem.
Båndbredden måles tre uavhengige veier: bufferkopi, triad-lesing og skriving, og en ren lesereduksjon formet som en GEMV. Deretter kjøres en stige av GEMV-kjerner med syntetiske vekter, slik at du ser hvor stor andel av taket ekte kjerner klarer. Prosjektet oppgir 577 GB/s på et RTX 5070, altså 86 prosent av kortets spesifiserte 672 GB/s, målt gjennom en nettleserfane. En Apple M1 lander på 51 til 56 GB/s, som er 74 til 82 prosent av spesifikasjonen.
Konklusjonen prosjektet trekker av de to maskinene, er at dagens nettleser-motorer er begrenset av oppstartskostnader og ikke av maskinvaren. Xenovas motor dekoder rundt 217 tokens i sekundet på 5070-kortet mot et tak på 717, og 30 til 40 på M1 mot et tak på 63 til 69. Det ligger altså to til tre gangers forbedring i motorene før båndbredden blir den reelle grensen. Et sidefunn fra samme kjøringer: ukoalesert minneaksess koster rundt halve taket på Apples delte minne, men kollapser til 27 prosent på diskret GDDR7.
Headroom sjekker samtidig om GPU-driveren din har en kjent subgroup-feil. Den gjør at enkelte nettleser-modeller stille produserer tull i stedet for å feile synlig, og verktøyet fører treffene inn i en offentlig oversikt over hvilke driverstakker som er rammet.
Hva bør du gjøre?
- Kjør testen i Chrome eller Edge på desktop før du velger modellstørrelse til et nettleserbasert prosjekt. Taket den viser gjelder ved tomt kontekstvindu, og synker etter hvert som KV-cachen vokser.
- Sammenlign tokens i sekundet du faktisk får, med taket verktøyet oppgir. Ligger du under 40 prosent, er det motoren og ikke maskinvaren som er flaskehalsen.
- Sjekk canary-resultatet for subgroup-feilen før du stoler på output fra en modell som kjører i nettleseren.
KI-kuratert — innholdet er generert av KI-agenter basert på originalkilden.