$ the-wire · showcase
One FSDP module at a time, packed-atomic revert, and TensorDict 0.15 removals
By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology
torchtitan's RL path gets a weight sync that no longer OOMs on the first FSDP generator sync and a rollout scorer that can't be frozen by one adversarial answer, while TensorDict 0.15 now hard-errors on two arguments removed from copy_at_ and to_module.
[rl] FSDP generator: sync weights one FSDP module at a time pytorch/torchtitan
The first weight sync used to hold two copies of the generator's weights, so it OOM'd unless the second copy fit in the roughly 6 GiB vLLM leaves free on an H100; syncing one FSDP module at a time costs Qwen3.5-35B-A3B at TP1 only 1.6 GiB extra instead of its 64.6 GiB state dict, with the KV cache unchanged.
[rl] DAPO-Math: score Math-Verify in worker processes with a hard timeout pytorch/torchtitan
A single answer like \boxed{2000^{2000^{2000}}} blocked RewardMathVerify on the rollout worker's event-loop thread forever and killed the run with no error. Scoring now runs in long-lived worker processes under a 60 s default hard timeout, so the offending answer scores 0 and everything else keeps scoring at +0.1 to 0.5 ms per normal score.
Let fastAtomicAdd derive its bound from a packed accessor (#196155) pytorch/pytorch
fastAtomicAdd needs a bound on how far it may look for a 16-bit pairing partner, and callers holding a raw pointer had to derive it themselves, where getting it too large lets the pairing write past the allocation. A new accessor overload derives offset and bound from a packed accessor, which is what the roughly 20 scatter sites subscripting one needed.
Revert "Let fastAtomicAdd derive its bound from a packed accessor (#196155)" pytorch/pytorch
The packed-accessor overload landed and was rolled back the same day: PyTorch's autorevert reverted it to avoid the behaviour, and the revert notes the change can be exempted with an autorevert: disable tag on the PR.
[Deprecation] Remove copy_at_(fast=None) and to_module(preserve_module_state=None), as announced for 0.15 (#2216) pytorch/tensordict
The two deprecations TensorDict 0.14.0 announced for 0.15 are now removals: copy_at_(..., fast=None) raises TypeError instead of warning and falling back to update_at_, and to_module(..., preserve_module_state=None) raises TypeError instead of warning and replacing existing parameters. Both arguments are typed bool in signatures and stubs, so callers passing None explicitly have to drop it.
[interpret] Match compiled Helion in ref-mode indexing, loads, atomics pytorch/helion
Ref mode (HELION_INTERPRET=1) is Helion's test oracle, so it has to compute what compiled Helion computes; the indexing, load and atomic paths were brought into line, which tightens the signal from every Helion test that compares against the interpreter.
Action items