Repository navigation
deps: MLX 0.32.4 on macOS and Linux - #2508
Merged
Merged
Conversation
This was referenced Oct 30, 2026
Merged
Merged
Merged
Merged
AlexCheema
force-pushed
the
deps/mlx-0.32.4
branch
from
October 31, 2026 15:01
e632c9d to
064b61d
Compare
This was referenced Oct 31, 2026
AlexCheema
force-pushed
the
refactor/model-families
branch
from
November 1, 2026 15:49
1956a75 to
063b731
Compare
Landing commit: this PR's change on top of main, with conflicts with the PRs landed before it resolved as in the tested integration build. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
AlexCheema
force-pushed
the
deps/mlx-0.32.4
branch
from
November 1, 2026 15:56
064b61d to
694f3db
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #2507 (the per-family folder refactor); the move to upstream mlx-lm goes on top of this.
What
0e3ff36(2026-10-03, after 0.32.3)v0.32.4tag (36969c0, 2026-10-14), 56 commits latermlx0.32.0 andmlx-cuda-12/130.32.0 wheels from a GitHub release, built from upstreammainin May;mlx-cpu0.31.2 from PyPImlx,mlx-cpu,mlx-cuda-12andmlx-cuda-130.32.4 from PyPIWhy
global_scaletomx.gather_qmm, and the 0.32.0 wheels don't take that argument, so every quantized MoE would fail. The releasewheels were a stopgap until PyPI had CUDA builds. The JACCL small-receive fix they carried has been upstream
since Handle data smaller than BUFFER_SIZE in jaccl recv ml-explore/mlx#3033.
indexers hit it at long context (GLM-5.x recall). It also adds the Metal fence deadlock fix (#4689) and keeps
split-K quantized matmul partials in float32 (#4641).
patch for MLX's CMake files is regenerated: v0.32.4 compiles extension Metal sources to AIR before linking
(
cmake/extension.cmake), and the old hunk no longer applied.Verification
On a Mac Studio (M3 Ultra, 96 GB), this branch was compared with its base (MLX
0e3ff36, same exo code). Teacher-forced float32 log-probs came from exo'sown loading and sharding (single device, 2x tensor parallel, 2x pipeline parallel; prefill plus 16 decode steps),
against Hugging Face transformers (PyTorch, CPU) on the same weights:
The 8-bit affine model changes: 0.32.4 reworked quantized matmul (float32 split-K partials, new thin-matrix
kernels). Against a float32 run of the same weights (affine layers dequantized), KL is 5.8e-3 -> 7.7e-3 single
device (paired difference +1.7e-3, 95% interval -2e-4 to +4.8e-3) and 6.3e-3 -> 5.7e-3 TP. There is no significant
shift either way, and MXFP4 experts are untouched.
uv sync --locked --extra mlx-cpuinstallsmlxandmlx-cpu0.32.4, andmx.gather_qmmacceptsglobal_scale."Paris. The capital of Germany is Berlin. …".
TypeError: gather_qmm(): incompatible function arguments.maindoesn't import at all: it pairs the 0.32.0mlxwheel withmlx-cpu0.31.2(
undefined symbol … linalg3det). This fixes that too.uv sync --extra mlxbuilds MLX 0.32.4 from source;nix build .#exo-test-envbuilds and runs on the GPU;mlx/lib(libmlx, mlx.metallib) is in place for PyInstaller. The Linux nix packages were not built here.basedpyright,ruff check,nix fmt,uv lock --checkandpytest(1842 passed, 3 skipped) pass.Lockfile note
Relocking with current uv also resolves torch for Linux. The existing lock had torch only for macOS, although
pyproject.tomlasks for it on Linux too. Torch now comes from the CUDA 13 index for every Linux extra, includingmlx-cpu. Relockingmainwith nothing else changed gives the same torch delta, so this is not from MLX. The torchindex markers deserve their own look.
🤖 Generated with Claude Code