Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/scripts/filter-matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
jetpack_python_versions: List[str] = ["3.10"]
jetpack_cuda_versions: List[str] = ["cu126"]
# CUDA 13 wheels are supported on x86_64 and Arm, including Windows Arm/AArch64.
x86_cuda_versions: List[str] = ["cu130", "cu132", "cu134"]
arm_cuda_versions: List[str] = ["cu130", "cu132", "cu134"]
x86_cuda_versions: List[str] = ["cu132", "cu134"]
arm_cuda_versions: List[str] = ["cu132", "cu134"]

# For PRs we build/test a single representative config to keep cycle time short.
# Full matrix runs on main / nightly / release branches.
Expand Down
3 changes: 2 additions & 1 deletion .github/scripts/generate-release-matrix.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
import sys

RELEASE_CUDA_VERSION = {
"wheel": ["cu130", "cu132", "cu134"],
# Wheels follow the CUDA rows in filter-matrix.py; libtorch still ships cu130 tarballs.
"wheel": ["cu132", "cu134"],
"tarball": ["cu130", "cu132", "cu134"],
}
RELEASE_PYTHON_VERSION = {
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/docgen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ jobs:
if: ${{ ! contains(github.actor, 'pytorchbot') }}
environment: pytorchbot-env
container:
image: docker.io/pytorch/manylinux2_28-builder:cuda13.0
image: docker.io/pytorch/manylinux2_28-builder:cuda13.2
env:
CUDA_HOME: /usr/local/cuda-13.0
VERSION_SUFFIX: cu130
CU_VERSION: cu130
CUDA_HOME: /usr/local/cuda-13.2
VERSION_SUFFIX: cu132
CU_VERSION: cu132
CHANNEL: nightly
CI_BUILD: 1
steps:
Expand All @@ -39,7 +39,7 @@ jobs:
- name: Install base deps
run: |
python3 -m pip install pip --upgrade
python3 -m pip install pyyaml numpy torch --pre --extra-index-url https://download.pytorch.org/whl/nightly/cu130
python3 -m pip install pyyaml numpy torch --pre --extra-index-url https://download.pytorch.org/whl/nightly/cu132
./packaging/pre_build_script.sh
- name: Get HEAD SHA
id: vars
Expand All @@ -49,7 +49,7 @@ jobs:
# Use the source-paired wheel, not a newer member of the authoring range.
python3 -m pip install ".[executorch]" \
"executorch==$(python3 -c 'import yaml;print(yaml.safe_load(open("dev_dep_versions.yml"))["__executorch_version__"])')" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132
- name: Install uv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ We use the PyTorch Slack for communication about core development, integration w

### Controlling CI scope via PR labels

**PR default:** build + L0 + L1 on a single representative config (Python 3.12 × CUDA 13.4). L2 (slow model-level suites) is opt-in on PRs. The full matrix ({Python 3.10–3.13} × {CUDA 13.0, 13.2, 13.4}) runs on main / nightly / release branches.
**PR default:** build + L0 + L1 on a single representative config (Python 3.12 × CUDA 13.4). L2 (slow model-level suites) is opt-in on PRs. The full matrix ({Python 3.10–3.13} × {CUDA 13.2, 13.4}) runs on main / nightly / release branches.

Apply labels in the PR's right sidebar and re-push (or close/reopen) to re-trigger:

Expand Down
12 changes: 6 additions & 6 deletions docsrc/getting_started/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Torch-TensorRT distributed nightlies targeting the PyTorch nightly. These can be

.. code-block:: sh

python -m pip install --pre torch torch-tensorrt tensorrt --extra-index-url https://download.pytorch.org/whl/nightly/cu130
python -m pip install --pre torch torch-tensorrt tensorrt --extra-index-url https://download.pytorch.org/whl/nightly/cu132



Expand Down Expand Up @@ -153,7 +153,7 @@ Once the WORKSPACE has been configured properly, all that is required to build t

.. code-block:: sh

python -m pip install --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu130
python -m pip install --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu132


If you use the ``uv`` (`https://docs.astral.sh/uv/ <https://docs.astral.sh/uv/>`_) tool to manage python and your projects, the command is slightly simpler
Expand All @@ -168,7 +168,7 @@ To build the wheel file

.. code-block:: sh

python -m pip wheel --no-deps --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu130 -w dist
python -m pip wheel --no-deps --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu132 -w dist

Additional Build Options
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand All @@ -186,7 +186,7 @@ which has implications for features like serialization.

.. code-block:: sh

PYTHON_ONLY=1 python -m pip install --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu130
PYTHON_ONLY=1 python -m pip install --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu132


No TorchScript Frontend
Expand All @@ -197,7 +197,7 @@ of C++ code that is no longer necessary for most users. Therefore you can exclud

.. code-block:: sh

NO_TORCHSCRIPT=1 python -m pip install --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu130
NO_TORCHSCRIPT=1 python -m pip install --pre . --extra-index-url https://download.pytorch.org/whl/nightly/cu132


Building the C++ Library Standalone (TorchScript Only)
Expand Down Expand Up @@ -277,7 +277,7 @@ Build steps

* Open the app "x64 Native Tools Command Prompt for VS 2022" - note that Admin privileges may be necessary
* Ensure Bazelisk (Bazel launcher) is installed on your machine and available from the command line. Package installers such as Chocolatey can be used to install Bazelisk
* Install latest version of Torch (i.e. with ``pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu130``)
* Install latest version of Torch (i.e. with ``pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu132``)
* Clone the Torch-TensorRT repository and navigate to its root directory
* Run ``pip install ninja wheel setuptools``
* Run ``pip install --pre -r py/requirements.txt``
Expand Down
2 changes: 1 addition & 1 deletion docsrc/getting_started/tensorrt_rtx.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ CUDA version):

