From 6f0fc4998bc403f0e574b9fea5a72c3c5ce47666 Mon Sep 17 00:00:00 2001 From: modelbeast Date: Fri, 17 Jul 2026 01:08:19 +1000 Subject: [PATCH] =?UTF-8?q?docs:=20M3=20Air=20=E2=80=94=20matched-width=20?= =?UTF-8?q?generational=20delta=20+=20fanless=20negative=20result?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fifth machine. Two additions: - M3 Air (10c) vs M5 (10c): same GPU width, 2 generations apart -> M5 is 7.7x at seq 4096. Isolates architecture from width (the Ultras can't). head_dim-56 fallback reproduces here too (padding = 2.6x), so it now holds on every Apple GPU generation shipping today. - Fanless sustained load: NO meaningful throttle over 5 min (1.01x at 300s). We predicted a decay curve and found none — reporting the negative, since it validates that the burst numbers aren't short-run artifacts. --- ...6-07-16-m-series-fleet-ablation-results.md | 37 ++++++++++++++++++- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/2026-07-16-m-series-fleet-ablation-results.md b/docs/2026-07-16-m-series-fleet-ablation-results.md index 07e7119..e7a6725 100644 --- a/docs/2026-07-16-m-series-fleet-ablation-results.md +++ b/docs/2026-07-16-m-series-fleet-ablation-results.md @@ -1,7 +1,7 @@ --- -title: "M-series fleet ablation: M1 / M3 / M4 / M5 (Ultra → laptop)" +title: "M-series fleet ablation: M1 / M3 / M4 / M5 across 5 machines (Ultra → fanless Air)" date: 2026-07-16 -device: "M3 Ultra 256GB · M1 Ultra 128GB · M4 Pro mini 24GB · M5 MacBook Pro 16GB (10-core)" +device: "M1 Ultra 128GB · M3 Ultra 256GB · M3 Air 16GB (fanless) · M4 Pro mini 24GB · M5 MacBook Pro 16GB" script: scripts/bench_optimizations.py (unmodified) + engine-level tiled×compile extension --- @@ -118,6 +118,39 @@ laptop matches an M1 Ultra on *fused* attention while being ~4× slower unfused vs 12.2 ms). The narrower the GPU, the more the fast path is worth. (M5 numbers taken on a machine in active desktop use; treat as indicative, not lab-clean.) +### Generational delta at *matched* GPU width — M3 Air vs M5, both 10-core + +The Ultras confound generation with width. These two don't: both are 10-core laptop GPUs, +two generations apart (fused SDPA, hdim 64, fp32): + +| seq | M3 Air (10c) | M5 (10c) | **M5 speedup** | +|---|---|---|---| +| 1024 | 2.44 ms | 0.80 ms | **3.1×** | +| 2048 | 17.51 ms | 2.32 ms | **7.5×** | +| 4096 | 55.77 ms | 7.22 ms | **7.7×** | + +~7.7× at identical core count — i.e. the M5's gain is architectural, not width. (Apple's own +published MLX figures claim ~3.8× M4→M5 on FLUX image-gen; this attention workload shows more.) +The head_dim-56 fallback reproduces on the M3 Air too — padding to 64 gives **2.6×** +(138.91 → 54.26 ms at (1,16,4096)), so the finding now holds on **M1, M3 Ultra, M3 Air, M4 Pro +and M5** — every generation Apple currently ships. + +### Fanless sustained load: the M3 Air does *not* throttle on this workload (negative result) + +Every number above is a burst measurement, so we checked whether a fanless chassis invalidates +them. Sustained SDPA `(1,16,2048,64)` fp32 on the M3 Air (MacBook Air, no fan), per-30s medians +over 5 minutes: + +| elapsed | 30s | 60s | 150s | 240s | 300s | +|---|---|---|---|---|---| +| median | 13.85 ms | 14.91 ms | 14.55 ms | 14.43 ms | **14.04 ms** | +| vs first | 1.00× | 1.08× | 1.05× | 1.04× | **1.01×** | + +**No meaningful throttle** — ~4 % wobble, ending where it started. We expected a decay curve and +did not find one; the burst numbers in this report are therefore not flattered by short runs. +Caveat: attention at this shape may not be power-dense enough to reach the thermal ceiling — +a full multi-minute diffusion pipeline could still behave differently. + ## Full ablation tables ### M3 Ultra 256GB