Skip to content

docs(readme): refresh performance tables for v0.3.0 - #300

Merged
inureyes merged 1 commit into
mainfrom
docs/perf-tables-v0.3.0
Jun 16, 2026
Merged

docs(readme): refresh performance tables for v0.3.0#300
inureyes merged 1 commit into
mainfrom
docs/perf-tables-v0.3.0

Conversation

@inureyes

@inureyes inureyes commented Jun 16, 2026

Copy link
Copy Markdown
Member

Summary

Refreshes the README Performance section to the v0.3.0 (2026-06-15) sweep, text and VLM.

  • Decode tables (M1 Ultra + M5 Max, text + VLM) updated to the 2026-06-15 sweep. The perf: bf16->f16 quant-scale promotion (#260) regresses bf16-scale quantized model decode ~33-41% on M1 Ultra #289 bf16-scale decode-regression fix shows up here (e.g. Gemma 4 26B-A4B M5 137→151, Qwen3 MoE 30B M5 156→176; M1 Ultra Qwen3-30B 71→84).
  • Prefill/decode aggregates recomputed against the retained mlx-lm / mlx-vlm reference. A fresh same-host mlx-lm/mlx-vlm run on M1 Ultra confirmed the reference is stable.
  • M1 Ultra VLM prefill corrected: the prior 1.33x was a non-reproducible 2026-05-19 sweep anomaly. Rebuilding the exact campaign binary (v0.0.28) and v0.1.0 both give ~mlx-vlm parity, same as current (investigation in VLM embedding-prefill throughput regressed 1.5-2.3x on M1 Ultra since v0.1.0 #299, closed not-a-bug). The figure is now ~1.0x.
  • DiffusionGemma 26B-A4B block-diffusion mini-table added (M1 Ultra: mlxcel 32 tok/s vs mlx-vlm 29 tok/s = 110%, manual decode measurement; the automated harness can't time diffusion burst output).

Methodology

mlxcel columns are the 2026-06-15 sweep; the mlx-lm/mlx-vlm reference columns are retained from the earlier same-host campaign (validated stable by a fresh run), so each ratio is mlxcel(2026-06-15) over that retained reference. M5 columns stay on the campaign reference (no M5 host available for a fresh run).

Validation

@inureyes
inureyes force-pushed the docs/perf-tables-v0.3.0 branch from 62386ed to a1aead2 Compare June 16, 2026 01:28
@inureyes inureyes changed the title docs(readme): refresh performance tables for v0.3.0 docs(readme): refresh text performance tables for v0.3.0 Jun 16, 2026
Update the decode throughput tables (M1 Ultra + M5 Max, text and VLM) to
the 2026-06-15 sweep and recompute the prefill/decode aggregate summaries
against the retained mlx-lm / mlx-vlm campaign reference, which a fresh
same-host run confirmed is stable. The #289 bf16-scale decode fix shows up
here (e.g. Qwen3 MoE 30B M5 156->176, Gemma 4 26B-A4B M5 137->151).

Correct the M1 Ultra VLM prefill figure: the prior 1.33x was a
non-reproducible 2026-05-19 sweep anomaly (confirmed by rebuilding
v0.0.28 / v0.1.0; see #299) and is actually ~parity with mlx-vlm.

Add a DiffusionGemma 26B-A4B block-diffusion mini-table (M1 Ultra:
mlxcel 32 tok/s vs mlx-vlm 29 tok/s, 110%).
@inureyes
inureyes force-pushed the docs/perf-tables-v0.3.0 branch from a1aead2 to 8b728e1 Compare June 16, 2026 02:14
@inureyes inureyes changed the title docs(readme): refresh text performance tables for v0.3.0 docs(readme): refresh performance tables for v0.3.0 Jun 16, 2026
@inureyes
inureyes merged commit 6631a33 into main Jun 16, 2026
5 checks passed
@inureyes
inureyes deleted the docs/perf-tables-v0.3.0 branch June 16, 2026 02:17
@inureyes inureyes added this to the 0.3 milestone Jun 21, 2026
@inureyes inureyes self-assigned this Aug 31, 2026
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