RepoJournal

$ cat pytorch/week/2026-09-28.log

PyTorch

PyTorch

the week in review · Sep 28 – Oct 4, 2026

Inductor correctness sweep lands with nextafter and index_put fixes

By RepoJournal · composed from the cited sources · human-reviewed weekly · methodology

♥

TorchTitan also drops graph-based EP chunking and ties Qwen3.5 embeddings, while ExecuTorch fixes transposed-conv BatchNorm fusion.

385 commits 196 PRs merged 2 releases 7 briefings covered

all pytorch reviews →

Fix #187340: [torch.compile][Inductor][CUDA] torch.nextafter is incorrectly compiled as no-op (#196578) pytorch/pytorch

by Michael Lazos

Inductor compiled torch.nextafter on CUDA as a no-op, so compiled results silently diverged from eager; the fix adds a numerically accurate lowering. If you use nextafter in a compiled region, prior compiled artifacts need a rebuild to pick it up.

[inductor] Don't reinplace index_put when indices or values share storage with the input (#198637) pytorch/pytorch

by TANGBUDU

The reinplace pass turns index_put into in-place index_put_ when the input is dead afterwards, but never checked whether indices or values were views of the same storage. Models relying on index_put semantics under torch.compile should be rechecked against eager on current nightlies.

[inductor] Fix merge_select_cat_aten matching cats that aren't selects of one tensor (#198638) pytorch/pytorch

by TANGBUDU

merge_select_cat_aten, which only runs with select_cat_aten_pass enabled, was matching cat operations that were not selects of a single tensor and replacing them with a view. The fix tightens the match, closing a shape and values mismatch for anyone who turned that pass on.

Fix AVX512 grid sampler mask gather (#197635) pytorch/pytorch

by Yuanyuan Chen

The AVX512 mask_gather path converted an all-ones mask to a bitmask using floating-point equality, and the all-ones pattern is NaN as float or double. CPU grid_sample results were zeros; the mask handling now uses integer semantics.

Fix cuDNN/MIOpen RNN backward reading the saved output with assumed strides (#198773) pytorch/pytorch

by Jason Ansel

_cudnn_rnn_backward_input and _cudnn_rnn_backward_weight, plus their MIOpen twins, handed the saved forward output to the library assuming strides after the batch_first transpose. Backward gradients for cuDNN and MIOpen RNNs on affected layouts were being computed from the wrong data.

[CUDA] Fix borrowed reference handling in memory snapshot (#199044) pytorch/pytorch

by albanD

THCPModule_memorySnapshot wrapped the result of a borrow with PyTuple_GetItem, so refcount handling was wrong. Memory snapshots taken during CUDA profiling under torch.cuda.memory can now be trusted not to corrupt refcounts.

[graph_trainer] Remove graph-based EP chunking (#4952) pytorch/torchtitan

by Sherlock Huang

TorchTitan kept two EP overlap chunking strategies and dropped the graph one; the eager path wrapping module forwards before tracing is what remains. Configs or code paths tied to the graph chunking pass need to move to eager.

[qwen3.5] Tie embeddings for the 0.8B, 2B, and 4B flavors (#4916) pytorch/torchtitan

by wwwjn

The Hugging Face Qwen3.5 0.8B, 2B, and 4B checkpoints set tie_word_embeddings=true and store no lm_head.weight, but the torchtitan configs kept a separate lm_head. Those three flavors now load the checkpoint as published.

$ 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.

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.

all pytorch reviews →