Repository navigation
[MLX] Raise default macOS deployment target to 26.2 for NAX - #24803
Merged
Merged
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/24803
Note: Links to docs will display an error until the docs builds have been completed. ❌ 2 New FailuresAs of commit 4e7def2 with merge base 4411b8d ( NEW FAILURES - The following jobs have failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
metascroy
approved these changes
Nov 9, 2026
Contributor
|
heads up, mlx jobs on main went red after this landed. 9 of 31 in mlx.yml fail on both full runs since (test-mlx, test-mlx-stories110m, the llm-offgraph rows, voxtral, parakeet, supertonic). the macos-15 runners can't build mlx's metal library with the new deployment target: the last full run before this was 30 of 31 green. probably needs macos 26 runners for mlx.yml, or ci passing |
metascroy
added a commit
that referenced
this pull request
Nov 10, 2026
This branch was previously deployed
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
Raise
CMAKE_OSX_DEPLOYMENT_TARGETfrom14.0to26.2in the sharedmlxconfigure preset, inherited bymlx-releaseandmlx-debug.MLX compiles its NAX kernels only when Metal 4, macOS SDK 26.2+, and a deployment target of at least 26.2 are available. The current preset forces a 14.0 target, so MLX defines
MLX_METAL_NO_NAXeven when building on an M5 with a supported SDK. The deployment target is already forwarded to MLX's ExternalProject; updating this default allows its NAX kernels to be compiled and selected on supported GPUs at runtime.The default MLX preset build will now require macOS 26.2 or newer. Builds targeting older macOS releases can explicitly override the deployment target, for example
cmake --preset mlx-release -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0; MLX will then build without NAX support.Test plan
Validated the presets with CMake 3.31.10 and checked the patch for whitespace errors:
Confirmed that the only preset change is the shared MLX deployment target, and that both release and debug presets inherit it.
Before preparing this PR, built and ran the Muse Glimmer batching worker on an M5 Max with deployment target 26.2. That build used ExecuTorch revision
c0c4172cf7d280f67eebbe727c000a9cbd67131a(#24467) and MLX revision1f8e74e3f12f31365464a6867c6579f0e9b29d85, which is also the MLX revision pinned by this PR's base. Verified that the linked MLX library's compile flags omitMLX_METAL_NO_NAX; a probe linked against the same static library reportednax_available=trueonapplegpu_g17s. A full build of this PR's latest-main checkout has not been run.The prior serving checks used the same PTEs and original client, four runs per model/workload, the mean of runs 2-4, and at least 60 seconds of cooldown between groups. For approximately 2048-token uncached prefill:
These are serving measurements, including activation quantization and other model operations. They span separate sessions; the table is evidence for the previously tested build configuration, rather than a fresh benchmark of this PR. Int8-Int4 was rerun with the same NAX-enabled worker binary as k-quant and NVFP4.
Authored with OpenAI Codex.