Conversation
|
Pushed a follow-up commit aligning the NVIDIA pins with torch 2.14.0. torch pins these with
Unchanged because they already satisfy 2.14: Both new versions are published on the test channel ( Checked the rest of the tree for other NVIDIA pins that might need the same treatment — there are none. Caveat for reviewers: this was hand-edited, not recompiled — I don't have a working |
|
This pull request has merge conflicts that must be resolved before it can be |
7496ef0 to
d934d15
Compare
77bd157 to
0e797b5
Compare
**Summary:** torchao's v1 configs were deprecated as of v0.17.0 and officially removed in v0.18.0. These tests are testing functionality that no longer exist upstream and are causing breakages in vllm-project#52183. Fixes vllm-project#52947. **Tese Plan:** ``` pytest -v -s tests/quantization/test_torchao.py ```
731afae to
1c91ac7
Compare
47d9f16 to
ab79934
Compare
**Summary:** torchao's v1 configs were deprecated as of v0.17.0 and officially removed in v0.18.0. These tests are testing functionality that no longer exist upstream and are causing breakages in vllm-project#52183. Fixes vllm-project#52947. **Tese Plan:** ``` pytest -v -s tests/quantization/test_torchao.py ``` Signed-off-by: andrewor14 <andrewor14@gmail.com>
|
This pull request has merge conflicts that must be resolved before it can be |
….0 (test channel) Update the PyTorch ecosystem to the 2.14.0 release candidate, resolving wheels from the PyTorch test channel (download.pytorch.org/whl/test/...). Mirrors the 2.13.0 test PR vllm-project#45731. - torch: 2.13.0 -> 2.14.0 - torchvision: 0.28.0 -> 0.29.0 - triton: 3.7.1 -> 3.8.0 2.14.0 is published on download.pytorch.org/whl/test/ but not yet on the release index or PyPI, so the index URLs point at the test channel. Verified availability on the test channel before pinning: - torch 2.14.0+cu130, torchvision 0.29.0, triton 3.8.0 all present - triton 3.8.0 is exactly what pytorch release/2.14 pins in .ci/docker/triton_version.txt - torchaudio's newest published version is still 2.11.0 on every channel, so that pin is unchanged ROCm: requirements/build/rocm.txt moves from the rocm7.1 index to test/rocm7.2. rocm7.1 has no torch 2.14.0 wheels; 2.14 is built for rocm7.2 and rocm7.14 only. That file was also still on torch 2.11.0 / triton 3.6.0, so this brings it in line with CMakeLists' TORCH_SUPPORTED_VERSION_ROCM. check-ray-compatibility.sh now offers uv both the stable and test channels (it already runs with --index-strategy unsafe-best-match), so an RC torch pin coming from a transitive dep resolves during the RC window instead of failing against a stable-only index. Same fix as vllm-project#45731. Deliberately not carried over from vllm-project#45731: the xfails and workarounds that were specific to breakages found during 2.12/2.13 CI (pytorch#184431, #187735, reactions to that RC's failures; 2.14 should get whatever it actually needs once CI reports. requirements/build/tpu.txt is also left alone, as TPU torch is bumped separately (vllm-project#50412). Test Plan: full CI (apply the `ready` label to trigger Buildkite). BC-breaking? No - test-channel version bump only. Authored with AI assistance; modeled on vllm-project#45731.
torch 2.14.0 pins these with '==' in its wheel metadata (PYTORCH_EXTRA_INSTALL_REQUIREMENTS in pytorch release/2.14), so the values compiled against 2.13 make requirements/test/cuda.txt unresolvable alongside the new torch: nvidia-cudnn-cu13 9.20.0.48 -> 9.24.0.43 nvidia-nccl-cu13 2.29.7 -> 2.30.7 cuda-toolkit, cuda-bindings, nvidia-cusparselt-cu13 and nvidia-nvshmem-cu13 already satisfy 2.14's requirements and are unchanged. Both new versions are published on the test channel (test/cu130) and on PyPI. Hand-edited rather than recompiled: I could not run 'uv pip compile' here, so a reviewer with a working resolver should regenerate the lockfile to pick up any transitive changes these two bumps imply.
…backend
Every CPU job in the 2.14.0 build fails in the image build:
× No solution found when resolving dependencies:
╰─▶ Because there is no version of torch{...}==2.14.0+cpu and you require
torch{...}==2.14.0+cpu, we can conclude that your requirements are
unsatisfiable.
uv's --torch-backend only knows the stable channels, so it pins the index to
download.pytorch.org/whl/cpu and ignores the --extra-index-url that points at
the test channel. torch 2.14.0+cpu only exists under whl/test/cpu, so nothing
resolves.
Replace --torch-backend cpu with an explicit --extra-index-url built from a
PYTORCH_CPU_INDEX_BASE_URL build-arg, mirroring how Dockerfile handles
PYTORCH_CUDA_INDEX_BASE_URL. Switching channels is now a one-line change on
both the CPU and CUDA sides. UV_INDEX_STRATEGY=unsafe-best-match is already
set in base-common and is inherited by every stage touched here.
torch 2.14.0+cpu, torchaudio 2.11.0+cpu, torchvision 0.29.0+cpu,
torchcodec 0.14.0+cpu and triton 3.8.0 are all present on whl/test/cpu, so
the pinned set in requirements/test/cpu.txt resolves from this one index.
…slowdown torch 2.14.0 makes the CPU model-execution shards run 2-3x slower than 2.13, so `CPU-Language Generation and Pooling` and `CPU-Multi-Modal Model Tests` 1 and 2 are killed by the `timeout` in run-cpu-test.sh (`exit 124`) partway through and produce no signal at all. Measured wall clock on the same `queue=intel-cpu` runners, with an identical test selection (`195 items / 59 deselected / 136 selected` for Multi-Modal 1): | shard | 2.13 | 2.14 | | Language Generation + Pooling | ~30m | killed | | Multi-Modal 1 | 17-21m | killed | | Multi-Modal 2 | ~20m | killed | Raise both steps to 90m, roughly 4x the 2.13 baseline, so the shards run to completion. That tells us the real 2.14 duration and whether they pass at all once they are allowed to finish. This is deliberately a measurement change, not a fix -- it hides a real regression and must be reverted before merge. Tracked upstream at pytorch/pytorch#193951.
With the 90m limit, two of the three affected shards now complete and give us a real measurement of the torch 2.14 CPU slowdown. Comparing pytest-phase durations (not job wall clock, which includes the image build) against the pinned-torch baselines 84265 and 84342, on an identical test selection: | shard | 2.13 | 2.14 | factor | | Multi-Modal 2 | 711s / 781s | 4924s | ~6.6x | | Multi-Modal 1 | 996s / 1286s | >5400s | >4.2x | | Language Gen+Pool | 1473s / 1593s | 3969s | ~2.6x | `CPU-Multi-Modal Model Tests 1` is the heaviest shard and still hit the 90m ceiling, so raise the Multi-Modal step to 120m. The step is templated with `parallelism: 4`, so this applies to all four shards; 2, 3 and 4 finish well under it. Language Generation stays at 90m -- it completes in ~66m. Still a measurement change, not a fix. Revert before merge. Tracked at pytorch/pytorch#193951.
torchao ships per-torch-version builds, and 0.17.0 was built against 2.13. The previous commit in this stack only moved the CUDA pin to the test channel so it would resolve at all; the version itself stayed on 0.17.0. 0.18.0 is the torch 2.14 pairing and is available on both channels this PR needs: - download.pytorch.org/whl/test/cu130 (CUDA quantization lane) - PyPI (the two ROCm quantization lanes, which install torchao without an --index-url; a cu130 index would be wrong there) Updates all three pin sites, including the two in test-amd.yaml that the earlier index-url change missed.
RELEASE-ONLY. The 2.14.0 RC is republished to the PyTorch test channel under an unchanging version string. torch is installed in the `base-common` stage of `docker/Dockerfile.cpu`, which is upstream of the vLLM source COPY, so its layer cache key depends only on the base image and `requirements/cpu.txt` -- neither of which changes when an RC is respun or when the branch is rebased. The ECR registry cache (`--cache-from type=registry`, keyed on the PR/branch rather than the commit) therefore restores the torch layer on every build. In build 84705 the CPU image build reported 28 CACHED layers and never resolved or downloaded torch at all, while the CUDA build in the same run downloaded torch fresh. Add `--no-cache` so the CPU image always installs torch and triton from the test channel. Revert once 2.14.0 is final and published to PyPI.
RELEASE-ONLY. The CPU test shards do not pull the image published by image_build_cpu.sh -- run-cpu-test.sh builds its own image with a plain `docker build`, using the agent's local BuildKit cache. So the `--no-cache` added to image_build_cpu.sh does not cover them. torch is installed in the `base-common` stage of docker/Dockerfile.cpu, which is upstream of the vLLM source COPY, so its layer key depends only on the base image and `requirements/cpu.txt`. Neither changes when the 2.14.0 RC is respun under the same version string, so the cached layer is restored every time. In build 84719 the `CPU-Multi-Modal Model Tests 1` shard reported steps vllm-project#16, vllm-project#6, wheel and could not have exercised the ideep/oneDNN revert. Add `--no-cache` to the shard build, and set `UV_NO_CACHE=1` in the Dockerfile base stage: `--no-cache` re-executes the layer but does not clear the `RUN --mount=type=cache,target=/root/.cache/uv` mount, so uv would still serve the stale same-named wheel from its own cache. Revert both once 2.14.0 is final and published to PyPI.
ab79934 to
002c42b
Compare
**Summary:** torchao's v1 configs were deprecated as of v0.17.0 and officially removed in v0.18.0. These tests are testing functionality that no longer exist upstream and are causing breakages in vllm-project#52183. Fixes vllm-project#52947. **Tese Plan:** ``` pytest -v -s tests/quantization/test_torchao.py ``` Signed-off-by: andrewor14 <andrewor14@gmail.com>
**Summary:** torchao's v1 configs were deprecated as of v0.17.0 and officially removed in v0.18.0. These tests are testing functionality that no longer exist upstream and are causing breakages in vllm-project#52183. Fixes vllm-project#52947. **Tese Plan:** ``` pytest -v -s tests/quantization/test_torchao.py ``` Signed-off-by: andrewor14 <andrewor14@gmail.com>
|
This pull request has merge conflicts that must be resolved before it can be |
Purpose
Update the PyTorch ecosystem to the 2.14.0 release candidate, resolving wheels from the PyTorch test channel (
download.pytorch.org/whl/test/...):torch: → 2.14.0torchvision: → 0.29.0triton: → 3.8.02.14.0 is published on
download.pytorch.org/whl/test/but not yet on the release index / PyPI, so the index URLs point at the test channel. This mirrors the 2.13.0 test PR #45731.Verified availability (test channel) before pinning
torch-2.14.0+cu130: presenttorchvision-0.29.0: presenttriton==3.8.0: present, and is exactly whatpytorchrelease/2.14pins in.ci/docker/triton_version.txttorchaudio: newest published is still 2.11.0 on every channel, so that pin is unchangedROCm
requirements/build/rocm.txtmoves from therocm7.1index totest/rocm7.2.rocm7.1has no torch 2.14.0 wheels — 2.14 is built forrocm7.2androcm7.14only. That file was also still on torch 2.11.0 / triton 3.6.0, so this brings it in line withCMakeLists.txt'sTORCH_SUPPORTED_VERSION_ROCM.Ray dependency-compatibility check
.buildkite/scripts/check-ray-compatibility.shnow offersuvboth the stable and test channels (it already runs with--index-strategy unsafe-best-match), so an RCtorchpin coming from a transitive dep resolves during the RC window instead of failing against a stable-only index. Same fix as #45731.Deliberately not carried over from #45731
That PR also carried fixes reacting to breakages found during 2.12/2.13 CI. Those are not copied here, since 2.14 should get whatever it actually needs once CI reports:
install_flash_attn_rocm.sh(needed because ROCm/pytorch had norelease/2.13branch)verify_torch_wheel.py/UV_NO_VERIFY_HASHESRC-respin handlingrequirements/build/tpu.txtis also left alone — TPU torch is bumped separately (#50412).Test Plan
Full CI (apply the
readylabel to trigger the Buildkite run).BC-breaking?
No — test-channel version bump only.
Authored with AI assistance; modeled on #45731.