Skip to content

[Release 2.10] Update to Torch 2.10 - final release#30525

Merged
vllm-bot merged 19 commits intovllm-project:mainfrom
atalman:update_to_210
Feb 8, 2026
Merged

[Release 2.10] Update to Torch 2.10 - final release#30525
vllm-bot merged 19 commits intovllm-project:mainfrom
atalman:update_to_210

Conversation

@atalman
Copy link
Copy Markdown
Contributor

@atalman atalman commented Dec 11, 2025

Note

Cursor Bugbot is generating a summary for commit 37af14c52963e6d528866dded7f51985a1fcef7e. Configure here.


Note

Upgrade to PyTorch 2.10.0 across the project

  • Bumps torch/torchaudio/torchvision to 2.10.0 (and torchvision 0.25.0), updates CMake supported torch versions to 2.10.0, and refreshes related deps (triton 3.6.0, nvidia-nvshmem-cu12 3.4.5).
  • Docker: switch PyTorch index to .../whl/test, enable --prerelease=allow for installs, and plumb test indexes in CUDA and CPU images; add extra-index usage to the python-only compile test.
  • CI/tooling: pre-commit pip-compile now uses test cu129 index; Prime-RL script force-reinstalls torch/vision from test cu129.
  • Tests/compile paths: replace version gates from 2.10.0.dev to 2.10.0 and update decorators/env checks accordingly.
  • Requirements files (CUDA/ROCm/build/test) updated to the new versions and indexes for cu129 and rocm7.

Written by Cursor Bugbot for commit 37af14c52963e6d528866dded7f51985a1fcef7e. This will update automatically on new commits. Configure here.

FIX #29595
FIX #33888

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates various dependencies to test the upcoming Torch 2.10 release candidate, primarily by bumping the version of torch and related packages like torchaudio, torchvision, and torchao across multiple configuration files. While the version updates are consistent, I've found a critical issue with how version-specific workarounds are handled. The logic for applying monkey-patches for PyTorch 2.9 bugs has been changed to apply to all future versions (>=2.9.0), which poses a significant forward-compatibility risk. My review provides suggestions to scope these patches to a more limited version range to prevent them from causing issues in future PyTorch releases where the original bugs may be fixed.

@@ -363,7 +363,7 @@ def _update_scheduler_patched(self) -> None:
self.scheduler = Scheduler(self.operations)


if is_torch_equal("2.9.0"):
if is_torch_equal_or_newer("2.9.0"):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

critical

The condition is_torch_equal_or_newer("2.9.0") is too broad. These monkey-patches are workarounds for specific bugs in PyTorch 2.9.0. While they might be necessary for 2.10.0, applying them to all future versions is risky and can lead to conflicts when the bugs are fixed upstream. It's better to scope this to the versions where the patch is known to be needed. A safer approach would be to specify an upper bound, for example, to include versions 2.9.x and 2.10.x but not 2.11.x and newer.

Suggested change
if is_torch_equal_or_newer("2.9.0"):
if is_torch_equal_or_newer("2.9.0") and not is_torch_equal_or_newer("2.11.0"):

@@ -251,6 +251,6 @@ def forward_cuda(self, x: torch.Tensor) -> torch.Tensor:
# See: https://github.com/vllm-project/vllm/issues/27406
# and https://github.com/pytorch/pytorch/issues/166122
# By default, we use CUDNN's convolution ops with optimization.
if self.enable_linear and is_torch_equal("2.9.0"):
if self.enable_linear and is_torch_equal_or_newer("2.9.0"):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

critical

The condition is_torch_equal_or_newer("2.9.0") is too broad. This workaround is for a performance regression in PyTorch 2.9.0. Applying it to all future versions is risky, as the fix might be included in a future release, and this workaround could become detrimental or incorrect. It's better to scope this to the versions where the workaround is known to be needed. A safer approach would be to specify an upper bound, for example, to include versions 2.9.x and 2.10.x but not 2.11.x and newer.

Suggested change
if self.enable_linear and is_torch_equal_or_newer("2.9.0"):
if self.enable_linear and is_torch_equal_or_newer("2.9.0") and not is_torch_equal_or_newer("2.11.0"):

@mergify
Copy link
Copy Markdown

mergify bot commented Dec 11, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

@atalman atalman requested a review from bigPYJ1151 as a code owner December 12, 2025 00:34
@mergify
Copy link
Copy Markdown

mergify bot commented Dec 12, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

2 similar comments
@mergify
Copy link
Copy Markdown

mergify bot commented Dec 12, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

@mergify
Copy link
Copy Markdown

mergify bot commented Dec 12, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

@mergify
Copy link
Copy Markdown

mergify bot commented Dec 13, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

@mergify
Copy link
Copy Markdown

mergify bot commented Dec 15, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

@mergify
Copy link
Copy Markdown

mergify bot commented Dec 15, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

@mergify
Copy link
Copy Markdown

mergify bot commented Dec 16, 2025

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

@mergify
Copy link
Copy Markdown

mergify bot commented Dec 16, 2025

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @atalman.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify
Copy link
Copy Markdown

mergify bot commented Feb 6, 2026

Hi @atalman, the pre-commit checks have failed. Please run:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

Then, commit the changes and push to your branch.

For future commits, pre-commit will run automatically on changed files before each commit.

Tip

