117 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-10-12
stories 100

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

TorchTitan RL workers stop importing vLLM, tensordict fixes its pytree registry leak

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

TorchTitan's reinforcement learning stack got the day's biggest corrections, cutting a 31-minute worker startup tail and quadratic multi-turn rollout memory, while tensordict fixed a CudaGraphModule side effect that broke torch.export and torch.func for the rest of the process.

[rl] Keep Verifiers env-server workers off the trainer imports (#5294) pytorch/torchtitan

by Felipe Mello

Every Verifiers env-server pool worker used to load torch, vLLM and Monarch and use none of them, so one worker took ~13 s to start and 112 starting at once on one host contended with each other. On a Terminal-Bench run with 8 generators and 112 workers on 144-CPU GB300 hosts, the last worker came up 31 minutes after the pool started; now a worker imports only Verifiers, its taskset and its har...

[rl] Store each turn's prompt as a delta on the previous turn (linear-size multi-turn rollouts) (1/2) (#5273) pytorch/torchtitan

by Felipe Mello

Each RolloutTurn now stores only the prompt tokens that differ from the previous turn rather than its full prompt, so rollouts grow linearly with turns instead of quadratically. On a synthetic 120-ply chess group the token fields pickle to 17 MB instead of 236 MB and unpickle on the controller in 0.11 s instead of 1.83 s.

[BugFix] CudaGraphModule no longer removes tensordicts from the pytree registry pytorch/tensordict

by peterdsharpe

Creating a CudaGraphModule no longer strips TensorDict, _SubTensorDict, PersistentTensorDict and LazyStackedTensorDict from torch's pytree registry or warns about it, so torch.export, torch.func.grad and tree_map keep working on tensordicts in the rest of the process. The warning in docs/source/compile.rst and the two sentences pointing to it are gone.

Handle empty linalg.lstsq inputs in shared code (#199696) pytorch/pytorch

by Nikita Shulga

linalg.lstsq used to hand degenerate shapes straight to the backend, inheriting LAPACK's mutually inconsistent quick returns: gels zeroed B when min(m, n, nrhs) == 0, so for n == 0 CPU reported zero residuals instead of ||B||^2 while the backward assumed the true residual, and gelsy set rank = 0 when nrhs == 0 even though the rank of A does not depend on B. The degenerate cases are now handled ...

[BugFix] Move a sub-tensordict to a free key in LazyStackedTensorDictStore.rename_key_ pytorch/tensordict

by peterdsharpe

LazyStackedTensorDictStore.rename_key_("b", "bb") now moves the sub-tensordict "b" and every leaf under it, matching TensorDict and TensorDictStore; before it left the store unchanged and raised no error. The fix applies when the destination is free, and the other cases keep their existing behavior.

[CPP FakeTensor] Track Python CIA overrides and register_fake kernels in Fake dispatch tables (#199785) pytorch/pytorch

by Angel Li

On the PyTorch side, the C++ FakeTensor fallback gained PythonCIA and CustomOpImpl categories in the Fake dispatch tables so it can tell without taking the GIL whether an op has a Python CompositeImplicitAutograd override or a torch.library register_fake kernel, with register_fake entries removed once the last fake is gone.

[rl] Controller GC: freeze the setup heap, fold generator metrics per rollout and group (#5290) pytorch/torchtitan

by Felipe Mello

The long tail: the RL controller now freezes the ~1M post-setup objects out of the collector and folds each rollout's 16 generator-metric records into one Mean and one Max per key, the C++ fakes now pickle by metadata in Dynamo, Inductor and export picklers, and tensorclass tensor_only None fields are stored as missing keys rather than duplicated placeholders.

Quick answers

What shipped in PyTorch on October 12, 2026?
TorchTitan's reinforcement learning stack got the day's biggest corrections, cutting a 31-minute worker startup tail and quadratic multi-turn rollout memory, while tensordict fixed a CudaGraphModule side effect that broke torch.export and torch.func for the rest of the process. In total, 60 commits and 40 pull requests landed.
Who contributed to PyTorch on October 12, 2026?
6 developers shipped this update, including tianyu-l, Felipe Mello, Nikita Shulga, Lukas Geiger, Angel Li, and Peter Sharpe.
What were the notable PyTorch updates?
[rl] Keep Verifiers env-server workers off the trainer imports (#5294), [rl] Store each turn's prompt as a delta on the previous turn (linear-size multi-turn rollouts) (1/2) (#5273), and [BugFix] CudaGraphModule no longer removes tensordicts from the pytree registry.