[NVIDIA] Add CUDA 13.4 container for initial Rubin support (#36233)
This commit is contained in:
@@ -0,0 +1,104 @@
|
|||||||
|
name: Release Docker Images Nightly (CUDA 13.4 Rubin)
|
||||||
|
#
|
||||||
|
# Builds and publishes nightly CUDA 13.4 / Rubin (sm_107) images from
|
||||||
|
# docker/Dockerfile.cu134, aarch64 only:
|
||||||
|
# - lmsysorg/sglang:nightly-cu134-{date}-{sha}
|
||||||
|
# - lmsysorg/sglang:nightly-cu134
|
||||||
|
#
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
image_repo:
|
||||||
|
description: "Docker Hub repo to push to. Use lmsysorg/sglang-staging for testing."
|
||||||
|
required: false
|
||||||
|
default: "lmsysorg/sglang"
|
||||||
|
docker_target:
|
||||||
|
description: "Dockerfile stage to build and publish."
|
||||||
|
required: false
|
||||||
|
default: "runtime"
|
||||||
|
build_only:
|
||||||
|
description: "Build and validate without logging in or pushing."
|
||||||
|
required: false
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
schedule:
|
||||||
|
# Offset from the other nightly docker builds; this one runs long.
|
||||||
|
- cron: "0 10 * * *"
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-arm64:
|
||||||
|
if: github.repository == 'sgl-project/sglang'
|
||||||
|
runs-on: arm-docker-build-node
|
||||||
|
environment: ${{ (github.event_name == 'schedule' || !inputs.build_only) && 'prod' || null }}
|
||||||
|
# Cold builds recompile three CUDA wheels from source.
|
||||||
|
timeout-minutes: 360
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Delete huge unnecessary tools folder
|
||||||
|
run: rm -rf /opt/hostedtoolcache
|
||||||
|
|
||||||
|
- name: Cleanup workspace (remove root-owned files from prior runs)
|
||||||
|
run: sudo rm -rf "$GITHUB_WORKSPACE"/* || true
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Compute image metadata
|
||||||
|
id: meta
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
date_tag="$(date +%Y%m%d)"
|
||||||
|
commit_hash="$(git rev-parse --short=7 HEAD)"
|
||||||
|
image_repo="${{ inputs.image_repo || 'lmsysorg/sglang' }}"
|
||||||
|
echo "image_repo=${image_repo}" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "tag=nightly-cu134-${date_tag}-${commit_hash}" >> "$GITHUB_OUTPUT"
|
||||||
|
echo "tag_rolling=nightly-cu134" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
|
- name: Login to Docker Hub
|
||||||
|
if: github.event_name == 'schedule' || !inputs.build_only
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build image
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
docker buildx build \
|
||||||
|
--builder default \
|
||||||
|
--progress=plain \
|
||||||
|
--platform linux/arm64 \
|
||||||
|
--target "${{ inputs.docker_target || 'runtime' }}" \
|
||||||
|
--build-arg BRANCH_TYPE=local \
|
||||||
|
--build-arg BUILD_TYPE=all \
|
||||||
|
--build-arg BUILD_JOBS="$(nproc)" \
|
||||||
|
-f docker/Dockerfile.cu134 \
|
||||||
|
-t "${{ steps.meta.outputs.image_repo }}:${{ steps.meta.outputs.tag }}" \
|
||||||
|
-t "${{ steps.meta.outputs.image_repo }}:${{ steps.meta.outputs.tag_rolling }}" \
|
||||||
|
.
|
||||||
|
|
||||||
|
- name: Push image
|
||||||
|
if: github.event_name == 'schedule' || !inputs.build_only
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
push_with_retry() {
|
||||||
|
for i in 1 2 3 4 5; do
|
||||||
|
docker push "$1" && return 0
|
||||||
|
echo "push failed (attempt $i), retrying in 30s"
|
||||||
|
sleep 30
|
||||||
|
done
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
push_with_retry "${{ steps.meta.outputs.image_repo }}:${{ steps.meta.outputs.tag }}"
|
||||||
|
push_with_retry "${{ steps.meta.outputs.image_repo }}:${{ steps.meta.outputs.tag_rolling }}"
|
||||||
|
|
||||||
|
- name: Cleanup local images
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
docker rmi -f "${{ steps.meta.outputs.image_repo }}:${{ steps.meta.outputs.tag }}" || true
|
||||||
|
docker rmi -f "${{ steps.meta.outputs.image_repo }}:${{ steps.meta.outputs.tag_rolling }}" || true
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -20,7 +20,8 @@ set(GITHUB_ARTIFACTORY "github.com" CACHE STRING "GitHub mirror URL")
|
|||||||
find_package(Python COMPONENTS Interpreter Development.Module ${SKBUILD_SABI_COMPONENT} REQUIRED)
|
find_package(Python COMPONENTS Interpreter Development.Module ${SKBUILD_SABI_COMPONENT} REQUIRED)
|
||||||
|
|
||||||
# CXX
|
# CXX
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(SGL_KERNEL_CXX_STANDARD "17" CACHE STRING "C++ standard used for host and CUDA compilation")
|
||||||
|
set(CMAKE_CXX_STANDARD ${SGL_KERNEL_CXX_STANDARD})
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
|
||||||
|
|
||||||
# CUDA
|
# CUDA
|
||||||
@@ -125,7 +126,7 @@ set(SGL_KERNEL_CUDA_FLAGS
|
|||||||
"-Xcompiler"
|
"-Xcompiler"
|
||||||
"-fPIC"
|
"-fPIC"
|
||||||
"-gencode=arch=compute_90,code=sm_90"
|
"-gencode=arch=compute_90,code=sm_90"
|
||||||
"-std=c++17"
|
"-std=c++${SGL_KERNEL_CXX_STANDARD}"
|
||||||
"-DFLASHINFER_ENABLE_F16"
|
"-DFLASHINFER_ENABLE_F16"
|
||||||
"-DCUTE_USE_PACKED_TUPLE=1"
|
"-DCUTE_USE_PACKED_TUPLE=1"
|
||||||
"-DCUTLASS_ENABLE_TENSOR_CORE_MMA=1"
|
"-DCUTLASS_ENABLE_TENSOR_CORE_MMA=1"
|
||||||
@@ -399,7 +400,7 @@ if (SGL_KERNEL_ENABLE_FA3)
|
|||||||
"-Xcompiler"
|
"-Xcompiler"
|
||||||
"-fPIC"
|
"-fPIC"
|
||||||
"-gencode=arch=compute_90a,code=sm_90a"
|
"-gencode=arch=compute_90a,code=sm_90a"
|
||||||
"-std=c++17"
|
"-std=c++${SGL_KERNEL_CXX_STANDARD}"
|
||||||
"-DCUTE_USE_PACKED_TUPLE=1"
|
"-DCUTE_USE_PACKED_TUPLE=1"
|
||||||
"-DCUTLASS_ENABLE_TENSOR_CORE_MMA=1"
|
"-DCUTLASS_ENABLE_TENSOR_CORE_MMA=1"
|
||||||
"-DCUTLASS_VERSIONS_GENERATED"
|
"-DCUTLASS_VERSIONS_GENERATED"
|
||||||
@@ -493,7 +494,7 @@ endif()
|
|||||||
set(INFLLM_FLASH_CUDA_FLAGS
|
set(INFLLM_FLASH_CUDA_FLAGS
|
||||||
"-DNDEBUG"
|
"-DNDEBUG"
|
||||||
"-O3"
|
"-O3"
|
||||||
"-std=c++17"
|
"-std=c++${SGL_KERNEL_CXX_STANDARD}"
|
||||||
"-Xcompiler"
|
"-Xcompiler"
|
||||||
"-fPIC"
|
"-fPIC"
|
||||||
"-U__CUDA_NO_HALF_OPERATORS__"
|
"-U__CUDA_NO_HALF_OPERATORS__"
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
# sm90 dense decode HEAD_DIM_K=512 support (sgl-project/FlashMLA#9, merged).
|
# sm90 dense decode HEAD_DIM_K=512 support (sgl-project/FlashMLA#9, merged).
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
repo-flashmla
|
repo-flashmla
|
||||||
URL https://${GITHUB_ARTIFACTORY}/sgl-project/FlashMLA/archive/05e26647fe840b8baedae486c2d86d5ce4efeb7c.tar.gz
|
URL https://${GITHUB_ARTIFACTORY}/sgl-project/FlashMLA/archive/c1dee569a494b184811a08171a690ece21420262.tar.gz
|
||||||
URL_HASH SHA256=ce369489bbfc42cdfbba9aa949de0270e64469d530748dea9f4f60b3c69dea9b
|
URL_HASH SHA256=77d3f1714b5903dc8f7a99fbc3a5d9a2b886e449f994b6c4b1d2feeacb467b1e
|
||||||
)
|
)
|
||||||
FetchContent_Populate(repo-flashmla)
|
FetchContent_Populate(repo-flashmla)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user