<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4" -->

---
title: PyTorch 2.15 Release Blog | daily.dev
description: PyTorch 2.15 makes its rewritten NCCL backend the default for distributed training, with a flight recorder that dumps diagnostics when a collective hangs. The...
canonical: https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: PyTorch 2.15 Release Blog | daily.dev
og:description: PyTorch 2.15 makes its rewritten NCCL backend the default for distributed training, with a flight recorder that dumps diagnostics when a collective hangs. The...
og:url: https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4
og:image: https://api.daily.dev/og/posts/zKriurWL4.png
og:image:alt: PyTorch 2.15 Release Blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# PyTorch 2.15 Release Blog

**[PyTorch](https://daily.dev/sources/pytorch)** · 11 min read · 0 upvotes · 0 comments

## Summary

PyTorch 2.15 makes its rewritten NCCL backend the default for distributed training, with a flight recorder that dumps diagnostics when a collective hangs. The release includes 3,117 commits from 583 contributors since version 2.14. NVFP4 LLM decoding gets faster on NVIDIA Blackwell GPUs through NVGEMM kernel improvements, and Apple Silicon gains FP8 support plus 1.32 to 1.34x higher MoE decode throughput. The default wheel moves to CUDA 13.2, with CUDA 13.4 wheels shipping alongside it. Python 3.10 and macOS 14 are no longer supported.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://pytorch.org/blog/pytorch-2-15-release-blog>

## Questions this post answers

### What changed with the NCCL backend in PyTorch 2.15?

The rewritten NCCL backend, previously opt-in as 'nccl2' in PyTorch 2.14, becomes the default for every nccl process group in PyTorch 2.15. It adds a backend-agnostic flight recorder that writes a post-mortem to disk when a collective hangs. Rollback to the legacy backend is available by setting TORCH_DIST_USE_NCCL2=0 or using the nccl-legacy backend name.

_Teams rolling out PyTorch upgrades can track breaking distributed-training changes like this on daily.dev._

### Does PyTorch 2.15 support Python 3.10?

No, Python 3.10 is no longer supported in PyTorch 2.15, which requires Python 3.11 or newer. Wheels for 3.10 are no longer built and it is no longer tested in CI; building from source on 3.10 is also unsupported, and upcoming releases will remove remaining 3.10 code paths including in torch.compile (Dynamo).

_Developers planning Python upgrades can check compatibility shifts like this on daily.dev before they break a pipeline._

### What performance gains does PyTorch 2.15 bring to Apple Silicon?

PyTorch 2.15 adds float8_e4m3fn FP8 support on MPS along with _scaled_mm using tensorwise or rowwise scaling, plus a gemv fast path for decode-sized shapes. A new grouped_mm with a decode fast path gives 1.32 to 1.34x higher MoE decode throughput on an M3 Ultra, and macOS 15 or newer is now required for MPS acceleration.

_Developers benchmarking ML workloads on Apple Silicon can follow hardware-specific gains like this on daily.dev._

## Similar posts on daily.dev

- [PyTorch 2.10 Released With More Improvements For AMD ROCm & Intel GPUs](https://daily.dev/posts/pytorch-2-10-released-with-more-improvements-for-amd-rocm-intel-gpus-qtirjcchn) · Phoronix · 0 upvotes · 0 comments
- [MPS in PyTorch 2.15](https://daily.dev/posts/mps-in-pytorch-2-15-5hpdyg3sp) · Hugging Face · 1 upvotes · 0 comments
- [CUDA 13.2 Introduces Enhanced CUDA Tile Support and New Python Features](https://daily.dev/posts/cuda-13-2-introduces-enhanced-cuda-tile-support-and-new-python-features-sm7xvcrko) · NVIDIA Developer · 1 upvotes · 0 comments

---

Tags: [#machine-learning](https://daily.dev/tags/machine-learning), [#python](https://daily.dev/tags/python), [#gpu](https://daily.dev/tags/gpu), [#pytorch](https://daily.dev/tags/pytorch)

[View this post on daily.dev](https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"PyTorch 2.15 Release Blog","url":"https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4"},"datePublished":"2026-10-28T17:48:52.238Z","dateModified":"2026-10-28T18:01:15.262Z","description":"PyTorch 2.15 makes its rewritten NCCL backend the default for distributed training, with a flight recorder that dumps diagnostics when a collective hangs. The...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ef96c61901adb610334c138654c6ee9d?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/ef96c61901adb610334c138654c6ee9d?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"PyTorch","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"PyTorch","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/5fdab3d75a834a97a52d433d9c7e5ff9","url":"https://daily.dev/sources/pytorch"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"machine-learning,python,gpu,pytorch","timeRequired":"PT11M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"PyTorch","item":"https://daily.dev/sources/pytorch"},{"@type":"ListItem","position":3,"name":"PyTorch 2.15 Release Blog"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/pytorch-2-15-release-blog-zkriurwl4#faq","mainEntity":[{"@type":"Question","name":"What changed with the NCCL backend in PyTorch 2.15?","acceptedAnswer":{"@type":"Answer","text":"The rewritten NCCL backend, previously opt-in as 'nccl2' in PyTorch 2.14, becomes the default for every nccl process group in PyTorch 2.15. It adds a backend-agnostic flight recorder that writes a post-mortem to disk when a collective hangs. Rollback to the legacy backend is available by setting TORCH_DIST_USE_NCCL2=0 or using the nccl-legacy backend name. Teams rolling out PyTorch upgrades can track breaking distributed-training changes like this on daily.dev."}},{"@type":"Question","name":"Does PyTorch 2.15 support Python 3.10?","acceptedAnswer":{"@type":"Answer","text":"No, Python 3.10 is no longer supported in PyTorch 2.15, which requires Python 3.11 or newer. Wheels for 3.10 are no longer built and it is no longer tested in CI; building from source on 3.10 is also unsupported, and upcoming releases will remove remaining 3.10 code paths including in torch.compile (Dynamo). Developers planning Python upgrades can check compatibility shifts like this on daily.dev before they break a pipeline."}},{"@type":"Question","name":"What performance gains does PyTorch 2.15 bring to Apple Silicon?","acceptedAnswer":{"@type":"Answer","text":"PyTorch 2.15 adds float8_e4m3fn FP8 support on MPS along with _scaled_mm using tensorwise or rowwise scaling, plus a gemv fast path for decode-sized shapes. A new grouped_mm with a decode fast path gives 1.32 to 1.34x higher MoE decode throughput on an M3 Ultra, and macOS 15 or newer is now required for MPS acceleration. Developers benchmarking ML workloads on Apple Silicon can follow hardware-specific gains like this on daily.dev."}}]}
```

