117 wires and counting

$ follow PyTorch

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.

$ status

wire 2026-05-31
stories 31

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

PYTORCH KILLS CUDA 11 SUPPORT, SHIPS METAL RANDPERM OVERHAUL

By RepoJournal · Filed · About PyTorch · Composed from the cited sources · methodology

PyTorch dropped legacy CUDA version guards overnight while the MPS backend gets a ground-up Metal rewrite of randperm that cuts through the old MPSGraph abstraction entirely.

The core pytorch/pytorch repo is in cleanup mode. Edward Z. Yang landed a series of refactoring PRs that tighten the codebase: std::to_array replaces hand-counted array definitions [1], dead profiler template parameters got axed [2], and mkldnn's hardcoded template flags vanished [3]. But the real technical shift is CUDA 11 removal [5]. If you're still on 11.x, your next PyTorch upgrade forces a platform jump. The bigger move is on Apple silicon. The MPS randperm implementation ditched the entire MPSGraph layer and rebuilt it on pure Metal with three codepaths optimized by input size [4]. This is what a serious GPU backend looks like when you're willing to drop abstractions. Over in TorchTitan, the data team shipped weighted multi-source dataloading [6], letting you sample from multiple datasets simultaneously with configurable weights. That's the kind of infrastructure improvement that matters for production training. Test infrastructure landed Part 3 of the OOT HUD pipeline [7] with timing-safe auth, payload validation, and DynamoDB writes that don't clobber in-progress state.

Action items

References

  1. [1] Use std::to_array/std::initializer_list (#185607) pytorch/pytorch ↗
  2. [2] Remove dead enforce_variables param and use CTAD in profiler collection (#185695) pytorch/pytorch ↗
  3. [3] Remove always-constant template flags in mkldnn RNN and attention (#185697) pytorch/pytorch ↗
  4. [4] [MPS] Migrate randperm off MPSGraph to Metal (#182528) pytorch/pytorch ↗
  5. [5] Remove CUDA <=11 version guards (#183982) pytorch/pytorch ↗
  6. [6] [data] Add weighted interleaved multi-source dataloader ↗ pytorch/torchtitan
  7. [7] OOT HUD: Add API endpoint, PR page integration, and replicator mapping (Part 3/3) ↗ pytorch/test-infra

Quick answers

What shipped in PyTorch on May 31, 2026?
PyTorch dropped legacy CUDA version guards overnight while the MPS backend gets a ground-up Metal rewrite of randperm that cuts through the old MPSGraph abstraction entirely. In total, 28 commits, 2 pull requests, and 1 releases landed.
Who contributed to PyTorch on May 31, 2026?
2 developers shipped this update, including slimfrkha and subinz1.
What were the notable PyTorch updates?
Use std::to_array/std::initializer_list (#185607), Remove dead enforce_variables param and use CTAD in profiler collection (#185695), and Remove always-constant template flags in mkldnn RNN and attention (#185697).