diff --git a/.github/workflows/pr-test-multimodal-gen.yml b/.github/workflows/pr-test-multimodal-gen.yml index ca562edf3..742e43757 100644 --- a/.github/workflows/pr-test-multimodal-gen.yml +++ b/.github/workflows/pr-test-multimodal-gen.yml @@ -117,7 +117,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -186,7 +186,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -251,7 +251,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -300,7 +300,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -356,7 +356,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 diff --git a/.github/workflows/pr-test-sgl-kernel.yml b/.github/workflows/pr-test-sgl-kernel.yml index 100517a50..0cfaf43d4 100644 --- a/.github/workflows/pr-test-sgl-kernel.yml +++ b/.github/workflows/pr-test-sgl-kernel.yml @@ -53,7 +53,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -88,7 +88,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -123,7 +123,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -170,7 +170,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -201,7 +201,7 @@ jobs: # with: # path: sgl-kernel/dist/ # merge-multiple: true - # pattern: wheel-python3.10-cuda13.0 + # pattern: wheel-python3.10-cuda* # - name: Install dependencies # run: | diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 558c9bb25..28f310926 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -459,6 +459,8 @@ jobs: include: - python-version: "3.10" cuda-version: "13.0" + - python-version: "3.10" + cuda-version: "12.9" name: Build Wheel steps: - name: Cleanup @@ -519,6 +521,8 @@ jobs: include: - python-version: "3.10" cuda-version: "13.0" + - python-version: "3.10" + cuda-version: "12.9" name: Build Wheel Arm steps: - name: Cleanup @@ -625,7 +629,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -748,7 +752,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -810,7 +814,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -869,7 +873,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -929,7 +933,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -1023,7 +1027,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -1081,7 +1085,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -1161,7 +1165,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -1215,7 +1219,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -1284,7 +1288,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -1359,7 +1363,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 @@ -1421,7 +1425,7 @@ jobs: with: path: sgl-kernel/dist/ merge-multiple: true - pattern: wheel-python3.10-cuda13.0 + pattern: wheel-python3.10-cuda* - name: Install dependencies timeout-minutes: 20 diff --git a/scripts/ci/cuda/ci_install_dependency.sh b/scripts/ci/cuda/ci_install_dependency.sh index 8a2f05bc6..4d04398c9 100755 --- a/scripts/ci/cuda/ci_install_dependency.sh +++ b/scripts/ci/cuda/ci_install_dependency.sh @@ -314,10 +314,23 @@ if [ "${CUSTOM_BUILD_SGL_KERNEL:-}" = "true" ] && [ -d "sgl-kernel/dist" ]; then else WHEEL_ARCH="x86_64" fi - # Wheel may have +cuXYZ suffix (e.g. sglang_kernel-0.4.0+cu130-...) depending on CUDA version - KERNEL_WHL=$(ls sgl-kernel/dist/sglang_kernel-${SGL_KERNEL_VERSION_FROM_KERNEL}*-cp310-abi3-manylinux2014_${WHEEL_ARCH}.whl 2>/dev/null | head -1) + # Wheel filenames carry a +cuXYZ local version tag (e.g. sglang_kernel-0.4.0+cu130-...). + # When the build matrix produces wheels for multiple CUDA versions (e.g. both cu129 and cu130), + # pick the one matching the test runner's $CU_VERSION so we don't trigger the PyPI-fallback reinstall + # below (which would replace the PR-built wheel with a public main-branch wheel). + KERNEL_WHL=$(ls sgl-kernel/dist/sglang_kernel-${SGL_KERNEL_VERSION_FROM_KERNEL}+${CU_VERSION}-cp310-abi3-manylinux2014_${WHEEL_ARCH}.whl 2>/dev/null | head -1) if [ -z "$KERNEL_WHL" ]; then - echo "ERROR: No matching sgl-kernel wheel found in sgl-kernel/dist/ for version ${SGL_KERNEL_VERSION_FROM_KERNEL} arch ${WHEEL_ARCH}" + # Fallback for older branches that only build a single CUDA variant and whose wheel matches + # the current $CU_VERSION. Restrict to the same arch — we intentionally do NOT match a wheel + # whose +cuXYZ tag disagrees with $CU_VERSION here, because the post-install reinstall branch + # below would otherwise silently replace it with the public main-branch wheel. + SINGLE_CUDA_WHL=$(ls sgl-kernel/dist/sglang_kernel-${SGL_KERNEL_VERSION_FROM_KERNEL}-cp310-abi3-manylinux2014_${WHEEL_ARCH}.whl 2>/dev/null | head -1) + if [ -n "$SINGLE_CUDA_WHL" ]; then + KERNEL_WHL="$SINGLE_CUDA_WHL" + fi + fi + if [ -z "$KERNEL_WHL" ]; then + echo "ERROR: No matching sgl-kernel wheel found in sgl-kernel/dist/ for version ${SGL_KERNEL_VERSION_FROM_KERNEL} arch ${WHEEL_ARCH} cuda ${CU_VERSION}" ls -alh sgl-kernel/dist/ exit 1 fi