Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/pr-test-multimodal-gen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ on:
sgl_kernel:
required: true
type: string
b200_runner:
required: true
type: string
continue_on_error:
required: false
type: string
Expand Down Expand Up @@ -156,6 +159,53 @@ jobs:
with:
artifact-suffix: ${{ matrix.part }}

multimodal-gen-test-b200:
if: |
(inputs.target_stage == 'multimodal-gen-test-b200') ||
(
!inputs.target_stage &&
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == 'true') || (inputs.caller_needs_failure != 'true' && !cancelled())) &&
inputs.multimodal_gen == 'true'
)
runs-on: ${{ inputs.b200_runner }}
timeout-minutes: 240
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.pr_head_sha || inputs.git_ref || github.sha }}

- uses: ./.github/actions/check-stage-health

- uses: ./.github/actions/check-maintenance

- name: Download artifacts
if: inputs.sgl_kernel == 'true'
uses: actions/download-artifact@v4
with:
path: sgl-kernel/dist/
merge-multiple: true
pattern: wheel-python3.10-cuda12.9

- 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 diffusion server tests
timeout-minutes: 240
env:
RUNAI_STREAMER_MEMORY_LIMIT: 0
CONTINUE_ON_ERROR_FLAG: ${{ inputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
run: |
cd python
python3 sglang/multimodal_gen/test/run_suite.py \
--suite 1-gpu-b200 \
$CONTINUE_ON_ERROR_FLAG

- uses: ./.github/actions/upload-cuda-coredumps
if: always()

multimodal-gen-unit-test:
if: |
(inputs.target_stage == 'multimodal-gen-unit-test') ||
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/pr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -876,6 +876,7 @@ jobs:
(
inputs.target_stage == 'multimodal-gen-test-1-gpu' ||
inputs.target_stage == 'multimodal-gen-test-2-gpu' ||
inputs.target_stage == 'multimodal-gen-test-b200' ||
inputs.target_stage == 'multimodal-gen-unit-test' ||
(
!inputs.target_stage &&
Expand All @@ -887,6 +888,7 @@ jobs:
with:
multimodal_gen: ${{ needs.check-changes.outputs.multimodal_gen }}
sgl_kernel: ${{ needs.check-changes.outputs.sgl_kernel }}
b200_runner: ${{ needs.check-changes.outputs.b200_runner }}
continue_on_error: ${{ needs.check-changes.outputs.continue_on_error }}
pr_head_sha: ${{ inputs.pr_head_sha || '' }}
git_ref: ${{ inputs.git_ref || '' }}
Expand Down
5 changes: 4 additions & 1 deletion python/sglang/multimodal_gen/test/run_suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@
"test_server_2_gpu_b.py",
# add new 2-gpu test files here
],
"1-gpu-b200": [
"test_server_c.py",
],
}

suites_ascend = {
Expand Down Expand Up @@ -78,7 +81,7 @@ def parse_args():
type=str,
required=True,
choices=list(SUITES.keys()),
help="The test suite to run (e.g., 1-gpu, 2-gpu)",
help="The test suite to run (valid names are defined in SUITES)",
)
parser.add_argument(
"--partition-id",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
Usage:
python gen_diffusion_ci_outputs.py --suite 1-gpu --partition-id 0 --total-partitions 2 --out-dir ./output
python gen_diffusion_ci_outputs.py --suite 1-gpu --case-ids qwen_image_t2i flux_image_t2i --out-dir ./output
python gen_diffusion_ci_outputs.py --suite 1-gpu-b200 --out-dir ./output
"""

import argparse
Expand All @@ -27,9 +28,9 @@ def main():
parser.add_argument(
"--suite",
type=str,
choices=["1-gpu", "2-gpu"],
choices=["1-gpu", "2-gpu", "1-gpu-b200"],
required=True,
help="Test suite to run (1-gpu or 2-gpu)",
help="Test suite to run (1-gpu, 2-gpu, or 1-gpu-b200)",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For better maintainability and consistency with run_suite.py, use list(SUITES.keys()) for the choices argument and a generic help message. This avoids the need to manually update this script whenever a new test suite is added to the system.

Suggested change
choices=["1-gpu", "2-gpu", "1-gpu-b200"],
required=True,
help="Test suite to run (1-gpu or 2-gpu)",
help="Test suite to run (1-gpu, 2-gpu, or 1-gpu-b200)",
choices=list(SUITES.keys()),
required=True,
help="Test suite to run (valid names are defined in SUITES)",

)
parser.add_argument(
"--partition-id",
Expand Down
28 changes: 28 additions & 0 deletions python/sglang/multimodal_gen/test/server/test_server_c.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
"""
Config-driven diffusion performance test with pytest parametrization.
"""

from __future__ import annotations

import pytest

from sglang.multimodal_gen.runtime.utils.logging_utils import init_logger
from sglang.multimodal_gen.test.server.test_server_common import ( # noqa: F401
DiffusionServerBase,
diffusion_server,
)
from sglang.multimodal_gen.test.server.testcase_configs import (
ONE_GPU_CASES_C,
DiffusionTestCase,
)

logger = init_logger(__name__)


class TestDiffusionServerOneGpuB200(DiffusionServerBase):
"""B200-targeted smoke tests for 1-GPU diffusion cases."""

@pytest.fixture(params=ONE_GPU_CASES_C, ids=lambda c: c.id)
def case(self, request) -> DiffusionTestCase:
"""Provide a DiffusionTestCase for each 1-GPU B200 test."""
return request.param
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@ def from_req_perf_record(
)
)

# TODO: enable on 4090/5090/b200
# TODO: enable on 4090/5090
ONE_GPU_CASES_C = [
DiffusionTestCase(
"flux_2_nvfp4_t2i",
Expand All @@ -807,6 +807,7 @@ def from_req_perf_record(
modality="image",
),
T2I_sampling_params,
run_perf_check=False,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should enable this

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I'll enable this

)
]

Expand Down
1 change: 1 addition & 0 deletions scripts/ci/utils/slash_command_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,7 @@ def handle_rerun_stage(
"stage-c-test-deepep-8-gpu-h200",
"multimodal-gen-test-1-gpu",
"multimodal-gen-test-2-gpu",
"multimodal-gen-test-b200",
]

# Valid AMD stage names that support target_stage
Expand Down
Loading