Skip to content

Add stable PyTorch 2.13 and manylinux wheel support - #398

Merged
kierandidi merged 18 commits into
masterfrom
fix/torch-2.13-wheels
Jul 17, 2026
Merged

Add stable PyTorch 2.13 and manylinux wheel support#398
kierandidi merged 18 commits into
masterfrom
fix/torch-2.13-wheels

Conversation

@kierandidi

@kierandidi kierandidi commented Jul 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • build stable PyTorch 2.13/cu130 wheels for Python 3.12-3.14 on x86_64 and aarch64
  • publish the complete GPU and CPU matrix as auditwheel-repaired manylinux_2_28 wheels
  • select C++20 only for PyTorch 2.13+ and keep exact Torch/CUDA variants isolated
  • validate exact release manifests, clean installs, glibc-2.28 portability, and native GPU loads
  • align wheel discovery and release/install documentation for v0.1.42

Test plan

  • Build and auditwheel-repair all 24 GPU and 8 CPU wheel lanes
  • Pass all 32 clean-environment installs and native extension loads
  • Pass representative glibc-2.28 portability checks on both architectures
  • Pass the self-hosted GPU runtime wheel smoke
  • Pass repository CI
  • Publish and verify v0.1.42 after merge

Latest repository CI: https://github.com/uw-ipd/tmol/actions/runs/29602415794
Latest wheel validation: https://github.com/uw-ipd/tmol/actions/runs/29602415232
Validated complete wheel run: https://github.com/uw-ipd/tmol/actions/runs/29596189327

Build the new Python and architecture matrix against the final cu130 release while keeping established NGC lanes isolated from the toolchain changes.
Fail publication when the expected Python, CUDA, and architecture artifacts are missing, and align install guidance with the native v0.1.41 matrix.
Treat the system interpreter as optional so bare CUDA containers use the uv-managed Python in an isolated virtual environment.
Run the legacy native wheel on a compatible host and avoid treating an upstream AArch64 package metadata warning as a tmol install failure.
Build Torch 2.12 wheels against the stable cu132 package and require every release artifact, dependency set, runtime Torch, and CUDA tag to match its declared variant.
@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.10%. Comparing base (ab9a0cb) to head (e82f7bf).
⚠️ Report is 9 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #398      +/-   ##
==========================================
+ Coverage   89.54%   90.10%   +0.55%     
==========================================
  Files         356      358       +2     
  Lines       30990    31401     +411     
==========================================
+ Hits        27751    28293     +542     
+ Misses       3239     3108     -131     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Run metadata and native-extension validation away from the source tree so Python imports the downloaded wheel rather than the checkout.
Replace implicit NGC development packages with exact stable releases and exercise every GPU artifact before publishing.
Prevent NGC alpha packages from leaking into stable target environments when Python versions match.
@aleaverfay

Copy link
Copy Markdown
Collaborator

This is perfect timing: I was just looking to add a cuda 13.0 + torch 2.13 build

Drop unused CUDA link dependencies so monolithic AArch64 PyTorch installs can load tmol, and test the GPU wheel against its exact stable Torch variant.
@kierandidi kierandidi changed the title Add stable PyTorch 2.13 wheel support Add stable PyTorch 2.13 and manylinux wheel support Jul 17, 2026
@kierandidi
kierandidi requested a review from aleaverfay July 17, 2026 17:27
Use a test-local CUDA tolerance for three near-zero baseline terms that reproduce identically across A100 and L40S runners.
Clarify that v0.1.40 remains current while documenting the validated v0.1.42 manylinux matrix and smoke workflow.
@aleaverfay

Copy link
Copy Markdown
Collaborator

What is the limit on the number of wheels we can ask github to make / store?

@kierandidi

Copy link
Copy Markdown
Collaborator Author

GitHub's release limits leave plenty of room for this matrix: up to 1,000 assets per release, each under 2 GiB, with no aggregate release-size or download-bandwidth limit. This release has 32 wheel assets; the validated artifacts total about 2.69 GB and the largest wheel is about 98 MB.

The workflow matrix is also well below GitHub Actions' 256-job matrix limit. Temporary Actions artifacts are separate from permanent release assets and expire (90 days by default); we can shorten their retention later if desired, but that does not constrain the published wheels.

References:

The v0.1.42 candidate is ready for maintainer approval once the two transient wheel jobs finish their rerun. After approval I will merge, push the matching v0.1.42 tag, and verify all 32 release assets.

@kierandidi

Copy link
Copy Markdown
Collaborator Author

Update: the rerun completed successfully. All repository CI and all 32 wheel smoke/portability lanes are green on the current head; maintainer approval is now the only remaining merge gate.

@kierandidi
kierandidi merged commit 0632f14 into master Jul 17, 2026
33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants