Skip to content

Drop cu130 from the CUDA build matrix - #4777

Open
shoumikhin wants to merge 1 commit into
pytorch:mainfrom
shoumikhin:drop-cu130
Open

shoumikhin wants to merge 1 commit into
pytorch:mainfrom
shoumikhin:drop-cu130

Conversation

@shoumikhin

@shoumikhin shoumikhin commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Problem

PyTorch announced that it is removing CUDA 13.0 (cu130) from its nightly builds, and asked
anyone who pins cu130 to move to cu132. The cu130 test channel is already gone. Linux cu130
nightlies came back on October 3, but only as a short-term hold for one downstream project,
not as a supported channel. ExecuTorch follows PyTorch, so its cu130 wheels lag behind too.

The build matrix still listed cu130. That caused two problems:

  1. The matrix keeps building a channel PyTorch is retiring.
  2. The daily job that moves the ExecuTorch pin forward needs a version that every listed
    channel has. A lagging cu130 holds the pin back, even when cu132 and cu134 already have
    newer wheels.

Solution

Remove cu130 from the x86 and Arm CUDA lists in the matrix filter. The pin job reads the same
lists, so the pin can move to the newest version that cu132 and cu134 share.

Release wheels follow the same lists, so cu130 release wheels are dropped as well, on every
platform. The C++ tarballs keep cu130, because libtorch still ships it.

Once the pin can move past cu130, anything that installs the pinned ExecuTorch from the cu130
index would break. So the places that still use cu130 move to cu132:

  • the docs workflow, which installs the pin on every push to main
  • the install-test-ext recipe in the justfile
  • the runtime wheel README
  • the default PyTorch index in pyproject.toml, with uv.lock regenerated
  • the install guides, the contributing guide, and the example install hints

A test now checks that the pin job rejects cu130, so putting it back in the lists fails a test.
The Jetson cu126 path is unchanged.

Testing

  • Ran the ExecuTorch pin, pin update, shared runtime workflow, API, and packaging test suites.
    The new cu130 rejection case fails when cu130 is put back in the lists.
  • Dry-ran the docs, justfile, and README install commands for Linux. With a pin that only cu132
    and cu134 have, they fail against cu130 and resolve against cu132.
  • Regenerated uv.lock on Linux with the uv version CI uses, and checked it with
    uv lock --check.
  • Did not run the docs workflow or a release workflow, and did not build on a GPU.

@meta-cla meta-cla Bot added the cla signed label Oct 3, 2026
@github-actions github-actions Bot added the component: tests Issues re: Tests label Oct 3, 2026
PyTorch announced that it is removing CUDA 13.0 (cu130) from its nightly builds, and asked
anyone who pins cu130 to move to cu132. The cu130 test channel is already gone. Linux cu130
nightlies came back on October 3, but only as a short-term hold for one downstream project,
not as a supported channel. ExecuTorch follows PyTorch, so its cu130 wheels lag behind too.

The build matrix still listed cu130. That has two effects. The matrix keeps building a
channel PyTorch is retiring. And the daily job that moves the ExecuTorch pin forward needs a
version that every listed channel has, so a lagging cu130 holds the pin back.

This removes cu130 from the x86 and Arm CUDA lists in the matrix filter. The pin job reads
the same lists, so the pin can move to the newest version that cu132 and cu134 share. Release
wheels follow the same lists, so cu130 release wheels are dropped as well. The C++ tarballs
keep cu130, because libtorch still ships it.

Once the pin can move past cu130, anything that installs the pinned ExecuTorch from the cu130
index would break. So the places that still use cu130 move to cu132:

- the docs workflow, which installs the pin on every push to main
- the install-test-ext recipe in the justfile
- the runtime wheel README
- the default PyTorch index in pyproject.toml, with uv.lock regenerated
- the install guides, the contributing guide and the example install hints

A test now checks that the pin job rejects cu130, so putting it back in the lists fails a
test. The Jetson cu126 path is unchanged.

Test plan:
- Ran the pin, pin update, shared runtime workflow, API and packaging test suites. The new
  cu130 rejection case fails when cu130 is put back in the lists.
- Dry-ran the docs, justfile and README install commands for Linux. With a pin that only
  cu132 and cu134 have, they fail against cu130 and resolve against cu132.
- Regenerated uv.lock with the uv version CI uses, on Linux, and checked it with
  `uv lock --check`.
@github-actions github-actions Bot added documentation Improvements or additions to documentation component: build system Issues re: Build system component: api [Python] Issues re: Python API labels Oct 5, 2026
@github-actions
github-actions Bot requested a review from zewenli98 October 5, 2026 17:50

@lanluo-nvidia lanluo-nvidia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci: full cla signed component: api [Python] Issues re: Python API component: build system Issues re: Build system component: tests Issues re: Tests documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants