You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#1217 measured the batch-capable Gemma 4 31B + bf16 assistant pairing at 1.95x to 2.65x on M3 Ultra and switched mtp_b1_default to enable the B = 1 burst for batch-capable targets from Apple GPU generation 15. But that measurement ran at 9e2c6675, which predates #1258's Gemma exactness probe. On current main (dd21ada4) the probe for this pairing fails under qmv_wide and fails again with it disabled, so the default-env gate declines MTP at serve time on the very host and pairing #1217 enabled by default. The static gate says run, the measured gate says decline, and the decline wins, so the 1.95x to 2.65x is unreachable in a default configuration today.
Evidence
Measured 2026-08-22 on a Mac Studio M3 Ultra 512 GB, macOS 26.6.1, during the issue #1261 measurement, recorded in docs/benchmark_results/qmv-wide-pin-tax-m3ultra-2026-08-22.md in PR #1278.
Two independent server boots of mlxcel-server -m models/gemma-4-31b-it-4bit --model-draft models/gemma-4-31b-it-assistant-bf16 --draft-block-size 4 with MLXCEL_ENABLE_MTP_B1=1 MLXCEL_MTP_ADAPTIVE=0 both logged:
MTP declined: verify block position 0 differs from the single-token chain in 231782 of 524288 logit bytes. Disabling qmv_wide did not make it exact either. Falling back to classic decode.
The same host's Gemma 4 12B + 4-bit assistant pairing (block 5) and Qwen 3.8 27B + MTP head pairing (block 3) both pass after the narrow retry, so this is specific to the 31B pairing, not to the host or the gate.
A plausible mechanism is the one #1258's "What this does not settle" section names for the M1 Ultra prose divergence: a narrow-kernel divergence involving the 262144-wide LM head. The 31B's head is 5376 to 262144 where the 12B's is 3840 to 262144, so hidden width may be the discriminator, but that is a hypothesis, not a measurement.
Candidate directions
To be decided by measurement, not assumed:
Probe at other block widths, since exactness is width-dependent and the burst could run at a width whose probe passes.
Characterize the divergence at op level for the 31B head shape to confirm or refute the LM-head mechanism.
If no exact configuration exists, decide whether mtp_b1_default's generation 15 batch-capable default should stay (it is harmless but misleading, since the exactness gate vetoes it) and update docs/benchmarks.md's 31B rows, which currently imply the speedup ships by default.
The 31B pairing's block-width exactness profile on generation 15 is measured and recorded.
Either a default configuration exists in which the pairing engages MTP with byte-identity, or the docs and the mtp_b1_default comment state plainly that the pairing requires MLXCEL_MTP_ALLOW_INEXACT=1 on generation 15+ and what that forfeits.
docs/benchmarks.md's 31B speedup rows carry the qualification.
Problem
#1217 measured the batch-capable Gemma 4 31B + bf16 assistant pairing at 1.95x to 2.65x on M3 Ultra and switched
mtp_b1_defaultto enable the B = 1 burst for batch-capable targets from Apple GPU generation 15. But that measurement ran at9e2c6675, which predates #1258's Gemma exactness probe. On currentmain(dd21ada4) the probe for this pairing fails underqmv_wideand fails again with it disabled, so the default-env gate declines MTP at serve time on the very host and pairing #1217 enabled by default. The static gate says run, the measured gate says decline, and the decline wins, so the 1.95x to 2.65x is unreachable in a default configuration today.Evidence
Measured 2026-08-22 on a Mac Studio M3 Ultra 512 GB, macOS 26.6.1, during the issue #1261 measurement, recorded in
docs/benchmark_results/qmv-wide-pin-tax-m3ultra-2026-08-22.mdin PR #1278.Two independent server boots of
mlxcel-server -m models/gemma-4-31b-it-4bit --model-draft models/gemma-4-31b-it-assistant-bf16 --draft-block-size 4withMLXCEL_ENABLE_MTP_B1=1 MLXCEL_MTP_ADAPTIVE=0both logged:The same host's Gemma 4 12B + 4-bit assistant pairing (block 5) and Qwen 3.8 27B + MTP head pairing (block 3) both pass after the narrow retry, so this is specific to the 31B pairing, not to the host or the gate.
A plausible mechanism is the one #1258's "What this does not settle" section names for the M1 Ultra prose divergence: a narrow-kernel divergence involving the 262144-wide LM head. The 31B's head is 5376 to 262144 where the 12B's is 3840 to 262144, so hidden width may be the discriminator, but that is a hypothesis, not a measurement.
Candidate directions
To be decided by measurement, not assumed:
mtp_b1_default's generation 15 batch-capable default should stay (it is harmless but misleading, since the exactness gate vetoes it) and updatedocs/benchmarks.md's 31B rows, which currently imply the speedup ships by default.MLXCEL_MTP_ALLOW_INEXACT=1throughput still matches perf(speculative): re-measure the batch-capable B=1 MTP hardware gate on M1 Ultra and M3 Ultra and adjust mtp_b1_default #1217's rows post-fix(speculative): probe Gemma 4 MTP exactness instead of assuming it #1258.Acceptance criteria
mtp_b1_defaultcomment state plainly that the pairing requiresMLXCEL_MTP_ALLOW_INEXACT=1on generation 15+ and what that forfeits.docs/benchmarks.md's 31B speedup rows carry the qualification.References
docs/benchmark_results/qmv-wide-pin-tax-m3ultra-2026-08-22.md(the record)