Add 2.8.0 base images and uv images#3034
Conversation
📝 WalkthroughWalkthroughThe GitHub Actions workflow matrix in Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~7 minutes ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/base.yml (1)
70-76: Prune or update commented “nightly” block.Dead commented config referencing Dockerfile-base-nightly can be confusing. Consider removing or adding a note about when to re-enable.
-# - cuda: "128" -# cuda_version: 12.8.1 -# cudnn_version: "" -# python_version: "3.11" -# pytorch: nightly -# torch_cuda_arch_list: "7.0 7.5 8.0 8.6 8.7 8.9 9.0+PTX" -# dockerfile: "Dockerfile-base-nightly" +# Nightly config retained in git history; re-add if needed for upstream testing.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
.github/workflows/base.yml(3 hunks)
🔇 Additional comments (3)
.github/workflows/base.yml (3)
69-69: LGTM: Using Dockerfile-base for the 2.8.0 matrix entry.
57-62: No action needed: Dockerfile-base already supports arbitrary CUDA versionsThe
docker/Dockerfile-basedefinesARG CUDA_VERSION="11.8.0" ARG CUDNN_VERSION="8" ARG UBUNTU_VERSION="22.04" … FROM nvidia/cuda:$CUDA_VERSION-cudnn$CUDNN_VERSION-devel-ubuntu$UBUNTU_VERSION AS base-builderso passing
CUDA_VERSION=12.8.1via your workflow’scuda_versionwill produce the image tag
nvidia/cuda:12.8.1-cudnn8-devel-ubuntu22.04without any changes.Feel free to confirm that this tag exists on Docker Hub, but no modifications to the Dockerfile are required.
132-138: UV base image build-arg parity confirmedAll six matrix variables are declared as ARGs in
docker/Dockerfile-uv-baseand are forwarded as build-args in.github/workflows/base.yml:
- Dockerfile-uv-base defines
- ARG CUDA_VERSION
- ARG CUDNN_VERSION
- ARG CUDA
- ARG PYTHON_VERSION
- ARG PYTORCH_VERSION
- ARG TORCH_CUDA_ARCH_LIST
- The workflow’s
docker/build-push-actionstep passes each of these from the matrix underbuild-args:No changes needed.
| cudnn_version: "" | ||
| python_version: "3.11" | ||
| pytorch: nightly | ||
| pytorch: 2.8.0 |
There was a problem hiding this comment.
💡 Verification agent
🧩 Analysis chain
Verify install channel for PyTorch 2.8.0 + cu128.
Ensure the Dockerfile installs torch==2.8.0 from the correct cu128 index/wheel and that the logic handles CUDA=128.
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Checking how PYTORCH_VERSION and CUDA are used in docker/Dockerfile-base..."
rg -n 'PYTORCH_VERSION|CUDA=' docker/Dockerfile-base
rg -n 'download\.pytorch\.org/whl/cu|pytorch.*index\-url|pip.*torch==' docker/Dockerfile-base
echo "Checking the same for docker/Dockerfile-uv-base..."
rg -n 'PYTORCH_VERSION|CUDA=' docker/Dockerfile-uv-base
rg -n 'download\.pytorch\.org/whl/cu|pytorch.*index\-url|pip.*torch==' docker/Dockerfile-uv-baseLength of output: 1197
🏁 Script executed:
#!/bin/bash
set -euxo pipefail
echo ">> Extracting matrix configuration from .github/workflows/base.yml"
rg -n 'strategy.matrix' .github/workflows/base.yml -A10 -B3
echo
echo ">> Listing matrix dimensions"
rg -n 'matrix\.' .github/workflows/base.yml -n
echo
echo ">> Locating docker/build-push-action and its build-args"
rg -n 'docker/build-push-action' -n .github/workflows/base.yml -A10 -B5Length of output: 223
🏁 Script executed:
#!/bin/bash
set -euxo pipefail
echo ">> Listing all workflow files"
ls .github/workflows
echo
echo ">> Searching for docker/build-push-action usage"
rg -n 'uses:.*docker/build-push-action' .github/workflows -n -A3 || true
echo
echo ">> Searching for build-args in workflows"
rg -n 'build-args' .github/workflows -n -A3 || true
echo
echo ">> Looking for matrix overrides for PYTORCH_VERSION and CUDA"
rg -n 'matrix\.' .github/workflows -n -A3 || trueLength of output: 22138
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Checking availability of PyTorch 2.8.0 + cu128 wheels on the PyTorch index..."
curl -sSL https://download.pytorch.org/whl/cu128/torch_stable.html \
| grep -Eo 'torch-2\.8\.0\+cu128[^"]*' \
|| echo "No matching wheels found for torch-2.8.0+cu128"Length of output: 395
Fix missing PyTorch 2.8.0 + cu128 wheels
The CI matrix includes pytorch: 2.8.0 with cuda: 128, but there are no torch-2.8.0+cu128 wheels on the official cu128 index. Your Dockerfile-base invokes:
python3 -m pip install --no-cache-dir -U torch==${PYTORCH_VERSION}+cu${CUDA} \
--extra-index-url https://download.pytorch.org/whl/cu$CUDAWith PYTORCH_VERSION=2.8.0 and CUDA=128, this will 404.
Please address this by one of the following:
- Remove
cuda: 128from the matrix for PyTorch 2.8.0 until wheels are released. - Upgrade to a PyTorch version that provides cu128 binaries.
- Add conditional logic in
.github/workflows/base.yml(and/orDockerfile-base) to skip or fall back to CPU wheels whencuda=128andpytorch=2.8.0.
Files to update:
.github/workflows/base.yml(matrix or build-args forPYTORCH_VERSION/CUDA)docker/Dockerfile-base(pip install logic)
🤖 Prompt for AI Agents
In .github/workflows/base.yml at line 67, the CI matrix specifies pytorch 2.8.0
with cuda 128, but there are no official torch 2.8.0+cu128 wheels available,
causing installation failures. Fix this by either removing the cuda 128 entry
for pytorch 2.8.0 from the matrix, upgrading pytorch to a version that supports
cu128, or adding conditional logic in the workflow or docker/Dockerfile-base to
skip or fallback to CPU wheels when pytorch is 2.8.0 and cuda is 128.
| - cuda: "128" | ||
| cuda_version: 12.8.1 | ||
| cudnn_version: "" | ||
| python_version: "3.11" | ||
| pytorch: 2.8.0 | ||
| torch_cuda_arch_list: "7.0 7.5 8.0 8.6 8.7 8.9 9.0+PTX" | ||
| dockerfile: "Dockerfile-uv-base" |
There was a problem hiding this comment.
💡 Verification agent
🧩 Analysis chain
UV cu128 + PyTorch 2.8.0: validate cu128 wheel path.
Ensure Dockerfile-uv-base resolves to cu128 wheels (or correct index-url) for torch==2.8.0 and that “CUDA=128” is supported.
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "Double-check cu128 handling for UV Dockerfile..."
rg -n 'CUDA=|PYTORCH_VERSION' docker/Dockerfile-uv-base
rg -n 'download\.pytorch\.org/whl/cu(128|12[0-9])|index-url.*cu(128|12[0-9])' docker/Dockerfile-uv-base || trueLength of output: 398
Ensure Dockerfile-uv-base is built with CUDA=128 and PyTorch 2.8.0
The UV base Dockerfile currently defaults to ARG CUDA="126" and ARG PYTORCH_VERSION="2.6.0", so without explicitly passing your workflow’s cuda: "128" and pytorch: 2.8.0, it will continue installing cu126 wheels and torch 2.6.0.
To fix this:
• In .github/workflows/base.yml (around lines 146–152), when invoking Docker build (e.g. via docker/build-push-action), add:
with:
# …existing fields…
build-args: |
CUDA=${{ matrix.cuda }}
PYTORCH_VERSION=${{ matrix.pytorch }}so that CUDA=128 and PYTORCH_VERSION=2.8.0 are passed through.
• In docker/Dockerfile-uv-base:
– Either update the defaults:
dockerfile ARG CUDA="128" ARG PYTORCH_VERSION="2.8.0"
– Or add logic to select the correct wheel index for cu128 (e.g. --index-url https://download.pytorch.org/whl/cu128).
This ensures the built image actually pulls the cu128 wheel for torch==2.8.0.
🤖 Prompt for AI Agents
In .github/workflows/base.yml around lines 146 to 152, update the Docker build
step to pass the CUDA and PyTorch versions as build arguments by adding a
build-args section with CUDA=${{ matrix.cuda }} and PYTORCH_VERSION=${{
matrix.pytorch }}. Then, in docker/Dockerfile-uv-base, either change the default
ARG values to CUDA="128" and PYTORCH_VERSION="2.8.0" or add conditional logic to
select the appropriate PyTorch wheel index URL for CUDA 128 to ensure the image
installs the correct CUDA and PyTorch versions.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Summary by CodeRabbit