chore: bump vendored MLX to upstream main 2026-06-11 and retire the steel GEMM overlay#223
Merged
Conversation
Updates GIT_TAG and MLX_EXPECTED_COMMIT in lock-step and retires the steel GEMM mma.h overlay: the new pin carries the upstream safe-load fix (ml-explore/mlx PRs #3560/#3565) natively. The remaining two overlays (compiled.cpp mixed-dtype casts, kernels/utils.h simdgroup-matrix include) were diffed against the new pin: upstream did not touch either file in the 2026-05-09 to 2026-06-11 window, so both apply unchanged. Part of #222
The pin bump in PR #223 moved GIT_TAG and MLX_EXPECTED_COMMIT to a6ec712 but missed the third location: the release workflow's MLX build-cache validator still pinned the old 84961223, so it would purge a valid a6ec712 _deps cache on every release run (the comment there already states it must match the other two). Also refreshes comments left stale by the mma.h overlay retirement: the two steel GEMM safe-load regression tests now describe the fix as native upstream (carried by the pin) rather than pointing at the deleted overlay file, and the two CUDA quantized patch headers update their sync anchor to a6ec712 (upstream did not touch those files between 84961223 and a6ec712, so the patches still match the new pin). The #3443 (c9aa5605..84961223) range stays as the historical landing record. Part of #222
Member
Author
Implementation Review SummaryIntent
Findings Addressed
Remaining Items
Verification
Note: builds were not re-run per the orchestrator's instruction; the orchestrator's real-model verification (DiffusionGemma byte-identical, paged parity, 3150/0 serial suite, cold clippy) stands. |
This was referenced Jun 16, 2026
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.
Summary
Bumps the vendored MLX pin from
8496122(upstream main, 2026-05-09) toa6ec7123dac814417147e21d4aeed694924ddd4d(upstream main, 2026-06-11) and retires the steel GEMMmma.hoverlay that issue #217 introduced: the new pin carries the upstream safe-load fix (ml-explore/mlx PRs #3560/#3565) natively, so keeping the whole-file overlay would have silently reverted upstream changes to that file at the next touch.Closes #222
What changed
src/lib/mlx-cpp/CMakeLists.txt:GIT_TAGmoved toa6ec712; themma.hoverlay file and its_metal_patch_filesentry are removed (a short comment records the retirement).src/lib/mlxcel-core/build.rs:MLX_EXPECTED_COMMITmoved in lock-step (the marker-file mechanism purged the stale_depscache and rebuilt MLX from the new commit on the first build).compiled.cppmixed-dtype static_cast,kernels/utils.hsimdgroup-matrix include +metal::vecqualification) were diffed against the new pin: upstream did not modify either file in the 2026-05-09 to 2026-06-11 window, so both apply unchanged and no re-derivation was needed.mlx_cxx_bridge.cpp) or turbo-kernel changes were required: the month of upstream API drift did not touch any surface mlxcel uses, and the full build compiled clean on the first attempt.Upstream fixes picked up by the new pin
steel GEMM safe-load (#3560/#3565, previously overlaid), qvm_split_k batch stride (#3497), rope single-token multiple-sequences (#3498), int32 shape-product overflow detection (#3524), int32 overflow in matvec row offset and gather-MM batch stride (#3609), metallib deployment-target link flag (#3501), compile-cache and tracing-state thread-safety (#3628/#3638), scatter_prod NaN hang (#3492).
Verification (M1 Ultra, real models)
steel_gemm_edge_tile_safe_load_matches_referencegreen on the native upstream fix (overlay gone), DiffusionGemmareal_model_forward_determinism(buffer-cache-warmed byte-determinism of encoder and canvas forwards) green.c38559cc..., the same value as on the old pin with the overlay), and the 256-token essay run reproduces the identical 34-step trajectory at 631 ms/step (pre-bump 634 ms).--test-threads=1).metal,accelerateand+test-utils).mlxcel-serversmoke with the DiffusionGemma worker on the new pin: chat completion answers correctly with finish_reason stop.