🔍 Read the full analysis: What’s New With MPS In PyTorch 2.15? on ThorstenMeyerAI.com
Get business pricing on tech for your team
- Business-only prices and quantity discounts
- Tax-exempt purchasing
- Multiple users, one account, clear invoices
TL;DR
PyTorch 2.15 adds FP8 tensor support and performance changes to its Metal Performance Shaders backend for Apple silicon. Hugging Face’s PyTorch team reports faster decoding in tests of two models and substantially lower peak memory in one video-decoding workload, but results depend on the model and setup.
PyTorch 2.15 adds FP8 tensor support and new performance paths to Metal Performance Shaders (MPS), the backend used to run PyTorch workloads on Apple silicon. Hugging Face’s PyTorch team reports much faster decoding in tests of two models and a large peak-memory reduction in one video-decoding workload, while cautioning that results are specific to the tested models and configurations.
On an M3 Ultra using torch.compile, the Hugging Face team measured Qwen3.6-35B-A3B decoding at 61.3 tokens per second with PyTorch 2.15, compared with 9.4 tokens per second in 2.14. For LFM2.5-8B-A1B, it reported 123.6 tokens per second, up from 23.6. These figures cover the named models and test setup; they do not establish the same gains on other Macs or workloads.
For language-model decoding, 2.15 routes eligible single-row linear layers through specialized matrix-vector kernels and fuses some bias additions. The team also reports a 1.23× geometric-mean speedup across 96 BF16 layer shapes drawn from real models, and says vocabulary softmax was about eight times faster in its measurements. A native grouped matrix multiplication path for mixture-of-experts models is intended to reduce GPU-to-CPU synchronization and improve top-k routing.
The release supports torch.float8_e4m3fn tensors on MPS. These one-byte values take half the storage of BF16; PyTorch’s scaled matrix multiplication can use tensorwise or rowwise scaling. Other reported additions include complex LU and triangular solves, QR decomposition, convolutions, padding, dropout, interpolation backward, and reductions. The minimum requirements are macOS 15 and Python 3.11.
Faster Local Inference on Macs
The update targets two practical constraints for local AI work: response speed and memory use. Decoding generates output token by token, so specialized kernels for the relevant operations can affect how quickly a model responds. FP8 values use less storage than BF16, potentially helping applications that use supported operations and scaling choices fit within available memory.
For video and image workflows, the reported memory and reconstruction results point to changes beyond language-model speed. Hugging Face says Wan2.2 tiled VAE decoding peaked at about 8 GiB in 2.15, versus 270 GiB in its earlier test. It also reports that an image-padding change raised Qwen-Image-2.1’s encode-decode round-trip score from 10.06 dB to 29.95 dB PSNR. These are results from the team’s tests, not broad guarantees about every video pipeline or image.
For developers, the release may change which models and creative workloads are practical to run locally. The relevant measure is not just raw speed: users will also need to check memory consumption, output quality, and compatibility on their own Mac and software stack.
Products Worth Considering

LG UltraGear 27-inch QHD OLED Gaming Monitor, 240Hz, 0.03ms, G-SYNC Compatible, FreeSync Premium Pro, HDMI 2.1, DisplayPort 1.4, Black

Apple AirPods Pro 3 Wireless Earbuds with Active Noise Cancellation

DJI Mini 4 Pro Fly More Combo with DJI RC 2
As an affiliate, we earn on qualifying purchases.
How MPS Reached This Release
MPS connects PyTorch to Apple’s Metal GPU framework. Hugging Face’s PyTorch team says that, at the start of 2026, some models on MPS encountered unsupported operations, performance drops, or unexpected memory growth. Its stated work has included testing models from the Hugging Face Hub and addressing backend gaps, including replacing some MPSGraph paths with dedicated Metal kernels.
PyTorch 2.15 builds on work in 2.14, which introduced matrix-vector kernels for torch.mm. The newer release connects eligible F.linear calls to those kernels, targeting the single-row inputs common during model decoding. The team also reported work on operations such as convolutions and reductions, reflecting a broader effort to improve model and creative workloads on MPS.
Hugging Face describes its goal as: “The goal is to make your Mac a first-class place to run and train PyTorch models.” That is the team’s stated aim, rather than a guarantee that every model will run efficiently or without unsupported operations.
““The goal is to make your Mac a first-class place to run and train PyTorch models.””
— PyTorch team at Hugging Face
Benchmark Scope and Reproducibility
The supplied announcement does not include enough information to independently reproduce every result. It gives the M3 Ultra and torch.compile for the model decoding figures, but does not provide complete software versions, run counts, or measurement conditions. It is also unclear how the Wan2.2 memory result changes across resolutions, settings, and video pipelines.
The Qwen-Image-2.1 result is reported using PSNR, a measure of image similarity, but the material does not provide a broader evaluation across images or workflows. FP8 support is confirmed, while the accuracy and memory effects in an individual application will depend on its operations and scaling choices. No claim in the reported tests establishes equivalent results across all Apple silicon chips, models, or software configurations.
Test Workloads Before Updating
Users considering an upgrade should check compatibility and benchmark the models they rely on, recording speed, peak memory, and output quality under comparable settings. The stated requirements are macOS 15 or later for MPS and Python 3.11 or later for PyTorch 2.15; the release material also says MPS availability checks now explain when an older operating system or lack of a Metal GPU prevents use.
The Hugging Face team previewed possible MPS work for PyTorch 2.16, including moving attention more fully onto Metal, additional MPSGraph-to-Metal migrations, and faster language-model decoding. Those are future plans, not features confirmed as part of 2.15. Their availability and performance will need confirmation in a later release.
Key Questions
What is the main MPS change in PyTorch 2.15?
PyTorch 2.15 adds FP8 tensor support and new MPS performance paths, including specialized kernels for eligible decoding operations.
How much faster is model decoding in the reported tests?
On an M3 Ultra with torch.compile, Hugging Face reports Qwen3.6-35B-A3B at 61.3 tokens per second, versus 9.4 in 2.14, and LFM2.5-8B-A1B at 123.6, versus 23.6. These are results for those models and that setup, not a general performance guarantee.
What are PyTorch 2.15’s stated MPS requirements?
The supplied release information lists macOS 15 or later and Python 3.11 or later. MPS also requires a Metal-capable GPU.
Does FP8 support mean every model will use less memory?
No. FP8 values use less storage than BF16, but practical memory and accuracy effects depend on whether an application uses the supported operations and how it applies scaling.
Are the announced MPS improvements planned for PyTorch 2.16 already available?
No. The Hugging Face team previewed further Metal attention work, additional backend migrations, and faster decoding for 2.16; those remain future plans in the supplied material.
Primary source: Hugging Face · via ThorstenMeyerAI.com
