$ cat pytorch/week/2026-10-12.log
the week in review · Oct 12 – Oct 18, 2026
TensorDict 0.15.0 goes pure Python as a 690 KB wheel
By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology
The release carries 581 pull requests, and torchtitan's RL recipes cut rollout memory, worker imports, and controller GC pressure in the same week.
TensorDict v0.15.0 pytorch/tensordict
One 690 KB wheel now serves every platform and Python version, and everyday operations run 1.77 times faster on average. Any reader with 0.14.x pinned should read the breaking notes for 0.15.0 before bumping, since the 581 merged PRs include changes beyond the packaging and speed work.
[rl] Keep Verifiers env-server workers off the trainer imports (#5294) pytorch/torchtitan
Every Verifiers env-server pool worker was importing torch, vLLM and Monarch and using none of them; with 112 workers starting at once on one host they contend with each other, against roughly 13 s for a single worker. If you run large RL environment pools, that startup cost is now gone from the trainer's import graph.
[rl] Store each turn's prompt as a delta on the previous turn (linear-size multi-turn rollouts) (1/2) (#5273) pytorch/torchtitan
Each RolloutTurn stores only the prompt tokens that differ from the previous turn instead of the full prompt, so a rollout grows linearly with turns. Multi-turn training jobs that hold whole rollouts in memory are the ones that feel it.
[BugFix] CudaGraphModule no longer removes tensordicts from the pytree registry pytorch/tensordict
Constructing a CudaGraphModule no longer strips TensorDict, _SubTensorDict, PersistentTensorDict and LazyStackedTensorDict from torch's pytree registry, and no longer warns. Compiled code that mixed cudagraphs with torch.export, torch.func.grad or tree_map on tensordicts can rely on the registry staying intact.
[BugFix] Make add_, zero_ and the other in-place math ops write to the h5 and zarr files of a lazy stack pytorch/tensordict
In-place ops such as add_, mul_, lerp_ and zero_ on a lazy stack of h5 or zarr files previously kept the old values and raised nothing; the same calls on a single file already wrote through. Silent data loss in an on-disk dataset is worth a version bump even for one bugfix.
[graph_trainer] Reduce SimpleFSDP gradients in reduce_dtype, as FSDP2 does (#5171) pytorch/torchtitan
SimpleFSDP in graph_trainer now reduces gradients in reduce_dtype, matching FSDP2, which closes a numerics mismatch between the eager FSDP2 path and GraphTrainer. Recipes comparing the two paths were producing different numbers; that comparison should now line up.
[GREENLIGHT] Decide eligibility from merge_rules.yaml, not the trusted-authors issue (#9029) pytorch/test-infra
GreenLight is out of beta: eligibility comes from merge_rules.yaml alone, so a PR is authoritative when one rule naming its author covers every file it changes, and --requester only needs cohort membership. Contributors watching for review dispatch will see it driven by a checked-in file rather than the trusted-authors issue.
Handle empty linalg.lstsq inputs in shared code (#199696) pytorch/pytorch
`linalg.lstsq` was passing degenerate shapes straight to the backend, where each inherited LAPACK's quick-return behavior; gels, for instance, zeroes B when min(m, n, nrhs) == 0. Shared code that hits empty inputs now gets consistent results instead of per-backend disagreement. Alongside: ExecuTorch dropped Python 3.10 for 3.11 through 3.15, TensorRT skips installing large aliased constant-fold...
$ 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.
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.