AIToday
Large Language ModelsOpen-Source AIHugging Face BlogPublished: Oct 20, 2026, 22:00 JST

PyTorch 2.15 brings FP8 to Mac MPS, 61.3 tokens/s on M3 Ultra

Send on LINE
PyTorch 2.15 brings FP8 to Mac MPS, 61.3 tokens/s on M3 Ultra

3 Key Points

  1. What happened

    PyTorch 2.15 adds torch.float8_e4m3fn tensors on MPS, native grouped matmul and faster softmax, with Qwen3.6-35B-A3B decoding at 61.3 tokens/s on an M3 Ultra.

  2. Why it matters

    Running models locally on a Mac becomes more practical, since FP8 halves tensor storage and faster token generation means shorter wait times for anyone using transformers, diffusers or ComfyUI on Apple silicon.

WHO IT HITSDevelopers and creators running models locally on Apple silicon — including users of transformers, diffusers and ComfyUI — should see faster LLM decoding and lower memory use for video generation.

Not sure about something? Ask the AI

Questions and answers are published on this page.

Summaries like this, in your inbox every morning.

Context & Analysis

The PyTorch team at Hugging Face describes a deliberate push to make Apple's MPS backend a first-class place to run and train models. At the start of 2026, the team says, running even small models on MPS often meant working around unsupported operations, performance cliffs and unexpected memory growth. Their method is to run real models from the Hugging Face Hub across language, image and video, find where MPS falls short, and fix it upstream in PyTorch — increasingly by replacing MPSGraph with dedicated Metal kernels.

That approach shows up across the 2.15 release. FP8 arrives on MPS alongside scaled matrix multiplication, and separate work targets the decode phase of language models: linear layers get specialized matrix-vector kernels, and softmax over large vocabularies runs on dedicated Metal kernels. The team reports an 8× faster FP32 softmax over a [1, 128256] row of logits. Beyond language, constant padding moving to Metal fixes runaway driver-memory growth in tiled video VAE decoding, and an encode-decode round trip for Qwen-Image-2.1 now matches CPU at 29.95 dB PSNR, up from 10.06 dB.

The post also sketches what comes next. PyTorch 2.16 is already underway, with scaled dot-product attention dropping MPSGraph entirely so every shape runs on Metal kernels, and more MPSGraph-to-Metal migrations in progress. The team also says it is working on torch.compile improvements to eliminate graph breaks so more models compile end to end.

FAQ
What are the system requirements for PyTorch 2.15 on MPS?
You need an Apple silicon Mac with macOS 15 or later and Python 3.11 or later.
How much memory does FP8 save on MPS?
FP8 tensors use one byte per value, half the storage of FP16 or BF16.
What changes for video decoding memory?
Wan2.2's tiled VAE decode now peaks at about 8 GiB of driver memory instead of 270 GiB, thanks to constant padding moving to Metal kernels.
Hugging Face BlogRead Original Article
Send on LINE

AI news that matters for your work, delivered every morning.

Pick your industry and the AI tools you use, and get news related to your work every day.

Free · 30 seconds with Google · unsubscribe anytimeWhat is AIToday? →

Ask AI

Ask AI anything about this article. The AI reads this article, earlier AIToday articles, and Wikipedia, and cites its sources. Q&As are published on this page for other readers too.

Questions and answers are published on this page.

Related Articles

Next articleJensen Huang, Merz push physical AI at Berlin summit