🔍 Read the full analysis: Exploring MPS Support In PyTorch 2.15 on ThorstenMeyerAI.com
Get the latest gadgets delivered free with Prime
- Fast, free delivery on millions of items
- Prime Video, Amazon Music and more included
- Member-only deals all year
TL;DR
PyTorch 2.15 adds FP8 tensor support and new performance paths to its Metal Performance Shaders backend for Apple silicon. Hugging Face’s PyTorch team reports faster decoding and lower memory use in selected workloads, but results vary by model and setup; the release requires macOS 15 or later and Python 3.11 or later.
PyTorch 2.15 adds FP8 tensor support and new performance paths to the Metal Performance Shaders (MPS) backend used on Apple silicon Macs, while the PyTorch team at Hugging Face reports faster decoding and lower peak memory in the original analysis. The changes could help developers run some models locally, but the published measurements apply to specific workloads and configurations, not every Mac or PyTorch application.
Hugging Face’s PyTorch team says it worked with PyTorch maintainers and community contributors on the MPS changes. In tests on an M3 Ultra with torch.compile, the team measured Qwen3.6-35B-A3B decoding at 61.3 tokens per second in PyTorch 2.15, compared with 9.4 in 2.14. For LFM2.5-8B-A1B, it reported 123.6 tokens per second, up from 23.6. Those figures describe the named models and test setup; the supplied material does not establish equivalent results on other chips or workloads.
The team attributes some decoding improvements to specialized matrix-vector kernels for eligible single-row linear layers, along with fused bias additions. It reports a 1.23× geometric-mean speedup across 96 BF16 layer shapes from real models and says vocabulary softmax was about eight times faster in its measurements. The release also adds a native grouped matrix multiplication path for mixture-of-experts decoding, intended to reduce GPU-to-CPU synchronization and speed up top-k routing.
PyTorch 2.15 supports torch.float8_e4m3fn tensors on MPS, with scaled matrix multiplication using tensorwise or rowwise scaling. FP8 values use one byte each, half the storage of BF16 values. Other reported work covers complex LU and triangular solves, QR decomposition, convolutions, padding, dropout, interpolation backward, and reductions. The minimum requirements listed in the release material are macOS 15 and Python 3.11.
Faster Local Inference on Macs
The update targets two practical constraints for local machine-learning work: response speed and memory use. Faster decoding can reduce the wait between generated tokens in language models, while lower memory demand may let some users run workloads that previously exceeded available resources. FP8 support also gives developers a lower-storage numerical format, though the benefit in an application depends on its scaling and quantization choices.
Hugging Face reports that Wan2.2 tiled VAE decoding peaked at about 8 GiB in PyTorch 2.15, compared with 270 GiB in its earlier test. The team also says an image-padding change addressed a Qwen-Image-2.1 VAE issue: an encode-decode round trip measured 29.95 dB PSNR in 2.15, versus 10.06 dB in 2.14. These results point to possible gains in video and image workflows, but the release material does not show how consistently they hold across settings or data.
For developers, the broader value is that backend changes can affect both feasibility and usability: a model that fits in memory and responds more quickly can be easier to test locally. The reported figures are not a substitute for checking speed, memory, and output quality on the particular Mac, model, and software stack a team uses.
Apple Silicon Mac MPS compatible GPU
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
From MPS Workarounds to Kernels
MPS connects PyTorch workloads to Apple’s Metal GPU framework. The Hugging Face team says that at the start of 2026, some models on MPS encountered unsupported operations, performance drops, or unexpected memory growth. Its stated approach has been to test models from the Hugging Face Hub and address backend gaps, including replacing some MPSGraph operations with dedicated Metal kernels.
The 2.15 work follows changes in PyTorch 2.14, which had already introduced matrix-vector kernels for torch.mm. The new release connects eligible F.linear calls to those kernels, focusing on single-row inputs common during language-model decoding. This is a targeted optimization: it does not imply that every operation or model runs faster.
The team’s release material also previews possible work for PyTorch 2.16, including moving attention more fully onto Metal and further migrations away from MPSGraph. Those are plans described for a future release, not features confirmed as available in 2.15.
“The goal is to make your Mac a first-class place to run and train PyTorch models.”
— PyTorch team at Hugging Face
PyTorch 2.15 compatible ML development tools
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Benchmark Scope and Reproducibility
The supplied release material does not give enough information to independently reproduce every result, including complete software versions, run counts, and measurement conditions. The language-model figures specify an M3 Ultra and torch.compile, but do not show whether similar performance applies to other Apple silicon systems, model configurations, or generation settings.
The breadth of the reported Wan2.2 memory reduction is also unclear across resolutions and video pipelines. The Qwen-Image-2.1 result uses PSNR, but no broader image-quality evaluation is included. FP8 tensor support is confirmed, while the accuracy and practical memory effects of using it depend on application-specific scaling and quantization. The announcement’s figures should be treated as results from selected tests rather than guarantees for all users.
FP8 tensor support for machine learning
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Test Workloads Before Upgrading
Developers considering the update should check that their environment meets the stated requirements—macOS 15 or later and Python 3.11 or later—then compare performance on the models and workflows they rely on. Useful checks include tokens per second, peak memory, and whether generated outputs remain acceptable. The release material says MPS availability checks now give a reason when an older operating system or a missing Metal GPU prevents use.
The Hugging Face team has described fuller Metal-based attention, additional MPSGraph-to-Metal migrations, and faster decoding as areas planned for PyTorch 2.16. Those changes remain prospective. Until they are released and tested, the practical next step is to evaluate the current 2.15 backend on the target Mac rather than assume the published results will transfer directly.
MacBook Pro with M3 Ultra for AI workloads
As an affiliate, we earn on qualifying purchases.
As an affiliate, we earn on qualifying purchases.
Key Questions
What changed in PyTorch 2.15 for Apple silicon?
PyTorch 2.15 adds torch.float8_e4m3fn support on MPS, new decoding-related kernels and other backend improvements for Apple silicon Macs.
Do the reported decoding speeds apply to every Mac?
No. The cited Qwen3.6-35B-A3B and LFM2.5-8B-A1B results were measured on an M3 Ultra with torch.compile. The release material does not establish the same speeds for other chips or workloads.
What are the minimum requirements for MPS in this release?
The supplied material lists macOS 15 or later and Python 3.11 or later.
Does FP8 automatically improve model accuracy or memory use?
No. FP8 values take half the storage of BF16 values, but the practical memory and accuracy effects depend on the model, scaling method, and application.
Which features are planned for PyTorch 2.16?
The Hugging Face team previewed fuller Metal-based attention, more MPSGraph-to-Metal migrations, and faster LLM decoding. These are future plans, not confirmed PyTorch 2.15 features.
Primary source: Hugging Face · via ThorstenMeyerAI.com
Fall Picks
fall essentials
As an affiliate, we earn on qualifying purchases.
