AIThis post was created with the assistance of artificial intelligence (AI).

TL;DR

Buying for a business?Offer from Amazon

Get business pricing on tech for your team

  • Business-only prices and quantity discounts
  • Tax-exempt purchasing
  • Multiple users, one account, clear invoices
As an affiliate, we earn on qualifying purchases.

PyTorch 2.15 adds FP8 tensor support to its Metal Performance Shaders backend and reports substantial decoding and memory improvements on Apple silicon. Hugging Face’s PyTorch team says results vary by workload; the release requires macOS 15 or later and Python 3.11 or later.

PyTorch 2.15 adds FP8 tensors and new performance paths to the MPS backend used on Apple silicon Macs, according to the PyTorch team at Hugging Face. The team reports faster decoding for tested mixture-of-experts models and a sharp reduction in peak memory during one video-decoding workload; the release also raises the minimum requirements to macOS 15 and Python 3.11.

The headline results come from tests shared by the Hugging Face PyTorch team, which says it worked with PyTorch maintainers and community contributors on MPS improvements. On an M3 Ultra with torch.compile, the team measured Qwen3.6-35B-A3B decoding at 61.3 tokens per second in 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. These are results for the named models and setup, not a guarantee for every Mac or model.

For language-model decoding, 2.15 routes eligible single-row linear layers through specialized matrix-vector kernels and fuses some bias additions. The team reports a 1.23× geometric-mean speedup across 96 BF16 layer shapes drawn from real models. It also says vocabulary softmax is about eight times faster in its measurements. Mixture-of-experts decoding receives a native grouped matrix multiplication path, with fewer GPU-to-CPU synchronizations and faster top-k routing.

The release supports torch.float8_e4m3fn tensors on MPS. The one-byte values use half the storage of BF16, and PyTorch’s scaled matrix multiplication operation can multiply them with tensorwise or rowwise scaling. Other reported work includes complex LU and triangular solves, QR decomposition, convolutions, padding, dropout, interpolation backward, and reductions. Hugging Face says Wan2.2 tiled VAE decoding peaked at about 8 GiB in 2.15, compared with 270 GiB previously in its test. The team also reports that an image-padding change corrected a Qwen-Image-2.1 VAE issue: its encode-decode round trip reached 29.95 dB PSNR, versus 10.06 dB on 2.14.

At a glance
announcementWhen: PyTorch 2.15; requirements and reported…
The developmentPyTorch 2.15 expands the MPS backend for Apple silicon with FP8 support, faster language-model decoding paths and lower peak memory use in a video VAE workload.
MPS in PyTorch 2.15 — Apple Silicon Performance Update

Apple Silicon · Backend Update · PyTorch 2.15

MPS in PyTorch 2.15

FP8 tensors, faster decoding paths and a dramatic memory reduction in one video workload expand what Apple silicon Macs can do with PyTorch. The figures are promising—and specific to the tested setups.

Qwen3.6 decoding6.5×61.3 vs 9.4 tokens/sec
LFM2.5 decoding5.2×123.6 vs 23.6 tokens/sec
Wan2.2 peak memory8 GiBReported, down from 270 GiB
Minimum environment15 / 3.11macOS / Python

01 / Performance report

Decoding gains, on the tested setup

On an M3 Ultra with torch.compile, Hugging Face’s PyTorch team measured higher decoding throughput in two named models. The bars compare reported tokens per second; each model uses its own scale.

Qwen3.6-35B-A3BM3 Ultra · torch.compile
61.3 tokens/sec

PyTorch 2.14: 9.4 tokens/sec · PyTorch 2.15: 61.3 tokens/sec

LFM2.5-8B-A1BM3 Ultra · torch.compile
123.6 tokens/sec

PyTorch 2.14: 23.6 tokens/sec · PyTorch 2.15: 123.6 tokens/sec

Read the comparison carefully: these measurements describe the named models and configuration. They do not predict equal gains across Mac chips, model architectures, software stacks or generation settings.

02 / What changed

New paths through the Metal backend

MPS connects PyTorch to Apple’s Metal GPU framework. Version 2.15 adds specialized routes for common inference work and broadens operation coverage.

01 · Language models

Single-row linear layers

Eligible F.linear calls can use matrix-vector kernels, with some bias additions fused. The team reports a 1.23× geometric-mean speedup across 96 BF16 layer shapes.

02 · MoE decoding

Grouped matrix multiplication

A native grouped path, fewer GPU-to-CPU synchronizations and faster top-k routing target mixture-of-experts decoding. The team reports 5–6.5× gains in its tests.

