{"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"},"next_reads":[{"type":"topic","path":"/topics/local-models/","url":"https://newruntime.com/topics/local-models/","title":"Local Models","reason":"Explore the local-models topic hub.","media_type":"text/html","markdown_url":"https://newruntime.com/topics/local-models.md","json_url":"https://newruntime.com/topics/local-models.json"},{"type":"topic","path":"/topics/inference/","url":"https://newruntime.com/topics/inference/","title":"Inference","reason":"Explore the inference topic hub.","media_type":"text/html","markdown_url":"https://newruntime.com/topics/inference.md","json_url":"https://newruntime.com/topics/inference.json"},{"type":"collection","path":"/posts/","url":"https://newruntime.com/posts/","title":"Field Notes","reason":"Open the latest editorial analysis.","media_type":"text/html","json_url":"https://newruntime.com/posts.json"},{"type":"collection","path":"/source-ledger.json","url":"https://newruntime.com/source-ledger.json","title":"Source Ledger","reason":"Inspect the public source evidence graph.","media_type":"application/json"}]}