Is mypy or markdownlint failing?
mypy and markdownlint are run differently in CI. If the failure is related to either of these checks, please use the following commands to run them locally:
# For mypy (substitute "3.10" with the failing version if needed)
pre-commit run --hook-stage manual mypy-3.10
# For markdownlint
pre-commit run --hook-stage manual markdownlint

Copy link
Copy Markdown
Member

@mgoin mgoin left a comment

Choose a reason for hiding this comment

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

@atalman this looks close to green, maybe all the way in CI. Is this close to merge?

@atalman
Copy link
Copy Markdown
Contributor Author

atalman commented Feb 8, 2026

@mgoin I believe it is. However I don't have the ability to merge in OSS, if someone can assist in merging this would be nice cc @simon-mo

@mgoin
Copy link
Copy Markdown
Member

mgoin commented Feb 8, 2026

Let's go for it, I can't find any clearly failing tests from the logs

@DarkLight1337
Copy link
Copy Markdown
Member

DarkLight1337 commented Feb 9, 2026

After upgrading to torch==2.10.0 / triton==3.6.0, I'm getting this log when starting up vLLM:

ERROR 02-09 08:55:51 [gpt_oss_triton_kernels_moe.py:46] Failed to import Triton kernels. Please make sure your triton version is compatible. Error: cannot import name 'SparseMatrix' from 'triton_kernels.tensor' (/home/cyrus/miniconda3/envs/vllm/lib/python3.10/site-packages/triton_kernels/tensor.py)

It's not blocking for me (I don't use GPT-OSS) but this is worth looking into and fixing.

@johnnynunez
Copy link
Copy Markdown
Contributor

johnnynunez commented Feb 9, 2026

After upgrading to torch==2.10.0 / triton==3.6.0, I'm getting this log when starting up:

ERROR 02-09 08:55:51 [gpt_oss_triton_kernels_moe.py:46] Failed to import Triton kernels. Please make sure your triton version is compatible. Error: cannot import name 'SparseMatrix' from 'triton_kernels.tensor' (/home/cyrus/miniconda3/envs/vllm/lib/python3.10/site-packages/triton_kernels/tensor.py)

It's not blocking for me (I don't use GPT-OSS) but this is worth looking into and fixing.

Because on that version it was moved i think so, that error sounds to me familiar when dgx spark was launched. Anyways triton 3.6.0 has important fixes for dgx spark
Could anyone investigate that? @mgoin @simon-mo

@robertgshaw2-redhat
Copy link
Copy Markdown
Collaborator

After upgrading to torch==2.10.0 / triton==3.6.0, I'm getting this log when starting up:

ERROR 02-09 08:55:51 [gpt_oss_triton_kernels_moe.py:46] Failed to import Triton kernels. Please make sure your triton version is compatible. Error: cannot import name 'SparseMatrix' from 'triton_kernels.tensor' (/home/cyrus/miniconda3/envs/vllm/lib/python3.10/site-packages/triton_kernels/tensor.py)

It's not blocking for me (I don't use GPT-OSS) but this is worth looking into and fixing.

Because on that version it was moved i think so, that error sounds to me familiar when dgx spark was launched. Anyways triton 3.6.0 has important fixes for dgx spark Could anyone investigate that? @mgoin @simon-mo

This is a problem for Hopper, since these are the best kernel for gpt-oss

@mgoin
Copy link
Copy Markdown
Member

mgoin commented Feb 9, 2026

@DarkLight1337 I just tried running myself on H200 with a fresh environment and it worked fine using the triton backend. I think your install might have had some old state if you upgraded in place, such as not rebuilding triton_kernels in our cmake

@eugr
Copy link
Copy Markdown

eugr commented Feb 9, 2026

Yes, works well in my builds too with Triton 3.6.0 and triton-kernels built from the release branch. No errors.
It does not work with Triton built from main branch though because triton-kernels in main are missing matmul_ogs module.

@DarkLight1337
Copy link
Copy Markdown
Member

@DarkLight1337 I just tried running myself on H200 with a fresh environment and it worked fine using the triton backend. I think your install might have had some old state if you upgraded in place, such as not rebuilding triton_kernels in our cmake

Ok let me try rebuilding from scratch

@varun-sundar-rabindranath
Copy link
Copy Markdown
Contributor

I verified running gpt-oss-20b on B200 and H100 as well. Didn't run into any issues - good eval scores.

@mikaylagawarecki
Copy link
Copy Markdown
Contributor

mikaylagawarecki commented Feb 10, 2026

@atalman Was the rocm version used in the AMD docker: build image job bumped by this PR? I still seem to see 2.9.1 in the build on my PR

Pytorch version >= 2.10.0 expected for ROCm build, saw 2.9.1 instead.

https://buildkite.com/vllm/ci/builds/50790/steps/canvas?jid=019c4507-3016-40e5-b3e1-8d50e3fb9ee7&tab=output#019c4507-3016-40e5-b3e1-8d50e3fb9ee7/L5762

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

Labels

ci/build cpu Related to CPU backends documentation Improvements or additions to documentation gpt-oss Related to GPT-OSS models nvidia ready-run-all-tests Trigger CI with all tests for wide-ranging PRs rocm Related to AMD ROCm v1

Projects

Status: Done
Status: Done
Status: Done

Development

Successfully merging this pull request may close these issues.

[Feature]: when support torch 2.10.0 [Bug]: Qwen3-VL-235B-A22B-Instruct Grounding Accuracy Issue in vLLM (>= v0.11.1)