RepoJournal

$ cat pytorch/week/2026-10-26.log

PyTorch

PyTorch

the week in review · Oct 26 – Nov 1, 2026

PyTorch 2.15.0 ships with rewritten NCCL backend

By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology

♥

The release carries backwards incompatible changes and deprecations, and the week's other work was dominated by correctness and supply-chain fixes.

353 commits 140 PRs merged 4 releases 7 briefings covered

all pytorch reviews →

PyTorch 2.15.0 Release pytorch/pytorch

by soulitzer

Beyond the NCCL rewrite, the notes carry dedicated backwards incompatible changes and deprecations sections alongside new features and performance work. If 2.15 lands in your dependency graph, scan those two sections first: they are where existing code breaks.

Only advance branch quantizes that share qparams pytorch/executorch

by Reza Sajadiany

AdvanceQuantizeOpAboveDefInBranchPass now hoists a quantize above a def only when the slice and select branches share qparams, rewriting each quantize as dequantize(shared) followed by quantize(own qparams). Branch quantizes with distinct qparams stay put, which is the case the earlier hoisting behavior got wrong.

[Versioning] Require torch 2.11 or later and deprecate torch<2.13 pytorch/rl

by theap06

torchrl raises its floor from torch 2.1 to 2.11 and deprecates 2.11 and 2.12; importing on torch<2.13 raises a DeprecationWarning. tensordict stays pinned to >=0.14.2,<0.15.0, so pip resolves 0.14.3 on the newly deprecated versions.

[Versioning] Require tensordict 0.15.2 and test PRs against tensordict main pytorch/rl

by theap06

Stacked on the torch floor, this bumps the requirement to tensordict>=0.15.2,<0.16.0 and tests PRs against tensordict main. It was kept separate from the torch floor PR so the two can be reverted independently.

[module-level kernels] inductor: scan each subgraph for its own preamble uses (#200519) pytorch/pytorch

by Bob Ren

The Inductor wrapper now scans each spliced-in subgraph for its own preamble uses instead of scanning the whole finished module. The earlier whole-module scan could not see what the subgraph launcher defines, so the subgraph now decides which conditional preamble lines it needs.

[module-level kernels] inductor: drop async_compile from a module that compiles nothing (#200520) pytorch/pytorch

by Bob Ren

Every generated python wrapper imported AsyncCompile and ended its preamble with async_compile.wait(globals()), even modules that compile nothing. Inductor now drops that import and the associated bookkeeping where it has no work to do.

[PyBindings] Torch-free follow-ups: reused inputs, error reasons, bfloat16 shape, dtype names, tests, docs (#24146) pytorch/executorch

by Anthony Shoumikhin

Export lets a later value reuse an input's planned memory, so a second run of the pybindings path without new inputs returned wrong numbers silently; that reuse is stopped, and error reasons, bfloat16 shape, dtype names, tests and docs come along with it. Silent wrong results on re-run are the kind of fix worth taking regardless of whether you run the new bindings.

[DistMuon] Newton-Schulz can be staged on device of choice pytorch/torchtitan

by francesco-bertolotti

With FSDP2 CPU offload, DistMuon ran Newton-Schulz on the host, making the optimizer step slow; Newton-Schulz is the only heavy compute in the step. The change copies each compute view to the GPU, runs it there, and copies back.

$ ls pytorch/week/ # the briefings behind this review

Keep up with PyTorch in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

all pytorch reviews →