Skip to content

generation dtype docs - #12

Merged
decitre merged 2 commits into
mainfrom
generation-dtype-docs
Nov 4, 2026
Merged

decitre merged 2 commits into
mainfrom
generation-dtype-docs

Conversation

@decitre

@decitre decitre commented Nov 4, 2026

Copy link
Copy Markdown
Owner
  • Document that the fastest generation dtype depends on the backend
  • Add a quadrant chart for choosing a generation dtype

decitre and others added 2 commits November 4, 2026 07:18
Measured 32-token greedy generation for SmolLM2-135M, SmolLM2-360M and
TinyLlama-1.1B in Chrome, Safari and Firefox. On WebGPU, q4 is fastest (10 to
15x faster than q8, which is the slowest WebGPU choice despite being first in
the default fallback order). On WASM it is the reverse: 4-bit kernels are 4 to
8x slower than q8 and 7 to 11x slower than fp16, the same in all three
browsers. A single model file over 2 GB cannot load in a browser, so large
models need q8 on WASM.

Add a generation dtype section with the measurements to docs/MODELS.md, stop
recommending q4 for SmolLM2-360M without naming the backend, point to it from
USAGE.md, and note in the WebGPU notebook that most of its WASM time comes from
slow 4-bit kernels (WASM fp16 takes about 0.6 s).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Plot tokens/s against dtype for each model and backend, split into quadrants by
download size (4/8-bit vs 16/32-bit) and by 10 tokens/s (about twice reading
speed), so the q4-on-WebGPU and fp16/q8-on-WASM choices read at a glance.
Light and dark renderings are embedded with <picture>. The script declares
matplotlib inline (PEP 723), so `uv run scripts/plot_generation_dtypes.py`
regenerates both without a new project dependency.
@codecov

codecov Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 82.96%. Comparing base (30f1d9a) to head (1be1cde).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #12   +/-   ##
=======================================
  Coverage   82.96%   82.96%           
=======================================
  Files           8        8           
  Lines        2472     2472           
=======================================
  Hits         2051     2051           
  Misses        421      421           
Flag Coverage Δ
javascript 79.19% <ø> (ø)
python 87.81% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@decitre
decitre merged commit 0748e21 into main Nov 4, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant