Repository navigation
v26.10.1 - Speed Across the Board - GGUF on Our MLX Engine - Sushi Flash Next EXL3 🍣 #672
ddalcu
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Highlights
Faster across the board, with identical results. From Gemma 4 E4B to Qwen3.8 27B and Flash Next, models decode up to 66% faster and read prompts up to 51% faster, and the words that come out are exactly the same as in 26.9.6 (checked on 18 models: Gemma 4, Llama, Mistral, Qwen, Muse, LFM2.5, Ling, Bonsai and more). Measured against the shipped 26.9.6 in the same session, arms alternating, llmprobe taking every number; decode is the headline tokens per second, then the context rungs, prefill last:
Differences within a few percent are run-to-run noise on speculative cells. The M1 Pro's 27B prefill has no 26.9.6 figure because 26.9.6 refused the long prompts (see Fixes). Bonsai-2's new tensor-unit verify route pays on quoted text (edits, rewrites, repeats): a verbatim-rewrite prompt decodes 48% faster on the M5 Ultra (185 to 273 tok/s), while novel-text decode is unchanged.
MLX-Serve Skills When you launch Pi, you can now ask it to build you something using MLX-Serve API's, like build you a game with Audio and Images generated locally. Or a Laya / Kev Decision / Music generator Web App. (install pi so it shows up in launcher)
Chats no longer freeze while another request reads a long prompt. Streams that are already answering keep moving instead of stalling for seconds behind a 32k-token prompt (feat: --prefill-decode-share keeps decoding streams moving through another request's prefill #568). Thanks @STRML.
Qwen3.8 Flash Next is faster everywhere.
--ple-gpu(or the app toggle): prefill 2-4% faster and decode +15% at 128k. Off by default because it needs the whole table in memory (perf: serve bf16 KV with the fused split-K QSA verify kernel #555, perf: PLE n-gram gather on the GPU #539, perf: solo greedy MTP rounds draft the next chain before the host read #545, perf: gqa-aware causal sdpa split keeps MTP verify widths on the vector kernel #554, perf: one fused kernel for the QSA indexer's pooled-key upkeep #556, perf: with no --prefix-cache-mem, qwen4_exp's hot cache holds one full session #575, perf: batched decode rows take the fused QSA attention kernel at S=1 #580, perf: qwen4_exp decode ladder, flushing the deferred PLE leaf first #584). Thanks @STRML and @cowboycoderhq.Qwen3.8 27B is much faster on M5 Macs. On an M5 Ultra: 245 tok/s at 4-bit (was 197), 190 at 6-bit (was 134), 168 at 8-bit (was 127), with identical output.
Nemotron-H reads prompts 9x faster (perf: Nemotron-H prefill 9x (fused Mamba2 step over the whole chunk) + MTP loader leak fix #574). Thanks @sbusso.
Qwen-Image-2.1 can edit pictures from instructions. One model makes images and edits them: give it a photo plus up to 10 reference images (Qwen-Image-2.1 instruction editing (unified t2i+edit, up to 10 references) #512). Thanks @codysk.
Every model gets a drafter slot, and Check for Updates. Add a drafter to any model in the app; a model's bundled drafter loads automatically; 27B 6-bit and 8-bit get the full-speed drafter too. My Models can check everything against Hugging Face and asks before replacing any files (feat: tensorfolding #590).
GGUF models run on our own MLX engine. A GGUF no longer has to go through the slower llama.cpp fallback: Qwen 3.5, 3.6 and 3.8 (dense and MoE) and Gemma 4 GGUFs now load straight onto the MLX path through an engine we wrote ourselves in Zig and Metal, reading the GGUF tensors as they are, so they get the same prefix cache, batching, speculative decoding and tool-calling pipeline as every MLX pack. Turn it on under Settings > Engines (or
--mlx-gguf); every other GGUF keeps the embedded engine it had.Sushi-format Qwen3.8 Flash Next packs run directly. Sushi's EXL3 expert packs load and serve like any other Flash Next pack, with no conversion, so the smallest Flash Next downloads work out of the box. Speculative drafting is now on by default for every model that supports it.
Bonsai 2 gets an optional speed boost. A new "Int8 prefill" setting reads prompts faster on 2-bit Bonsai 2 at a small accuracy cost (off by default), and M5 Macs verify drafts faster too (feat(bonsai2): opt-in int8 prefill, per-model int8_prefill setting #619, perf(bonsai2): 2-bit tensor-unit verify route for Prism packs on M5 #615). Thanks @h9q2cyxvgm-ui.
Kev joins Laya for quick decisions.
/v1/decisionsanswers fast yes/no and multiple-choice questions (Kev packs on /v1/decisions #603). Thanks @alinselea.Simplified Chinese and a light theme. The console is translated, with a light mode, and so are the app's alerts and hints (i18n(console): translate the built-in console into Simplified Chinese #487, feat(console): add a light theme with a switch #485, i18n(app): route the alerts and hints through the catalog #463). Thanks @LXD-8.
Fresher recommended models. MiMo 9B is the new small pick, Qwen 3.8 replaces 3.6 27B, and the tier-list pages get one-click Run buttons (feat: rec list matches ddalcu's catalog — MiMo 9B in, 3.6 27B out; tier-list rows get Run buttons #577). Thanks @Fe2-O3.
Fixes
mlx-communitylayouts (likemlx-community/Qwen-Image-2.1-MLX-4bit) now load, generate and edit correctly (fix(qwen-image): mlx-community packs generate and edit (VAE layout, table group size) #496).Also new
"alias"in model-settings.json) and use it anywhere, including Ollama, load and unload;/v1/modelslists it too (Model alias #520, feat: per-model alias in Model Settings (#520) #612). Thanks @lborloz.--mtp-greedy-tail(or"mtp_greedy_tail": trueper model) lets--mtp-typicalaccept longer runs on sampled requests; off by default (perf: MTP greedy tail for sampled requests (--mtp-greedy-tail) #602). Thanks @beamivalice.mlx-serveskill when launched from the app ormlx-serve launch, for wiring code to the local APIs.mlx-serve pullregister under their org/name id, and Ollama's/api/showreports thinking and vision on models not yet loaded (fix(registry): register pulled models under their org/name id #578, fix(ollama): advertise thinking and vision on /api/show for unloaded models #579). Thanks @brandondyal.This discussion was created from the release v26.10.1 - Speed Across the Board - GGUF on Our MLX Engine - Sushi Flash Next EXL3 🍣.
All reactions