140 wires and counting

$ follow PyTorch

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.

$ status

wire 2026-11-09
stories 64

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

TensorDict fixes ragged numel(), TorchTitan defragments FSDP, PyTorch deprecates constrain_unify

By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology

TensorDict fixed two lazy-stack correctness bugs that return wrong numbers for anyone reshaping or counting ragged stacks, while TorchTitan moved all-gather onto the FSDP compute stream to stop CUDA allocation retries, and PyTorch pushed its legacy symbolic unification out to Helion.

[BugFix] Count the rows of a ragged lazy stack in numel() pytorch/tensordict

by peterdsharpe

numel() on a lazy stack with ragged members used to return 1 (or the product of the batch size, 2, for a stack holding 26 rows). It now counts rows, which matters for frame counters and anything else calling numel() on ragged stacks.

[BugFix] Write a nested value that a sliced ragged dim broadcasts in lazy update_at_ pytorch/tensordict

by peterdsharpe

update_at_ with a slice on the ragged dim of a lazy stack used to raise ValueError: length should not be negative when the value carried a nested tensordict the members broadcast. The lazy-stack write path now matches the flat form, which already worked, and matches 0.14.3.

[perf] Move all-gather comm. on the FSDP compute stream (#5627) pytorch/torchtitan

by francesco-bertolotti

All-gather communication moves onto the FSDP compute stream. The contributor traced slow training steps to CUDA allocation retries caused by memory fragmentation across FSDP's multiple streams, and enables _set_unshard_async_op(True) as the fix.

deprecate constrain_unify and move legacy symbolic unification into Helion (#202698) (#202698) pytorch/pytorch

by Laith Sakka

The private _constrain_unify method is removed from PyTorch; its implementation and two callers now live in Helion. The public compatibility API survives on torch._check(a == b) with a deprecation comment, so code importing the private symbol breaks.

[dynamo] Reuse the initial iterator in itertools.cycle (#201608) pytorch/pytorch

by mottopanikeiku

The torch/_dynamo polyfill for itertools.cycle created one iterator from the input but looped the first pass over the original iterable. Compiled cycle now reuses the initial iterator, non-breaking. Elsewhere, tensordict's new ty job in lint.yml pins the diagnostic count at 3,826 so no change can add type errors, and the Qualcomm backend enforces terminal pass ordering for llama3.2 3b and adds ...

Quick answers

What shipped in PyTorch on November 9, 2026?
TensorDict fixed two lazy-stack correctness bugs that return wrong numbers for anyone reshaping or counting ragged stacks, while TorchTitan moved all-gather onto the FSDP compute stream to stop CUDA allocation retries, and PyTorch pushed its legacy symbolic unification out to Helion. In total, 40 commits and 24 pull requests landed.
Who contributed to PyTorch on November 9, 2026?
11 developers shipped this update, including chenweng-quic, twthighd, gavinwang269, Laith Sakka, mottopanikeiku, Wei Wang (Server LLVM), wwwjn, and Chien-Chin Huang, and 3 more.
What were the notable PyTorch updates?
[BugFix] Count the rows of a ragged lazy stack in numel(), [BugFix] Write a nested value that a sliced ragged dim broadcasts in lazy update_at_, and [perf] Move all-gather comm. on the FSDP compute stream (#5627).