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

PYTORCH KILLS CUDA 11 SUPPORT, SHIPS METAL RANDPERM OVERHAUL

By RepoJournal · Filed · About PyTorch

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.

One email a day. Unsubscribe in one click.

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

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?