[diffusion] model: support minimax-h3 (#33275)

Co-authored-by: zhenaozhenfu <zhenaozhenfu@minimaxi.com>
Co-authored-by: BBuf <1182563586@qq.com>
Co-authored-by: andyluo7 <andy.luo@amd.com>
Co-authored-by: Zijie Xia <zijie_xia@icloud.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: chao-xue <877184285@qq.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Mick
2026-08-02 22:32:37 +08:00
committed by GitHub
co-authored by zhenaozhenfu BBuf andyluo7 Zijie Xia Claude Fable 5 chao-xue Cursor
parent 0877a0e2f1
commit 70fe2e0dd5
148 changed files with 22186 additions and 358 deletions
@@ -435,6 +435,55 @@ jobs:
- uses: ./.github/actions/upload-cuda-coredumps
if: failure()
multimodal-gen-test-4-h100:
# Temporarily disabled while the 4-gpu-h100 runner is unstable
if: ${{ false }}
runs-on: 4-gpu-h100
timeout-minutes: 90
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.git_ref || github.sha }}
- uses: ./.github/actions/check-pr-test-health
- uses: ./.github/actions/check-maintenance
- name: Download artifacts
if: inputs.sgl_kernel == 'true'
uses: actions/download-artifact@v4
with:
path: python/sglang/kernels/aot/dist/
merge-multiple: true
pattern: wheel-python3.10-cuda*
- name: Install dependencies
timeout-minutes: 20
run: |
CUSTOM_BUILD_SGL_KERNEL=${{inputs.sgl_kernel}} bash scripts/ci/cuda/ci_install_dependency.sh diffusion
- name: Run MiniMax-H3 PR smoke test
timeout-minutes: 45
env:
RUNAI_STREAMER_MEMORY_LIMIT: 0
SGLANG_TEST_WAIT_SECS: 1800
SGLANG_DIFFUSION_ARTIFACT_DIR: ${{ github.workspace }}/diffusion-failures
run: |
cd python
python3 sglang/multimodal_gen/test/run_suite.py --suite 4-gpu-h100
- name: Upload diffusion failure artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: diffusion-failures-${{ github.job }}-${{ github.run_attempt }}
path: diffusion-failures/
if-no-files-found: ignore
- uses: ./.github/actions/upload-cuda-coredumps
if: failure()
multimodal-gen-unit-test:
if: |
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == 'true') || (inputs.caller_needs_failure != 'true' && !cancelled())) &&
+67 -2
View File
@@ -15,6 +15,11 @@ on:
description: "Docker Hub repo to push to. Use lmsysorg/sglang-staging for testing."
required: false
default: "lmsysorg/sglang"
build_only:
description: "Build and validate one Linux AMD64 CUDA 13 image locally on the runner without logging in or pushing."
required: false
type: boolean
default: false
overlay_dockerfile:
description: "Optional extra Dockerfile lines appended after FROM <base> to build a layered image (e.g. 'RUN pip install ...'). Note: this job has no repo checkout, so only FROM + RUN work — you cannot COPY files from this repo. Leave empty to skip overlay."
required: false
@@ -135,6 +140,7 @@ jobs:
build-and-publish:
needs: prepare
if: ${{ !inputs.build_only }}
uses: ./.github/workflows/_docker-build-and-publish.yml
with:
docker_target: framework_final
@@ -144,9 +150,68 @@ jobs:
image_repo: ${{ inputs.image_repo || 'lmsysorg/sglang' }}
secrets: inherit
build-only:
needs: prepare
if: ${{ inputs.build_only && github.repository == 'sgl-project/sglang' }}
runs-on: x64-docker-build-node
env:
IMAGE: sglang-diffusion-build-only:${{ github.run_id }}-${{ github.run_attempt }}
SOURCE_DIR: source-${{ github.run_id }}-${{ github.run_attempt }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
ref: ${{ needs.prepare.outputs.checkout_ref || github.ref }}
path: ${{ env.SOURCE_DIR }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build CUDA 13 diffusion image locally (no push)
run: |
cd "$SOURCE_DIR"
docker buildx build \
--target framework_final \
--platform linux/amd64 \
--load \
-t "$IMAGE" \
-f docker/Dockerfile \
--build-arg CUDA_VERSION=13.0.1 \
--build-arg BUILD_TYPE=all \
--build-arg GRACE_BLACKWELL=0 \
--build-arg INSTALL_FLASHINFER_JIT_CACHE=1 \
${{ needs.prepare.outputs.extra_build_args }} \
--no-cache \
.
- name: Verify diffusion dependencies
run: |
docker run --rm "$IMAGE" python3 -c '
import importlib
modules = (
"av",
"cache_dit",
"cv2",
"diffusers",
"imageio_ffmpeg",
"moviepy",
"msgpack",
"sglang.multimodal_gen",
"soundfile",
"trimesh",
)
for module in modules:
importlib.import_module(module)
print("diffusion dependency smoke check passed")
'
- name: Remove local test image
if: always()
run: docker image rm "$IMAGE" || true
cleanup-nightly:
needs: build-and-publish
if: ${{ !inputs.tag && !inputs.pr_number }}
if: ${{ !inputs.build_only && !inputs.tag && !inputs.pr_number }}
uses: ./.github/workflows/_docker-cleanup-nightly.yml
with:
tag_prefixes: '["nightly-dev", "nightly-dev-cu12", "nightly-dev-cu13"]'
@@ -155,7 +220,7 @@ jobs:
build-overlay:
needs: [prepare, build-and-publish]
if: ${{ inputs.overlay_dockerfile != '' && github.repository == 'sgl-project/sglang' }}
if: ${{ !inputs.build_only && inputs.overlay_dockerfile != '' && github.repository == 'sgl-project/sglang' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false