.. code-block:: sh

python -m pip install --pre torch torch_tensorrt_rtx --extra-index-url https://download.pytorch.org/whl/nightly/cu130
python -m pip install --pre torch torch_tensorrt_rtx --extra-index-url https://download.pytorch.org/whl/nightly/cu132


Import Test
Expand Down
2 changes: 1 addition & 1 deletion docsrc/getting_started/windows_arm64.rst
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ and the resulting Torch-TensorRT wheel target CPython 3.13.
python -m pip install numpy packaging pyyaml setuptools==72.1.0 wheel fmt build

# only for run the setup.py, not use this torch wheelto build windows on arm
python -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu130
python -m pip install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu132

# cross-build the ARM64 TensorRT-RTX wheel
python setup.py bdist_wheel --use-rtx --windows-on-arm
Expand Down
4 changes: 2 additions & 2 deletions docsrc/user_guide/runtime_performance/saving_models.rst
Original file line number Diff line number Diff line change
Expand Up @@ -229,12 +229,12 @@ The ``executorch`` output format lowers the compiled module to an ExecuTorch
``.pte`` program, delegating the TensorRT engines to the Torch-TensorRT ExecuTorch
backend. This CUDA integration links CUDA 13 libraries, so it supports Linux with
any CUDA 13 PyTorch build and needs an ExecuTorch nightly wheel. Install from the
channel matching your CUDA, for example a CUDA 13.0 environment:
channel matching your CUDA, for example a CUDA 13.2 environment:

.. code-block:: bash

pip install --pre "torch_tensorrt[executorch]" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132

Substitute the channel for your CUDA, such as ``cu134`` for CUDA 13.4. ExecuTorch
publishes a channel later than PyTorch does, so a very new CUDA minor may not have
Expand Down
2 changes: 1 addition & 1 deletion examples/executorch_reference_runner/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ same channel:

```bash
pip install --pre "torch-tensorrt[executorch]" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130 \
--extra-index-url https://download.pytorch.org/whl/nightly/cu132 \
--extra-index-url https://pypi.nvidia.com
```

