diff --git a/.github/workflows/pr-test-sgl-kernel.yml b/.github/workflows/pr-test-sgl-kernel.yml index b81859ad4..59eabcb60 100644 --- a/.github/workflows/pr-test-sgl-kernel.yml +++ b/.github/workflows/pr-test-sgl-kernel.yml @@ -39,7 +39,7 @@ jobs: - python-version: '3.9' cuda-version: '12.4' - python-version: '3.9' - cuda-version: '12.8' + cuda-version: '12.9' name: Build Wheel (CUDA ${{ matrix.cuda-version }}) steps: - name: Cleanup @@ -56,7 +56,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Build wheel for Python ${{ matrix.python-version }} and CUDA ${{ matrix.cuda-version }} - if: github.event_name != 'push' || (matrix.cuda-version != '11.8' && matrix.cuda-version != '12.8') + if: github.event_name != 'push' || (matrix.cuda-version != '11.8' && matrix.cuda-version != '12.9') run: | cd sgl-kernel chmod +x ./build.sh diff --git a/.github/workflows/release-whl-kernel.yml b/.github/workflows/release-whl-kernel.yml index d80afe5cf..599f2563a 100644 --- a/.github/workflows/release-whl-kernel.yml +++ b/.github/workflows/release-whl-kernel.yml @@ -46,10 +46,89 @@ jobs: pip install twine python3 -m twine upload dist/* -u __token__ -p ${{ secrets.PYPI_TOKEN }} - build-cu128: + build-cu129: if: github.repository == 'sgl-project/sglang' needs: build-cu124 runs-on: sgl-kernel-release-node + strategy: + matrix: + python-version: ['3.9'] + cuda-version: ['12.9'] + steps: + - uses: actions/checkout@v4 + with: + submodules: 'recursive' + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Build wheels + run: | + cd sgl-kernel + chmod +x ./build.sh + ./build.sh "${{ matrix.python-version }}" "${{ matrix.cuda-version }}" + + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: wheel-python${{ matrix.python-version }}-cuda${{ matrix.cuda-version }} + path: sgl-kernel/dist/* + + release-cu129: + needs: build-cu129 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Download artifacts + uses: actions/download-artifact@v4 + with: + path: sgl-kernel/dist/ + merge-multiple: true + pattern: wheel-* + + - name: Set tag name + id: set_tag_name + run: | + if [ -z "${{ inputs.tag_name }}" ]; then + TAG_NAME="v$(cat sgl-kernel/python/sgl_kernel/version.py | cut -d'"' -f2)" + echo "tag_name=$TAG_NAME" >> $GITHUB_OUTPUT + else + echo "tag_name=${{ inputs.tag_name }}" >> $GITHUB_OUTPUT + fi + + - name: Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ steps.set_tag_name.outputs.tag_name }} + repository: sgl-project/whl + token: ${{ secrets.WHL_TOKEN }} + files: | + sgl-kernel/dist/* + + - name: Clone wheel index + run: git clone https://oauth2:${WHL_TOKEN}@github.com/sgl-project/whl.git sgl-whl + env: + WHL_TOKEN: ${{ secrets.WHL_TOKEN }} + + - name: Update wheel index + run: python3 scripts/update_kernel_whl_index.py --cuda 129 + + - name: Push wheel index + run: | + cd sgl-whl + git config --local user.name "github-actions[bot]" + git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add -A + git commit -m "update whl index" + git push + + build-cu128: + if: github.repository == 'sgl-project/sglang' + needs: build-cu129 + runs-on: sgl-kernel-release-node strategy: matrix: python-version: ['3.9'] @@ -76,7 +155,7 @@ jobs: name: wheel-python${{ matrix.python-version }}-cuda${{ matrix.cuda-version }} path: sgl-kernel/dist/* - release: + release-cu128: needs: build-cu128 runs-on: ubuntu-latest steps: diff --git a/sgl-kernel/build.sh b/sgl-kernel/build.sh index 4e18c1743..b8db578b6 100755 --- a/sgl-kernel/build.sh +++ b/sgl-kernel/build.sh @@ -21,7 +21,10 @@ else BUILDER_NAME="pytorch/manylinux2_28-builder" fi -if [ ${CUDA_VERSION} = "12.8" ]; then +if [ ${CUDA_VERSION} = "12.9" ]; then + DOCKER_IMAGE="${BUILDER_NAME}:cuda${CUDA_VERSION}" + TORCH_INSTALL="pip install --no-cache-dir torch==2.8.0 --index-url https://download.pytorch.org/whl/test/cu129" +elif [ ${CUDA_VERSION} = "12.8" ]; then DOCKER_IMAGE="${BUILDER_NAME}:cuda${CUDA_VERSION}" TORCH_INSTALL="pip install --no-cache-dir torch==2.8.0 --index-url https://download.pytorch.org/whl/test/cu128" else