03 · Data format

FP8 tensors on MPS

torch.float8_e4m3fn uses one byte per value—half the storage of BF16. Scaled matrix multiplication supports tensorwise or rowwise scaling.

04 · Operations

Wider coverage

Reported additions include complex LU and triangular solves, QR decomposition, convolutions, padding, dropout, interpolation backward and reductions.

05 · Softmax

Faster vocabulary step

The team says vocabulary softmax ran about eight times faster in its measurements. Actual impact depends on the model and workload.

06 · Memory path

Lower video peak

Wan2.2 tiled VAE decoding reportedly peaked around 8 GiB, compared with 270 GiB in the earlier test.

03 / The memory and quality story

A smaller peak—and a corrected image path

Performance only helps when a workflow fits and its outputs remain sound. The announcement pairs a large memory result with an image round-trip quality comparison.

“Wan2.2’s video VAE decode now peaks at 8 GiB of memory instead of 270 GiB.”

PyTorch team at Hugging Face

Image padding · Qwen-Image-2.1

29.95 dB PSNR

Reported encode-decode round trip in 2.15, versus 10.06 dB in 2.14 after an image-padding change addressed an issue.

Interpretation

Useful signal, limited scope

Comparable results across resolutions, settings and image workflows are not established by the supplied figures.

04 / How the backend is evolving

From workarounds to dedicated kernels

Hugging Face says its team tests models from the Hub and works with PyTorch maintainers and community contributors to address MPS gaps upstream.

01

Find the gap

Some models encountered unsupported operations, slow paths or unexpected memory growth.

02

Test real models

Model workloads reveal where backend behavior limits local inference and training.

03

Move closer to Metal

Dedicated Metal kernels replace selected MPSGraph paths; 2.14 already introduced matrix-vector kernels for torch.mm.

04

Measure the result

Check speed, memory and output quality on the hardware and workflows that matter.

Looking ahead: fuller Metal attention support and additional MPSGraph-to-Metal migrations were described as plans for PyTorch 2.16, not as released 2.15 features.

05 / Compatibility & evidence

Check your environment; verify your workload

Minimum requirements

Apple silicon + current runtimes

MPS requires an Apple silicon Mac with macOS 15 or later. PyTorch 2.15 requires Python 3.11 or later. Availability checks now explain when an older OS or missing Metal GPU prevents MPS use.

Evidence limits

Benchmark details are incomplete

The supplied material does not include enough run counts, full software versions or measurement conditions to independently reproduce every result. Wan2.2’s behavior across resolutions and pipelines is also unclear.

MeasureReported in 2.15What it tells you
Qwen3.6-35B-A3B61.3 tokens/secM3 Ultra with torch.compile; model-specific comparison
LFM2.5-8B-A1B123.6 tokens/secM3 Ultra with torch.compile; model-specific comparison
Wan2.2 tiled VAE~8 GiB peakOne reported video-decoding workload
FP8 values½ BF16 storage/valueWhole-application memory also includes other data
Broader resultsNot establishedValidate speed, memory and output quality locally

FP8’s storage size does not guarantee a complete model or application will use half the memory. Accuracy and practical gains depend on quantization, scaling and workload choices.

06 / Key questions

What to know before updating

What is new for MPS?

FP8 tensor support and new or faster paths for language-model decoding, linear algebra, image and video operations, and training workloads.

How fast are the reported LLM results?

On an M3 Ultra with torch.compile, the team reports Qwen3.6 at 61.3 tokens/sec versus 9.4, and LFM2.5 at 123.6 versus 23.6. Results vary by model and hardware.

What Mac and Python versions are required?

An Apple silicon Mac with macOS 15 or later, and Python 3.11 or later for PyTorch 2.15.

Does FP8 halve model memory?

Each FP8 value uses half the storage of BF16. Total model memory depends on activations and other data too.

Mac Model Runs Gain New Headroom

The changes could make a Mac more practical for local inference and creative workflows, especially when memory or per-token latency limits which models users can run. FP8 stores values in less space than BF16, while faster decoding kernels target the repeated single-token work that shapes how quickly an LLM responds. The Wan2.2 result, if reproducible in comparable setups, could also reduce a memory barrier for video generation.

These figures are backend and workload specific. The reported speedups do not establish equivalent gains across all model architectures, Mac chips, software stacks or generation settings. The image-quality result also matters because backend performance is useful only when operations preserve correct outputs. Users evaluating an upgrade should compare their own models and workflows, including output quality and memory use.

Amazon

Apple Silicon Mac compatible GPU accelerators

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

