github jundot/omlx v0.5.1
0.5.1

3 hours ago

This is a hotfix release for custom-kernel and performance regressions reported since 0.5.0, plus stability and admin fixes from the community.

Highlights

  • Fixed the v0.5.0 long-prompt deadlock. A GPU stream bug could freeze generation forever on the first ~16k-token prompt (easiest to hit with GLM-5.2 + Lightning MTP). Reported by @anicaise-ai in #2197 and @guruswami-ai in #2183.
  • Fixed the Qwen3.6 long-prompt prefill regression. Long prompts took a slow memory-saving path even with plenty of free memory, especially on M5: a 31.5k-token prefill improved 19.8s -> 13.7s on M3 Ultra. Reported by @zviratko in #2204.
  • Fixed TurboQuant KV cache quality and speed. Concurrent requests could corrupt the cache and quietly degrade answers (contributed by @JimStenstrom in #2201, reported by @jasen215 in #2172), and MTP + TurboQuant went from the slowest combination to the fastest: 66.5 -> ~93 tok/s (#2215).
  • Native kernel visibility for pip and source installs. /api/status now shows whether the fast kernels are active (source installs without full Xcode silently skip them, up to 30x slower prefill), and this release ships pip wheels with the same prebuilt kernels as the DMG. Contributed by @StartupBros in #2191, #2211, #2209.
  • SSD prefix cache survives prefill eviction pauses. The server no longer throws away a restored cache under memory pressure: a cached 57k-token prompt went 45.4s -> 7.1s. Reported by @aosama in #2180.

Performance Snapshot

Fix Before -> After
Qwen3.6 long-prompt prefill, 31.5k tokens, M3 Ultra 19.8s -> 13.7s (#2204)
Lightning MTP + TurboQuant decode, pp16384/tg128, M3 Ultra 66.5 -> ~93 tok/s (#2215)
Cached 57k-token prompt hit by an eviction pause 45.4s -> 7.1s (#2180)
GLM-5.2 + MTP first ~16k-token prompt permanent hang -> completes (#2197, #2183)

Upgrade Notes

  • This upgrade invalidates the existing SSD prefix cache once (cache keys changed in #2178). The first long prompt per model runs cold, then caching resumes normally. No action needed.

Bug Fixes

  • Prefill progress bars now appear for HF cache models in the macOS app and web dashboard. Contributed by @monroewilliams in #2178.
  • gpt-oss tool calls on the analysis channel are no longer dropped, unblocking agentic clients like OpenCode. Reported by @JanushiShastri in #2216.
  • The HTTP port now binds before pinned-model preload (/health returns 503 while loading), and the wired-limit suggestion is clamped below physical RAM. Reported by @guruswami-ai in #2184.
  • "Discard Changes" in model settings reverts correctly. Reported by @tonycarreon in #2182.
  • Reranker fails fast on a missing chat template and no longer duplicates the think prefill. Contributed by @shyuan in #2196.
  • Fixed the Homebrew checksum mismatch for the bundled spaCy model. Reported by @tillemetry in #2173.

Internal

  • Lightning MTP is out of experimental (renamed from Native MTP), and SpecPrefill moved into its own module as prep for prefix caching. Contributed by @aosama in #2186.

New Contributors

Don't miss a new omlx release

NewReleases is sending notifications on new releases.