RepoJournal
PyTorch

@pytorch

PyTorch and the broader machine-learning ecosystem

Keep up with PyTorch in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: Python AI / ML Full archive →

The Wire · Showcase

COLLECTIVE OPS STANDARDIZATION LANDS ACROSS C10D BACKENDS

By RepoJournal · Filed · About PyTorch

PyTorch's distributed communication layer just got a consistency overhaul: gather_single now works on nccl2, collective timing surfaces across all backends, and a new NaN check hook works everywhere.

The c10d team shipped five coordinated changes that unify distributed collective operations across in-tree nccl2, nccl-lazy, gloo, and custom backends [2] [3] [4] [5]. The headline move: gather_single, the single-output-tensor analog of all_gather_single, finally works on the in-tree nccl2 and nccl-lazy backends [2]. The same PR renames the old gather_into_tensor API to gather_single with a deprecated alias, matching the pattern already used for all_gather_single [3]. Collective timing and work sequence numbers, which stock nccl provided but in-tree backends silently no-opped, now surface uniformly through enableCollectivesTiming(), getDuration(), and getSequencenumber() [4]. A new backend-agnostic NaN check hook builds on ProcessGroup pre-hooks instead of native implementations, so the debug feature works for any backend, not just ProcessGroupNCCL [5]. In the main pytorch/pytorch repo, 22 deprecated torch.norm call sites got migrated to torch.linalg.vector_norm, cleaning up the API surface ahead of the eventual full deprecation [1]. Helion's flash attention optimizations continue to land in stacked PRs, tuning two-CTA kernels for aligned noncausal fp16 HD64 shapes from 32K through 128K [6]. ExecuTorch added QNN backend support for sort and pdist operations [7] [8], plus bf16 delegation for XNNPACK fully-connected layers so bfloat16 models can lower their linears instead of falling back to portable [9].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] Migrate deprecated torch.norm calls to torch.linalg.* (#185097) pytorch/pytorch
  2. [2] [c10d][nccl2] Implement gather_single (#191067) pytorch/pytorch
  3. [3] [c10d] Rename gather_into_tensor to gather_single (#191073) pytorch/pytorch
  4. [4] [c10d][nccl2] Add collective timing and work sequence numbers (#191065) pytorch/pytorch
  5. [5] [c10d] Add a backend-agnostic NaN check hook (#191064) pytorch/pytorch
  6. [6] [cutedsl] Optimize dense HD64 two-CTA flash attention ↗ pytorch/helion
  7. [7] Qualcomm AI Engine Direct - Adding QNN backend support for the sort core ATen op ↗ pytorch/executorch
  8. [8] Qualcomm AI Engine Direct - Adding QNN backend support for _pdist_forward core ATen op ↗ pytorch/executorch
  9. [9] [xnnpack] Support bf16 delegation for fully-connected ↗ pytorch/executorch

Quick answers

What shipped in PyTorch on July 29, 2026?
PyTorch's distributed communication layer just got a consistency overhaul: gather_single now works on nccl2, collective timing surfaces across all backends, and a new NaN check hook works everywhere. In total, 92 commits, 42 pull requests, and 3 releases landed.
Who contributed to PyTorch on July 29, 2026?
9 developers shipped this update, including cyy, Tristan Rice, jansel, qti-horodnic, haowhsu-quic, SS-JIA, JakeStevens, and github-actions[bot], and 1 more.
What were the notable PyTorch updates?
Migrate deprecated torch.norm calls to torch.linalg.* (#185097), [c10d][nccl2] Implement gather_single (#191067), and [c10d] Rename gather_into_tensor to gather_single (#191073).

More from @pytorch

Daily updates, in your inbox

Follow PyTorch

Keep up with PyTorch in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?