$ the-wire · showcase
GreenLight leaves beta on merge_rules.yaml, FSDP2 numerics fixed in TorchTitan
By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology
GreenLight's Trusted-Author list is gone and merge rules are now the single source of review eligibility, while TorchTitan aligns SimpleFSDP gradient dtypes with FSDP2 and ROCm picks up a faster radixSelect.
[GREENLIGHT] Decide eligibility from merge_rules.yaml, not the trusted-authors issue (#9029) pytorch/test-infra
Eligibility for GreenLight now comes from merge_rules.yaml alone, so a PR is authoritative when one rule naming its author covers every file it changes. --requester only needs cohort membership, a refused --pr target with an author login still reaches the revert guard, and a REVERTED row on a recorded PR is always non-shadow.
[GREENLIGHT] Dispatch reviews only for eligible PRs; remove the shadow rollout dial (#9032) pytorch/test-infra
The scan fingerprints and dispatches reviews only for PRs whose author a covering merge rule names; every other listed PR is still state-read and revert-guarded but gets no shadow review. With no shadow reviews left to size, PYTORCH_GREENLIGHT_SHADOW_ROLLOUT is now ignored.
[graph_trainer] Reduce SimpleFSDP gradients in reduce_dtype, as FSDP2 does (#5171) pytorch/torchtitan
SimpleFSDP in GraphTrainer now reduces gradients in reduce_dtype, matching what FSDP2 does after its unsharded-parameter gradient dtypes changed. The fix targets a numerics mismatch between eager FSDP2 and the graph trainer.
[rl] RL model defaults in every run: fp32 lm_head, frozen MoE expert bias and router gate (#5271) pytorch/torchtitan
build_rl_model_configs, called by every RL recipe, now defaults the trainer and generator configs to fp32 lm_head logits and frozen MoE routing via a new FreezeMoERoutingTransform. TorchTitan's own measurement: a moving expert bias grew the trainer-vs-vLLM logprob gap from 0.053 to 0.157 over 30 steps at lr=0 on Qwen3-30B-A3B, and freezing it keeps the gap flat.
[ROCm] Speed up radixSelect with a register-resident path (#200328) pytorch/pytorch
The ROCm radixSelect behind topk, kthvalue, median and nanmedian used to re-read its slice from global or shared memory on every 2-bit pass and spend two barriers combining per-warp counts. It now takes a register-resident path.
[CRCR] Recreate nightly pass-rate aggregation for triage pytorch/test-infra
Quiet elsewhere: the nightly pass-rate aggregation was recreated on current main for triage after being reverted, as a draft not intended to merge, and tensordict and TorchRL landed a run of deprecation warnings and bug fixes for empty tensordicts, entry_class, and detached optimization metrics.