From MPS Workarounds to Metal Kernels

MPS is PyTorch’s backend for using Apple’s Metal GPU framework. Hugging Face’s team says that at the start of 2026, running some models on MPS could involve unsupported operations, performance drops and unexpected memory growth. Its stated approach has been to test models from the Hugging Face Hub and address gaps upstream, including by replacing some MPSGraph paths with dedicated Metal kernels.

PyTorch 2.15 continues changes made in 2.14, which had already introduced matrix-vector kernels for torch.mm. The new release connects eligible F.linear calls to those kernels, targeting the single-row inputs common during decoding. The published material also previews work planned for 2.16, including moving attention more fully onto Metal and further MPSGraph-to-Metal migrations; those are future plans, not features confirmed here as released.

““The goal is to make your Mac a first-class place to run and train PyTorch models.””

— PyTorch team at Hugging Face

Amazon

PyTorch compatible external GPUs for Mac

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Results Depend on the Setup

The supplied release material does not provide enough detail to independently reproduce every benchmark, including full software versions, run counts and measurement conditions. The tokens-per-second figures identify an M3 Ultra and torch.compile, but should not be treated as representative of all Apple silicon Macs. It is also unclear how broadly the reported Wan2.2 memory reduction applies to different resolutions, settings or video pipelines.

The material describes Qwen-Image-2.1 image quality using PSNR, but does not provide broader evaluation results across images or workflows. Support for FP8 tensors and scaled matrix multiplication is confirmed in the announcement; the practical accuracy and memory gains in a particular application depend on its quantization and scaling choices.

Amazon

macOS 15 compatible AI development tools

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Check Compatibility Before Updating

Users need an Apple silicon Mac with macOS 15 or later to use MPS, and PyTorch 2.15 requires Python 3.11 or later. The release material says MPS availability checks now give a reason when an older operating system or missing Metal GPU prevents use. Developers can check the PyTorch 2.15 compatibility information before changing environments.

The Hugging Face team says work for 2.16 is expected to include attention running fully on Metal, additional migrations from MPSGraph, and faster LLM decoding. Those items remain a preview. For 2.15, the practical next step for users is to measure speed, memory use and output quality on the models and Mac configurations they actually rely on.

Amazon

high-performance AI model decoding hardware

As an affiliate, we earn on qualifying purchases.

As an affiliate, we earn on qualifying purchases.

Where I land

I see PyTorch 2.15 as a meaningful MPS update because it addresses both speed and cases where a Mac workload was reportedly consuming extreme memory or producing corrupted image results. The strongest evidence in the announcement is the specificity of the model and hardware comparisons; the breadth of the gains remains less certain because the supplied figures do not establish performance across a wide range of Macs and settings.

The counterargument is that impressive benchmark improvements may not translate to a user’s own pipeline, and backend changes can bring new compatibility or numerical tradeoffs. I would raise my assessment if independent, reproducible tests across several Apple silicon generations confirmed the speed and memory gains while checking output quality. I would lower it if common models still hit unsupported operations, regressions or large differences from the reported results.

Key Questions

What is new for MPS in PyTorch 2.15?

It adds FP8 tensor support and new or faster paths for language-model decoding, linear algebra, image and video operations, and training workloads.

How much faster are the reported LLM results?

On an M3 Ultra with torch.compile, the Hugging Face team reports Qwen3.6-35B-A3B at 61.3 tokens per second, up from 9.4 in PyTorch 2.14. It reports LFM2.5-8B-A1B at 123.6, up from 23.6. Results can differ by model and hardware.

What Mac and Python versions are required?

MPS requires an Apple silicon Mac running macOS 15 or later. PyTorch 2.15 requires Python 3.11 or later.

Does FP8 cut model memory in half?

FP8 values use half the storage per value compared with BF16. The memory use of a complete model or application depends on more than its stored weight values, including activations and other data.

Source: Hugging Face

HALLOWEEN

Halloween Picks

As an affiliate, we earn on qualifying purchases.

You May Also Like

Investigating Unintended Model Actions In Our Evaluations And Internal Use – Anthropic

Anthropic’s headline signals an investigation into unintended model actions during evaluations and internal use, but details and findings are unavailable.

How to Choose AI Automation Software For Small Businesses

Step-by-step guide to choosing, connecting, and launching AI automation software for your small business in 2-4 weeks.

xAI Mulls Unified 4-Tier Subscription For Grok And X | Tap To Know More | Inshorts – Inshorts

A headline-only Inshorts item says xAI is considering four subscription tiers for Grok and X; prices, features and timing are unconfirmed.