omlxllmroadmap

542 Commits In One Fast-Forward: The omlx 0.7.1.dev2 Upstream Merge

Share X in

Local sat at 0.7.0.dev4. Upstream shipped two release candidates, two release tags, and a stream of serving and kernel work. The merge was a clean fast-forward — here is everything that came with it.

1. The Merge, In Numbers

542

commits merged

933

files changed

+147,340

lines added

−36,210

lines removed

ItemValue
Local head before merge14194fe7 — 0.7.0.dev4
Upstream head2369e68b — 0.7.1.dev2
Merge typefast-forward — no merge commit, local had no divergent work
Subject-prefix breakdown (approximate)~71 feat, ~90 perf, ~288 fix

Why a fast-forward mattered: nothing local had diverged from upstream, so the 542 commits applied as a straight line. The diff stats above are the exact output of the range — 933 files touched, a net +111,130 lines.

2. Tag Timeline

The range covers two release lines at once: the tail of 0.7.0 (including its release candidate and final tag) and the head of 0.7.1 development.

dev

v0.7.0.dev1, v0.7.0.dev2, v0.7.0.dev4 — the dev line local was tracking; local’s head sits at dev4.

rc + release

v0.7.0rc1 then v0.7.0 — upstream cut a release candidate and a final tag inside this range.

next line

v0.7.1.dev1, v0.7.1.dev2 — 0.7.1 development opens and reaches dev2, which is where upstream now sits.

3. Before → After

The codebase grew on every axis: serving surface, model coverage, and kernel code. The diagram below maps what the merge carried from one side to the other.

Diagram A — Before → After: The Codebase After the Merge

Before Local Tree 0.7.0.dev4 · 14194fe7 Single serving path Fewer model families Earlier MTP / DFlash fast-forward After Local Tree 0.7.1.dev2 · 2369e68b Decisions + systemone APIs MiMo, GLM-5.3, Qwen4, D4.1 Batched DFlash, NAX kernels SSD-streamed MoE offload 542 commits, 933 files +147,340 / −36,210 One serving stack

4. New Features

Roughly 71 feat-prefixed commits in the range. The table below is the user-visible surface: new APIs, new model families, and the speculative-decoding additions.

Serving API and system-level features

AreaFeatureRef
Serving APIOpenAI Decisions API /v1/decisions for any chat model#4436
Serving API/v1/systemone answers with any chat model#4552
Serving APIvLLM-compatible /tokenize and /detokenize#4331
Serving APIStream prefill progress via return_progress#4362
Serving APIReranker accepts request instruction (Qwen3-Reranker)#4389
Serving APIEmbeddings accept audio + OpenAI content parts#4390, #4419
Serving APIKeyless inference / opt-in unauthenticated inference#4528, #3730
Samplingno_repeat_ngram_size + ngram_window applied#4510
SchedulerRequeue under memory pressure; cache cancelled prompts#4509
CacheReuse prefix tail blocks in front of generation prompt#3835

Model coverage and multimodal

AreaFeatureRef
VLMNative video input for Qwen3.5-family#4169
VLMMiMo V2.6 image/video/audio support#3860
VLMText-only Gemma 4 w/ merged MTP head via mlx-vlm#3561
EmbeddingEmbeddingGemma 2 support#4333
QwenYaRN context extension past native window#3347
EngineServe Qwen3.8/3.6 through Splash as external engine#4447
ModelsDecision 3.0 (d3), Clef, OpenJev via /v1/systemone#4470, #4315

Speculative decoding and MoE offload

AreaFeatureRef
SpeculativeDFlash in batched engines (removes dflash-mlx)#4508
SpeculativeDFlash2 GLM-5.3 target; DFlash MiMo V2.6#3979, #3821
SpeculativeAdaptive MTP depth selection62171bdf
SpeculativeBatched DFlash + improved Lightning MTP#3797
SpeculativeMiMo Lightning MTP w/ oQ preservation#3877
MoE offloadExpert offload for DeepSeek V4 / glm5_next / GLM DSA / Qwen3.5#3720, #3696, #3717

Quantization, cluster, downloads, integrations, UI

AreaFeatureRef
QuantizationV4.1 oQ2–oQ2.7; load/offload mlx_lm affine checkpoints93c49d63, #3713
ClusterMac-to-CUDA stage edge over MCDMA RDMA links#3869
DownloadsLive speed, resumable queues, immediate xet cancel#3875
IntegrationsMistral Vibe launcher; DeepSeek Harness (dsh)#4367, #3950
Admin/UIChat composer controls; settings sections; Serving Stats tiles#4446, #4415, #4399
Mac appModel settings pages w/ autosave; log records view#4530, #4514

