$ the-wire · showcase
TorchRL resume lands, TorchTitan fixes a silent gradient bug
By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology
TorchRL turned checkpointing into an actual operator workflow while TorchTitan closed a vocab-parallel embedding bug that was quietly corrupting gradients. ExecuTorch's Vulkan backend got a batch of performance and correctness fixes on mobile GPUs.
Fix padding gradients in vocab-parallel embeddings pytorch/torchtitan
Vocab-parallel embeddings passed the global nn.Embedding.padding_idx into a local weight shard; for SmolLM3's vocab_size=128256 with pad_token_id=128004 at TP=2, the old forward raised "Padding_idx must be within num_embeddings" on the 64128-row local table, and lower padding IDs silently suppressed gradients on unrelated rows in other shards. The fix maps the padding index to local coordinates...
[Feature] Add resume= to the Hydra trainer recipes pytorch/rl
The ten sota-implementations/*_trainer recipes previously had entrypoints of instantiate(cfg.trainer); trainer.train() with save_trainer_file: null and no checkpoint Config dataclass, so they could neither save nor resume. They now share one command line, e.g. python sota-implementations/sac_trainer/train.py resume=outputs/<date>/<time>/checkpoints.
[BugFix] Reject W&B logger state from another run and add Checkpoint.read_component pytorch/rl
WandbLogger.load_state_dict used to rebind self.id to the saved run while metrics kept flowing to the run created at construction, so a resumed Trainer looked reconnected when it was not. It now raises when the saved run id differs from the live run id and names both in the message.
[ET-VK] Do not return early before the barrier in softmax and var pytorch/executorch
main() in reduce.glsl bounds-checks the global position and returns early, but reduce_nonpacked_dim() and reduce_packed_dim() both call barrier(), which Vulkan requires every invocation in the work group to reach. On a Mali-G76 the early return hung the GPU and the submit failed with VK_ERROR_DEVICE_LOST.
[ET-VK] Lower eligible conv1d as conv2d over a singleton height dim pytorch/executorch
conv1d.glsl computes one output element per invocation with no tiling or register blocking, and conv1d_gwg set z = div_up_4(batch) so three of every four lanes were dead at batch 1. Eligible conv1d now lowers as conv2d over a singleton height dim; measured inside a single Whisper-tiny encoder execution on an Adreno 840.
[ROCm] Unskip Python chrome-trace export tests except the envelope check (#197136) pytorch/pytorch
The rest of the long tail: ROCm unskipped four of the five TestPythonChromeTraceExport tests (only the NVIDIA-shaped envelope check stays skipped), PyTorch meta registration gained the positive-factor check that eager already had for pixel_shuffle/unshuffle, and torchtitan's ROCm CI is re-enabled behind a new ciflow/rocm label.