From ace4be37ba9ef5d72c1e3290eaeb5e998d39aa1b Mon Sep 17 00:00:00 2001 From: m3ultra Date: Sun, 19 Jul 2026 12:40:06 +1000 Subject: [PATCH] =?UTF-8?q?benchmarks:=20Hunyuan=20T1=20mx.compile=20micro?= =?UTF-8?q?=20gate=20=E2=80=94=20parity=20PASS,=201.04x=20(GEMM-bound;=20T?= =?UTF-8?q?3/T4=20are=20the=20real=20levers)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- BENCHMARKS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 40dce34..40f2e8a 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -190,3 +190,15 @@ Verdicts: - Metal sparse-conv is worth **1.72x end-to-end** (saves 89.6s/gen). Keep flex_gemm the default; the conv_none fallback is a real 90s regression if the metallib ever breaks silently — worth a GODBOARD/log assertion. - Remaining fat in the fast path: ~46s diffusion sampling (padded SDPA attention — next kernel frontier), ~50s decode/extract (incl. aten::segment_reduce falling back to CPU — patchable), 19s Metal bake. - Decode actually produces 2.79M faces before the forced ~200k simplify — the quality-recovery headroom (rung 2) is bigger than the recon estimated. + +## 2026-07-19 — Hunyuan paint-UNet mx.compile (Target 1, branch mlx-tune) + +Micro gate (real arch, random fp16 weights, 6-view 64² latents, m3ultra): +eager 270.5 ms/fwd → compiled 260.5 ms/fwd = **1.04×**; parity max|diff| +3.0e-05 (PASS); first-trace 1.2 s; peak 4.9 GB. Env-gated +`HY3D_MLX_COMPILE=1`, default off (numerics untouched). + +Verdict: keep (free, safe) but the paint UNet is GEMM-bound — fusion alone +is small. The bigger Hunyuan levers are Target 3 (MoE `.item()` sync-tax, +−4800 syncs/gen, unlocks whole-DiT compile) and Target 4 (manual→fused +SDPA in paint DINO). E2E flag-on-vs-off measurement pending after those.