Expand Down
2 changes: 1 addition & 1 deletion examples/torchtrt_executorch_example/export_coalesced.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
Install Torch-TensorRT with the ExecuTorch extra before running this example::

pip install -e ".[executorch]" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132

ExecuTorch's CUDA backend also needs a CUDA toolkit (``nvcc``) at export time,
for the AOTInductor compile.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
Install Torch-TensorRT with the ExecuTorch extra before running this example::

pip install -e ".[executorch]" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132

ExecuTorch's CUDA backend also needs a CUDA toolkit (``nvcc``) at export time,
for the AOTInductor compile.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
Install Torch-TensorRT with the ExecuTorch extra before running this example::

pip install -e ".[executorch]" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132

See https://pytorch.org/executorch/stable/getting-started-setup.html for details.
"""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
Install Torch-TensorRT with the ExecuTorch extra before running this example::

pip install -e ".[executorch]" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132
"""

import argparse
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
Install Torch-TensorRT with the ExecuTorch extra before running this example::

pip install -e ".[executorch]" \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132

See https://pytorch.org/executorch/stable/getting-started-setup.html for details.
"""
Expand Down
6 changes: 3 additions & 3 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -90,18 +90,18 @@ summary *args:

# Added without a rebuild via `uv pip install --group` (sidesteps the
# test-ext↔quantization `uv sync` lockfile conflict). Run before `just lane full`.
# Install optional test deps for Linux with the project's CUDA 13.0 (cu130) default.
# Install optional test deps for Linux with the project's CUDA 13.2 (cu132) default.
install-test-ext:
uv pip install --group test-ext --group kernels --group quantization
# ExecuTorch's CUDA wheels are only on the PyTorch nightly index, so the channel is needed.
# No --pre: a specifier naming a prerelease admits prereleases by itself, and --pre would
# apply to pyyaml here too. cu130 matches the torch index this project resolves against by
# apply to pyyaml here too. cu132 matches the torch index this project resolves against by
# default.
#
# Exact, not a range: the nightly channel gains a member every day, and the delegate is
# compiled from the commit this version pairs with.
uv pip install pyyaml patchelf \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130 \
--extra-index-url https://download.pytorch.org/whl/nightly/cu132 \
"executorch==1.6.0.dev20260925"

# ── Linting ───────────────────────────────────────────────────────────────────
Expand Down
6 changes: 3 additions & 3 deletions py/torch-tensorrt-executorch-runtime/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,12 @@ and leave the backend unregistered.

The wheel must use the same Python, PyTorch, ExecuTorch, CUDA, TensorRT, and
C++ ABI as its matching Torch-TensorRT wheel. This delegate requires CUDA 13;
the build matrix currently covers `cu130`, `cu132` and `cu134`, on both architectures. Ordinary Torch-TensorRT
the build matrix currently covers `cu132` and `cu134`, on both architectures. Ordinary Torch-TensorRT
release and JetPack builds retain their separate CUDA 12 support.

## Install
One command. The `executorch` extra brings this wheel and a CUDA build of ExecuTorch, and
Torch-TensorRT brings PyTorch. Swap `cu132` for the CUDA 13 channel you run, `cu130` or `cu134`:
Torch-TensorRT brings PyTorch. Swap `cu132` for `cu134` if you run CUDA 13.4:
```bash
python -m pip install --pre "torch-tensorrt[executorch]" \
--index-url https://download.pytorch.org/whl/nightly/cu132 \
Expand Down Expand Up @@ -384,7 +384,7 @@ index applies to the whole dependency solve.

```bash
python -m pip install dist/torch_tensorrt_executorch_runtime-*.whl \
--extra-index-url https://download.pytorch.org/whl/nightly/cu130
--extra-index-url https://download.pytorch.org/whl/nightly/cu132
```

```python
Expand Down
16 changes: 8 additions & 8 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -217,15 +217,15 @@ constraint-dependencies = [

[tool.uv.sources]
torch = [
{ index = "pytorch-nightly-cu130" },
{ index = "pytorch-nightly-cu132" },
]
torchvision = [
{ index = "pytorch-nightly-cu130" },
{ index = "pytorch-nightly-cu132" },
]

[[tool.uv.index]]
name = "pytorch-nightly-cu130"
url = "https://download.pytorch.org/whl/nightly/cu130"
name = "pytorch-nightly-cu132"
url = "https://download.pytorch.org/whl/nightly/cu132"
explicit = false

[[tool.uv.index]]
Expand All @@ -234,8 +234,8 @@ url = "https://download.pytorch.org/whl/nightly/cu128"
explicit = false

[[tool.uv.index]]
name = "pytorch-test-cu130"
url = "https://download.pytorch.org/whl/test/cu130"
name = "pytorch-test-cu132"
url = "https://download.pytorch.org/whl/test/cu132"
explicit = false

[[tool.uv.index]]
Expand All @@ -244,8 +244,8 @@ url = "https://download.pytorch.org/whl/test/cu128"
explicit = false

[[tool.uv.index]]
name = "pytorch-release-cu130"
url = "https://download.pytorch.org/whl/release/cu130"
name = "pytorch-release-cu132"
url = "https://download.pytorch.org/whl/release/cu132"
explicit = false

[[tool.uv.index]]
Expand Down
4 changes: 2 additions & 2 deletions tests/py/dynamo/executorch/test_shared_runtime_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -609,9 +609,9 @@ def kept(rows, *flags):

rows = [
{"desired_cuda": cuda, "python_version": "3.10", "gpu_arch_type": "cuda"}
for cuda in ("cu126", "cu130", "cu134")
for cuda in ("cu126", "cu132", "cu134")
]
assert kept(rows, "--executorch-runtime") == {"cu130", "cu134"}
assert kept(rows, "--executorch-runtime") == {"cu132", "cu134"}
# A row the other rules keep, so only the flag can drop it. Every row those rules keep on x86
# and on Arm is already CUDA 13, so the assertion above held with the flag's branch deleted and
# could not see it.
Expand Down
8 changes: 4 additions & 4 deletions tests/py/dynamo/executorch/test_update_executorch_pin.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ def test_upper_bound(version, expected):
assert updater._upper_bound(version) == expected


@pytest.mark.parametrize("channel", ["cu126", "cu128", "cu14", "cpu", "cu13"])
@pytest.mark.parametrize("channel", ["cu126", "cu128", "cu130", "cu14", "cpu", "cu13"])
@pytest.mark.unit
def test_main_rejects_unsupported_channels(monkeypatch, channel):
monkeypatch.setattr(
Expand All @@ -186,7 +186,7 @@ def test_main_rejects_unsupported_channels(monkeypatch, channel):
assert error.value.code == 2


@pytest.mark.parametrize("channel", ["cu130", "cu132", "cu134"])
@pytest.mark.parametrize("channel", ["cu132", "cu134"])
@pytest.mark.unit
def test_main_uses_selected_channel(monkeypatch, channel):
calls = []
Expand Down Expand Up @@ -236,8 +236,8 @@ def test_main_refuses_a_version_missing_from_an_accepted_channel(monkeypatch):
def test_main_adopts_a_version_present_in_every_channel_despite_its_label(monkeypatch):
"""The channels label the same build differently, so comparison must ignore the label.

This is the case the index actually produces: one version, three spellings. Comparing the
raw strings finds no overlap at all and rejects every candidate.
This is the case the index actually produces: one version, one spelling per channel. Comparing
the raw strings finds no overlap at all and rejects every candidate.
"""
accepted = updater.delegate_channels()
per_channel = {ch: [f"1.0.dev1+{ch}", f"1.0.dev2+{ch}"] for ch in accepted}
Expand Down
Loading
Loading