One theme across the serving additions: the API surface converged on OpenAI-compatible shapes — Decisions API, content-part embeddings, vLLM-style tokenize/detokenize — while /v1/systemone opened a second question-answering route that works with any chat model.

5. Serving Data Path

The feature list reads differently when you follow a request through the stack. This diagram places the new endpoints, the scheduler changes, and the engine-level work on one path.

Diagram B — Serving Data Path & Feature Map

Client HTTP Request Serving API /v1/chat/completions /v1/decisions /v1/systemone /tokenize /detokenize return_progress streaming schedule Scheduler Batch concurrent prompt prefills Requeue under memory pressure Prefix tail reuse Shared sampler forward pass Engine & Kernels NAX attention · JIT kernels · split-K Fused MoE decode · SSD-streamed offload Batched DFlash · adaptive MTP depth TurboQuant · streaming detokenizer Weights & Cache SSD-streamed experts Paged KV + index caches Edge Mac-to-CUDA stage MCDMA RDMA links #3869

6. Kernel & Perf Work

~90 perf-prefixed commits in the range — the largest category after fixes. Grouped by the subsystem they touch.

Scheduler, pool, attention

AreaImprovementRef
SchedulerBatch concurrent prompt prefills into one forward#4361
Scheduler8192-token MiMo & GLM-5.3 prefill chunks on NAX#3992, #3988
Scheduler4096-token MiMo prefill chunks w/ paged-cache block#3973
Engine poolKeep GPU out of idle power state between requests#3974
AttentionLong-context NAX attention in key-range passes#4032
AttentionJIT NAX attention kernel for 192/128 head dims#3994
AttentionZero-copy blocked sliding-window attention for MiMo#3991

Mixture-of-Experts and MTP

AreaImprovementRef
MoEFaster prefill/decode with SSD-streamed offloaded experts#4240, #4313
MoEFetch/compute overlap on SSD streaming#4037
MoEFuse MiMo & GLM-5.3 expert gate/up into one gather_qmm#3993, #4022
MoENAX sorted gather_qmm w/ segmented tile scheduling#3995
MTPStop shared MTP from slowing busy batches#4112
MTPContext-copy drafts for DeepSeek DSpark#4363
MTPShare 8-bit projections across partial row tiles#4475

Per-model kernel work

AreaImprovementRef
GLM-5.3Split-K attention for sparse decode#4523
GLM-5.3Exact fused decode/verify kernels; fused 3-bit decode#3989, #4255
Qwen4Batched one-token decode + batched GDN step#4106
Qwen4Fused MoE, DeltaNet, attention one-token decode#4039
QwenFused MoE decode for FP16 and top-8 routing#4335
DeepSeek V4.1Faster bit-exact decode/long-prompt prefill kernels#4360
DeepSeek V4.1Grow compressed KV & index caches in place#4365
Qwen3.5Q8 GS64 prefill projections as W8A8 on M5#4350

Cross-cutting

AreaImprovementRef
TurboQuantSimdgroup-matrix attention for one-seq decode & MTP verify#4408
RerankerForward shared instruction/query once per request#4407
SamplingShare one sampler between requests with equal params#4376
TokenizerBuild streaming detokenizer once per tokenizer#3975

What this post does not claim: no benchmark numbers, throughput figures, or speedup percentages are stated here — none were part of the verified merge facts, so none are invented. The refs above are the review/PR numbers from the commit range.

7. Closing

A fast-forward is the least dramatic kind of merge — no conflict resolution, no merge commit — but the content is not small: 542 commits, 933 files, a net +111,130 lines. The through-lines:

Serving broadened. /v1/decisions and /v1/systemone added two new question routes beside chat completions; tokenization endpoints matched vLLM’s shapes; prefill progress and keyless inference rounded out the API.

Speculative decoding consolidated. DFlash moved into the batched engines (dflash-mlx is gone), DFlash2 gained a GLM-5.3 target, and MTP work continued with adaptive depth selection, Lightning MTP improvements, and MiMo oQ preservation.

Kernels went deeper per model. NAX attention passes, JIT kernels for specific head dims, split-K sparse decode for GLM-5.3, fused one-token decode for Qwen4, SSD-streamed MoE offload with fetch/compute overlap — the ~90 perf commits are mostly this layer.

If you were tracking omlx from 0.7.0.dev4, this is the delta in full.

Share this post X in

Enjoyed this post?

Get the next one in your inbox — only when I ship something worth reading.

Newsletter form not configured.

Or follow on Substack for the newsletter.

Comments via GitHub Discussions

Comments not configured. Set GISCUS env vars to enable.