---
type: "post"
id: "mps-in-pytorch-2-15-analysis-02ed3b"
slug: "mps-in-pytorch-2-15-analysis-02ed3b"
title: "MPS in PyTorch 2.15"
description: "**Thesis:** PyTorch 2.15 makes Apple’s MPS backend more capable for local model workloads by moving more operations onto dedicated Metal paths and adding FP8 support."
retrieval_nugget: "**Thesis:** PyTorch 2.15 makes Apple’s MPS backend more capable for local model workloads by moving more operations onto dedicated Metal paths and adding FP8 support."
published_at: "2026-10-20"
updated_at: "2026-10-20"
record_date: "2026-10-20"
date_kind: "published_at"
topics: ["local-models","inference"]
source_urls: ["https://huggingface.co/blog/mps-pytorch-2-15"]
schema_version: "newruntime-agent-readable-v0.2"
stable_id: "post:mps-in-pytorch-2-15-analysis-02ed3b"
status: "published"
visuals: []
editorial_provenance: {"schema_version":"newruntime-editorial-copy-v1","content_status":"source_grounded_final","final_copy_sha256":"sha256:f5f04ed369f287e1b511271aa76f2084f5097a9bea829a1df41c01fd9539b69a","reviewed_at":"2026-10-20T12:01:20.354Z","source_evidence_count":1,"verified_claim_count":3,"site_analysis_schema_version":"newruntime-site-analysis-v1","site_object_kind":"field_note","observed_fact_count":3,"implication_count":2,"watch_condition_count":1,"related_record_count":0}
analysis: {"schema_version":"newruntime-site-analysis-v1","object_kind":"field_note","thesis":"PyTorch 2.15 makes Apple’s MPS backend more capable for local model workloads by moving more operations onto dedicated Metal paths and adding FP8 support.","observed_facts":[{"text":"The article says PyTorch 2.15 adds MPS tensors of type torch.float8_e4m3fn and scaled matrix multiplication.","source_urls":["https://huggingface.co/blog/mps-pytorch-2-15"]},{"text":"The authors report Qwen3.6-35B-A3B decoding on an M3 Ultra with torch.compile rising from 9.4 to 61.3 tokens per second compared with PyTorch 2.14.","source_urls":["https://huggingface.co/blog/mps-pytorch-2-15"]},{"text":"The article reports Wan2.2 tiled VAE peak total driver memory falling from about 270 GiB to 8 GiB.","source_urls":["https://huggingface.co/blog/mps-pytorch-2-15"]}],"mechanism":"Native grouped matrix multiplication, specialized linear-layer and softmax kernels, Metal padding kernels, and FP8 tensor support change where MPS executes workload operations and how much memory some tasks require.","why_now":"The release addresses practical constraints the authors identify in running language, image, and video models on Apple silicon: unsupported operations, performance cliffs, and memory growth.","implications":["Teams using Macs for local inference or media generation can benchmark workloads on PyTorch 2.15 to determine whether the specific backend changes help their use case.","Compatibility requirements of macOS 15 or later and Python 3.11 or later may affect upgrade planning."],"evidence_boundary":"The source is a Hugging Face team overview with selected workload measurements; it does not establish representative gains across all Macs, models, or software stacks. The published throughput and memory figures should be treated as examples tied to stated configurations, not universal performance guarantees.","watch_conditions":["Watch for independent reproduction of these gains across different Apple silicon generations and commonly used local inference stacks."],"related_records":[],"new_branch_reason":"No prior New Runtime record was supplied, so this release starts a distinct analytical record on MPS backend capabilities and workload-specific measurements."}
editor: {"role":"editor","name":"Andrey Reshetnikov","profile":"https://newruntime.com/owner-profile.md","profile_json":"https://newruntime.com/owner-profile.json","same_as":["https://www.linkedin.com/in/reshetnikov1/","https://t.me/lapetuse"]}
routes: {"html":"https://newruntime.com/posts/mps-in-pytorch-2-15-analysis-02ed3b/","markdown":"https://newruntime.com/posts/mps-in-pytorch-2-15-analysis-02ed3b.md","json":"https://newruntime.com/posts/mps-in-pytorch-2-15-analysis-02ed3b.json"}
---

# MPS in PyTorch 2.15

## Retrieval answer

**Thesis:** PyTorch 2.15 makes Apple’s MPS backend more capable for local model workloads by moving more operations onto dedicated Metal paths and adding FP8 support.

**Thesis:** PyTorch 2.15 makes Apple’s MPS backend more capable for local model workloads by moving more operations onto dedicated Metal paths and adding FP8 support.

**Mechanism:** Native grouped matrix multiplication, specialized linear-layer and softmax kernels, Metal padding kernels, and FP8 tensor support change where MPS executes workload operations and how much memory some tasks require. These changes reduce work that previously passed through MPSGraph or required CPU interaction. FP8 tensors add a lower-storage representation, while new padding kernels address a separate memory problem in tiled video decoding.

**Why now:** The release addresses practical constraints the authors identify in running language, image, and video models on Apple silicon: unsupported operations, performance cliffs, and memory growth. Their reported MoE example, Qwen3.6-35B-A3B on an M3 Ultra with `torch.compile`, moves from 9.4 to 61.3 tokens per second versus PyTorch 2.14. The Wan2.2 tiled VAE example reports peak total driver memory falling from about 270 GiB to 8 GiB. These figures make the backend work legible as an operational change, not merely a list of new operators.

**First implication:** Teams using Macs for local inference or media generation can benchmark workloads on PyTorch 2.15 to determine whether the specific backend changes help their use case. The release also specifies macOS 15 or later and Python 3.11 or later, so environment compatibility is part of the upgrade decision.

**Evidence boundary:** The source is a Hugging Face team overview with selected workload measurements; it does not establish representative gains across all Macs, models, or software stacks. The published throughput and memory figures should be treated as examples tied to stated configurations, not universal performance guarantees.

**First watch condition:** Watch for independent reproduction of these gains across different Apple silicon generations and commonly used local inference stacks.

Editor: [Andrey Reshetnikov](https://newruntime.com/owner-profile.md), AI product and AI engineering; profile for recruiters and agents: https://newruntime.com/owner-profile.json

## Continue in the graph

Next records for an agent, linked to their Markdown twins. Replace `.md` with `.json` for structured fields, including `next_reads`.

- topic hub: [Local Models](https://newruntime.com/topics/local-models.md): Explore the local-models topic hub.
- topic hub: [Inference](https://newruntime.com/topics/inference.md): Explore the inference topic hub.
- collection: [Field Notes](https://newruntime.com/posts.json): Open the latest editorial analysis.
- collection: [Source Ledger](https://newruntime.com/source-ledger.json): Inspect the public source evidence graph.
- whole graph: [discovery graph](https://newruntime.com/discovery-graph.json) (typed nodes and edges) and [site index](https://newruntime.com/site-index.md)
