diff --git a/.github/workflows/pr-test-extra.yml b/.github/workflows/pr-test-extra.yml index 6a6d356ac..71d42c11e 100644 --- a/.github/workflows/pr-test-extra.yml +++ b/.github/workflows/pr-test-extra.yml @@ -214,6 +214,20 @@ jobs: run_timeout_minutes: '60' secrets: inherit + extra-b-test-deepep-4-gpu-b200: + needs: [check-changes, call-gate, sgl-kernel-build-wheels] + if: ${{ !failure() && !cancelled() && needs.check-changes.result == 'success' && (needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') }} + uses: ./.github/workflows/_pr-test-stage.yml + with: + self_name: extra-b-test-deepep-4-gpu-b200 + runner_config: deepep-4-gpu-b200 + check_changes: ${{ toJson(needs.check-changes.outputs) }} + caller_inputs: ${{ toJson(inputs) }} + partitions: ${{ needs.check-changes.outputs.partitions }} + run_timeout_minutes: '60' + timeout_per_file: '1800' + secrets: inherit + extra-b-test-deepep-8-gpu-h200: needs: [check-changes, call-gate, sgl-kernel-build-wheels] if: ${{ !failure() && !cancelled() && needs.check-changes.result == 'success' && (needs.call-gate.result == 'success' || needs.call-gate.result == 'skipped') }} @@ -243,6 +257,7 @@ jobs: extra-b-test-4-gpu-h100, extra-b-test-4-gpu-b200, extra-b-test-8-gpu-h200, + extra-b-test-deepep-4-gpu-b200, extra-b-test-deepep-8-gpu-h200, ] if: always() diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 9d470df26..3dee8e82d 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -462,13 +462,13 @@ jobs: warmup_server_models: 'lmsys/sglang-ci-dsv3-test:4' secrets: inherit - base-c-test-4-gpu-b200: + base-c-test-deepep-4-gpu-b200: needs: [check-changes, call-gate, wait-for-base-b, sgl-kernel-build-wheels] if: ${{ !failure() && !cancelled() }} uses: ./.github/workflows/_pr-test-stage.yml with: - self_name: base-c-test-4-gpu-b200 - runner_config: 4-gpu-b200 + self_name: base-c-test-deepep-4-gpu-b200 + runner_config: deepep-4-gpu-b200 check_changes: ${{ toJson(needs.check-changes.outputs) }} caller_inputs: ${{ toJson(inputs) }} partitions: ${{ needs.check-changes.outputs.partitions }} @@ -476,27 +476,27 @@ jobs: timeout_per_file: '1800' secrets: inherit - base-c-test-dsv4-4-gpu-b200: + base-c-test-deepep-8-gpu-h200: needs: [check-changes, call-gate, wait-for-base-b, sgl-kernel-build-wheels] if: ${{ !failure() && !cancelled() }} uses: ./.github/workflows/_pr-test-stage.yml with: - self_name: base-c-test-dsv4-4-gpu-b200 - runner_config: dsv4-4-gpu-b200 + self_name: base-c-test-deepep-8-gpu-h200 + runner_config: deepep-8-gpu-h200 check_changes: ${{ toJson(needs.check-changes.outputs) }} caller_inputs: ${{ toJson(inputs) }} partitions: ${{ needs.check-changes.outputs.partitions }} - run_timeout_minutes: '45' + run_timeout_minutes: '30' timeout_per_file: '1800' secrets: inherit - base-c-test-dsv4-8-gpu-h200: + base-c-test-4-gpu-b200: needs: [check-changes, call-gate, wait-for-base-b, sgl-kernel-build-wheels] if: ${{ !failure() && !cancelled() }} uses: ./.github/workflows/_pr-test-stage.yml with: - self_name: base-c-test-dsv4-8-gpu-h200 - runner_config: dsv4-8-gpu-h200 + self_name: base-c-test-4-gpu-b200 + runner_config: 4-gpu-b200 check_changes: ${{ toJson(needs.check-changes.outputs) }} caller_inputs: ${{ toJson(inputs) }} partitions: ${{ needs.check-changes.outputs.partitions }} @@ -531,9 +531,9 @@ jobs: base-c-test-8-gpu-h20, base-c-test-8-gpu-h200, base-c-test-deepep-4-gpu-h100, + base-c-test-deepep-4-gpu-b200, + base-c-test-deepep-8-gpu-h200, base-c-test-4-gpu-b200, - base-c-test-dsv4-4-gpu-b200, - base-c-test-dsv4-8-gpu-h200, # base-c-test-4-gpu-gb200, # Temporarily disabled — no GB200 runner ] if: always() diff --git a/docker/Dockerfile b/docker/Dockerfile index e80b52388..becd26b38 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -548,20 +548,12 @@ RUN --mount=type=cache,target=/root/.cache/pip \ # the `nixl` import path) but unconditionally requires nixl-cu12, so we install # it with --no-deps and pair it with the matching nixl-cu12 / nixl-cu13 binary # to avoid shipping wrong-CUDA libs on cu13 images. -# The upstream flash-mla packages are required for running deepseek-v4 models RUN --mount=type=cache,target=/root/.cache/pip if [ "${CUDA_VERSION%%.*}" = "12" ]; then \ python3 -m pip install nixl nixl-cu12 --no-deps ; \ python3 -m pip install cuda-python==12.9 ; \ - cd /sgl-workspace && git clone https://github.com/deepseek-ai/FlashMLA.git flash-mla \ - && cd flash-mla && git submodule update --init --recursive \ - && pip install --no-build-isolation -v . ; \ elif [ "${CUDA_VERSION%%.*}" = "13" ]; then \ python3 -m pip install nixl nixl-cu13 --no-deps ; \ python3 -m pip install cuda-python==13.2.0 ; \ - cd /sgl-workspace && git clone https://github.com/deepseek-ai/FlashMLA.git flash-mla \ - && ln -s /usr/local/cuda/include/cccl/cuda /usr/local/cuda/include/cuda \ - && cd flash-mla && git submodule update --init --recursive \ - && pip install --no-build-isolation -v . ; \ fi # Add yank script diff --git a/scripts/ci/cuda/ci_install_deepep.sh b/scripts/ci/cuda/ci_install_deepep.sh index 58a963ce2..c78ee649b 100755 --- a/scripts/ci/cuda/ci_install_deepep.sh +++ b/scripts/ci/cuda/ci_install_deepep.sh @@ -150,5 +150,28 @@ else if [ "$NVCC_MAJOR" = "13" ]; then sed -i "/^ include_dirs = \['csrc\/'\]/a\ include_dirs.append('${CUDA_HOME:-/usr/local/cuda}/include/cccl')" setup.py fi - python3 setup.py install + + # Build for both Hopper (sm_90) and Blackwell (sm_100) so the same wheel + # runs on H200 and B200 runners. Mirrors the CUDA-version-keyed list in + # docker/Dockerfile's DeepEP build stage. + if [ -n "${NVCC_VER:-}" ]; then + CUDA_VERSION="$NVCC_VER" + elif command -v nvcc >/dev/null 2>&1; then + CUDA_VERSION=$(nvcc --version | grep -oP 'release \K[0-9]+\.[0-9]+') + else + CUDA_VERSION=$(nvidia-smi | grep "CUDA Version" | head -n1 | awk '{print $9}' || true) + fi + if [ -z "${CUDA_VERSION:-}" ]; then + echo "FATAL: could not determine CUDA toolkit version (NVCC_VER unset, nvcc missing, nvidia-smi empty)" + exit 1 + fi + if [ "$CUDA_VERSION" = "12.8" ]; then + CHOSEN_TORCH_CUDA_ARCH_LIST='9.0;10.0' + elif awk -v ver="$CUDA_VERSION" 'BEGIN {exit !(ver > 12.8)}'; then + # CUDA > 12.8 supports sm_103 (Blackwell) + CHOSEN_TORCH_CUDA_ARCH_LIST='9.0;10.0;10.3' + else + CHOSEN_TORCH_CUDA_ARCH_LIST='9.0' + fi + TORCH_CUDA_ARCH_LIST="${CHOSEN_TORCH_CUDA_ARCH_LIST}" python3 setup.py install fi diff --git a/scripts/ci/cuda/ci_install_dsv4_dep.sh b/scripts/ci/cuda/ci_install_dsv4_dep.sh deleted file mode 100755 index a5b9171af..000000000 --- a/scripts/ci/cuda/ci_install_dsv4_dep.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -set -euxo pipefail - -source scripts/ci/cuda/ci_install_dependency.sh - -if [ -z "${PIP_CMD:-}" ]; then - echo "FATAL:PIP_CMD is unset after sourcing ci_install_dependency.sh" - exit 1 -fi - -export GDRCOPY_HOME=/usr/src/gdrdrv-2.5.1/ -export CUDA_HOME=/usr/local/cuda - -# Detect architecture -ARCH=$(uname -m) -if [ "$ARCH" != "x86_64" ] && [ "$ARCH" != "aarch64" ]; then - echo "Unsupported architecture: $ARCH" - exit 1 -fi - -############################################################################### -# Install FlashMLA -############################################################################### -INSTALL_FLASH_MLA=1 -if [ "${FORCE_REBUILD_FLASH_MLA:-0}" = "1" ]; then - echo "FORCE_REBUILD_FLASH_MLA=1; uninstalling any cached flash_mla before rebuild." - ${PIP_UNINSTALL_CMD:-pip uninstall -y} flash_mla ${PIP_UNINSTALL_SUFFIX:-} || true -elif python3 -c "import flash_mla" >/dev/null 2>&1; then - echo "flash_mla is already installed or importable. Skipping installation." - INSTALL_FLASH_MLA=0 -fi - -if [ "$INSTALL_FLASH_MLA" = "1" ]; then - # CUDA 13.0 puts CCCL headers under /usr/local/cuda/include/cccl/cuda but - # FlashMLA's build expects them at /usr/local/cuda/include/cuda. Symlink so - # the compiler finds them. Idempotent: skip if the link/dir already exists. - if [ ! -e /usr/local/cuda/include/cuda ] && [ -d /usr/local/cuda/include/cccl/cuda ]; then - ln -s /usr/local/cuda/include/cccl/cuda /usr/local/cuda/include/cuda - fi - - FLASH_MLA_DIR=/root/.cache/flash-mla - rm -rf ${FLASH_MLA_DIR} - git clone https://github.com/deepseek-ai/FlashMLA.git ${FLASH_MLA_DIR} - pushd ${FLASH_MLA_DIR} - git submodule update --init --recursive - ${PIP_CMD:-pip} install --no-build-isolation -v . ${PIP_INSTALL_SUFFIX:-} - popd -fi - -############################################################################### -# Install DeepEP -############################################################################### -# Default to a forced rebuild so changes to TORCH_CUDA_ARCH_LIST or any other -# build-time input don't silently reuse a cached deep_ep from a prior run. -INSTALL_DEEPEP=1 -if [ "${FORCE_REBUILD_DEEPEP:-1}" = "1" ]; then - echo "FORCE_REBUILD_DEEPEP=1; uninstalling any cached deep_ep before rebuild." - ${PIP_UNINSTALL_CMD:-pip uninstall -y} deep_ep ${PIP_UNINSTALL_SUFFIX:-} || true -elif python3 -c "import deep_ep" >/dev/null 2>&1; then - echo "deep_ep is already installed or importable. Skipping installation." - INSTALL_DEEPEP=0 -fi - -if [ "$INSTALL_DEEPEP" = "1" ]; then - # Install system dependencies - # Use fallback logic in case apt fails due to unrelated broken packages on the runner - DEEPEP_SYSTEM_DEPS="curl wget git sudo rdma-core infiniband-diags openssh-server perftest libibumad3 libibverbs-dev libibverbs1 ibverbs-providers ibverbs-utils libnl-3-200 libnl-route-3-200 librdmacm1 build-essential cmake" - apt-get install -y --no-install-recommends $DEEPEP_SYSTEM_DEPS || { - echo "Warning: apt-get install failed, checking if required packages are available..." - for pkg in $DEEPEP_SYSTEM_DEPS; do - if ! dpkg -l "$pkg" 2>/dev/null | grep -q "^ii"; then - echo "ERROR: Required package $pkg is not installed and apt-get failed" - exit 1 - fi - done - echo "All required packages are already installed, continuing..." - } - - # Install GDRCopy - rm -rf /opt/gdrcopy && mkdir -p /opt/gdrcopy - cd /opt/gdrcopy - git clone https://github.com/NVIDIA/gdrcopy.git . - git checkout v2.5.1 - apt-get update || true # May fail due to unrelated broken packages - GDRCOPY_DEPS_1="nvidia-dkms-580" - GDRCOPY_DEPS_2="build-essential devscripts debhelper fakeroot pkg-config dkms" - GDRCOPY_DEPS_3="check libsubunit0 libsubunit-dev python3-venv" - for deps_group in "$GDRCOPY_DEPS_1" "$GDRCOPY_DEPS_2" "$GDRCOPY_DEPS_3"; do - apt-get install -y --no-install-recommends $deps_group || { - echo "Warning: apt-get install failed for '$deps_group', checking if packages are available..." - for pkg in $deps_group; do - if ! dpkg -l "$pkg" 2>/dev/null | grep -q "^ii"; then - echo "ERROR: Required package $pkg is not installed and apt-get failed" - exit 1 - fi - done - echo "All required packages from '$deps_group' are already installed, continuing..." - } - done - cd packages - CUDA=/usr/local/cuda ./build-deb-packages.sh - dpkg -i gdrdrv-dkms_*.deb - dpkg -i libgdrapi_*.deb - dpkg -i gdrcopy-tests_*.deb - dpkg -i gdrcopy_*.deb - - # Set up library paths based on architecture - LIB_PATH="/usr/lib/$ARCH-linux-gnu" - if [ ! -e "$LIB_PATH/libmlx5.so" ]; then - ln -s $LIB_PATH/libmlx5.so.1 $LIB_PATH/libmlx5.so - fi - apt-get update || true - apt-get install -y --no-install-recommends libfabric-dev || { - if ! dpkg -l libfabric-dev 2>/dev/null | grep -q "^ii"; then - echo "ERROR: Required package libfabric-dev is not installed and apt-get failed" - exit 1 - fi - echo "libfabric-dev is already installed, continuing..." - } - - # Install DeepEP - DEEPEP_DIR=/root/.cache/deepep - rm -rf ${DEEPEP_DIR} - git clone https://github.com/deepseek-ai/DeepEP.git ${DEEPEP_DIR} - pushd ${DEEPEP_DIR} - git checkout 9af0e0d0e74f3577af1979c9b9e1ac2cad0104ee - popd - - cd ${DEEPEP_DIR} - # CUDA 13.0 puts CCCL headers in /usr/local/cuda/include/cccl/ but nvshmem - # includes them as expecting /usr/local/cuda/include/cuda/. - # Add the cccl path to setup.py include_dirs so the compiler finds them. - NVCC_MAJOR=$(nvcc --version 2>/dev/null | grep -oP 'release \K[0-9]+' || echo "0") - if [ "$NVCC_MAJOR" = "13" ]; then - sed -i "/^ include_dirs = \['csrc\/'\]/a\ include_dirs.append('${CUDA_HOME:-/usr/local/cuda}/include/cccl')" setup.py - fi - - # Build for both Hopper (sm_90) and Blackwell (sm_100) so the same wheel - # runs on H200 and B200 runners. Mirrors the CUDA-version-keyed list in - # docker/Dockerfile's DeepEP build stage. - if [ -n "${NVCC_VER:-}" ]; then - CUDA_VERSION="$NVCC_VER" - elif command -v nvcc >/dev/null 2>&1; then - CUDA_VERSION=$(nvcc --version | grep -oP 'release \K[0-9]+\.[0-9]+') - else - CUDA_VERSION=$(nvidia-smi | grep "CUDA Version" | head -n1 | awk '{print $9}' || true) - fi - if [ -z "${CUDA_VERSION:-}" ]; then - echo "FATAL: could not determine CUDA toolkit version (NVCC_VER unset, nvcc missing, nvidia-smi empty)" - exit 1 - fi - if [ "$CUDA_VERSION" = "12.8" ]; then - CHOSEN_TORCH_CUDA_ARCH_LIST='9.0;10.0' - elif awk -v ver="$CUDA_VERSION" 'BEGIN {exit !(ver > 12.8)}'; then - # CUDA > 12.8 supports sm_103 (Blackwell) - CHOSEN_TORCH_CUDA_ARCH_LIST='9.0;10.0;10.3' - else - CHOSEN_TORCH_CUDA_ARCH_LIST='9.0' - fi - TORCH_CUDA_ARCH_LIST="${CHOSEN_TORCH_CUDA_ARCH_LIST}" python3 setup.py install -fi diff --git a/scripts/ci/runner_configs.yml b/scripts/ci/runner_configs.yml index 2cccf432d..a2e764db7 100644 --- a/scripts/ci/runner_configs.yml +++ b/scripts/ci/runner_configs.yml @@ -17,7 +17,6 @@ _anchors: default_install: &default scripts/ci/cuda/ci_install_dependency.sh deepep_install: &deepep scripts/ci/cuda/ci_install_deepep.sh - dsv4_install: &dsv4 scripts/ci/cuda/ci_install_dsv4_dep.sh runner_configs: 1-gpu-small: { install: *default, artifact_version: v4, install_timeout: "20", runs_on: 1-gpu-5090 } @@ -28,6 +27,5 @@ runner_configs: 8-gpu-h200: { install: *default, artifact_version: v4, install_timeout: "20", runs_on: 8-gpu-h200 } 8-gpu-h20: { install: *deepep, artifact_version: v4, install_timeout: "20", runs_on: 8-gpu-h20, rdma_devices: "mlx5_1,mlx5_2,mlx5_3,mlx5_4" } deepep-4-gpu-h100: { install: *deepep, artifact_version: v4, install_timeout: "20", runs_on: 4-gpu-h100 } - deepep-8-gpu-h200: { install: *deepep, artifact_version: v4, install_timeout: "20", runs_on: 8-gpu-h200-deepep } - dsv4-4-gpu-b200: { install: *dsv4, artifact_version: v6, install_timeout: "30", runs_on: $b200_runner } - dsv4-8-gpu-h200: { install: *dsv4, artifact_version: v4, install_timeout: "30", runs_on: 8-gpu-h200 } + deepep-4-gpu-b200: { install: *deepep, artifact_version: v6, install_timeout: "20", runs_on: $b200_runner } + deepep-8-gpu-h200: { install: *deepep, artifact_version: v4, install_timeout: "20", runs_on: 8-gpu-h200 } diff --git a/test/registered/cp/test_deepseek_v4_flash_fp4_b200_cp.py b/test/registered/cp/test_deepseek_v4_flash_fp4_b200_cp.py index 3cb9b4e1a..f017ce44d 100644 --- a/test/registered/cp/test_deepseek_v4_flash_fp4_b200_cp.py +++ b/test/registered/cp/test_deepseek_v4_flash_fp4_b200_cp.py @@ -21,7 +21,7 @@ from sglang.test.test_utils import ( try_cached_model, ) -register_cuda_ci(est_time=235, stage="extra-b", runner_config="4-gpu-b200") +register_cuda_ci(est_time=235, stage="extra-b", runner_config="deepep-4-gpu-b200") MODEL = "deepseek-ai/DeepSeek-V4-Flash" SERVER_LAUNCH_TIMEOUT = 3600 diff --git a/test/registered/disaggregation/test_disaggregation_dsv4.py b/test/registered/disaggregation/test_disaggregation_dsv4.py index 61e9c8efa..362ba3581 100644 --- a/test/registered/disaggregation/test_disaggregation_dsv4.py +++ b/test/registered/disaggregation/test_disaggregation_dsv4.py @@ -11,7 +11,7 @@ from sglang.test.test_utils import ( try_cached_model, ) -register_cuda_ci(est_time=250, stage="base-c", runner_config="dsv4-8-gpu-h200") +register_cuda_ci(est_time=250, stage="base-c", runner_config="deepep-8-gpu-h200") DSV4_FLASH_MODEL = "sgl-project/DeepSeek-V4-Flash-FP8" diff --git a/test/registered/models_e2e/test_deepseek_v4_flash_fp4_b200.py b/test/registered/models_e2e/test_deepseek_v4_flash_fp4_b200.py index f8536767d..f35faf9ce 100644 --- a/test/registered/models_e2e/test_deepseek_v4_flash_fp4_b200.py +++ b/test/registered/models_e2e/test_deepseek_v4_flash_fp4_b200.py @@ -4,7 +4,7 @@ Launches TP=4 with flashinfer_mxfp4 MoE runner + EAGLE speculative decoding. Runs 12 ServerSanity probes (correctness, streaming, concurrency, determinism) plus a GSM8K accuracy gate. -Registry: base-c-test-dsv4-4-gpu-b200 (per-commit, 4x B200) +Registry: base-c-test-deepep-4-gpu-b200 (per-commit, 4x B200) """ import unittest @@ -20,7 +20,7 @@ from sglang.test.test_utils import ( try_cached_model, ) -register_cuda_ci(est_time=465, stage="base-c", runner_config="dsv4-4-gpu-b200") +register_cuda_ci(est_time=465, stage="base-c", runner_config="deepep-4-gpu-b200") MODEL = "deepseek-ai/DeepSeek-V4-Flash" SERVER_LAUNCH_TIMEOUT = 3600 diff --git a/test/registered/models_e2e/test_deepseek_v4_flash_fp4_h200.py b/test/registered/models_e2e/test_deepseek_v4_flash_fp4_h200.py index 51d352667..882807e35 100644 --- a/test/registered/models_e2e/test_deepseek_v4_flash_fp4_h200.py +++ b/test/registered/models_e2e/test_deepseek_v4_flash_fp4_h200.py @@ -4,7 +4,7 @@ Launches TP=4 with Marlin FP4 MoE runner + EAGLE speculative decoding. Runs 12 ServerSanity probes (correctness, streaming, concurrency, determinism) plus a GSM8K accuracy gate. -Registry: base-c-test-dsv4-8-gpu-h200 (per-commit, 8x H200 — only 4 used by TP=4) +Registry: base-c-test-deepep-8-gpu-h200 (per-commit, 8x H200 — only 4 used by TP=4) """ import unittest @@ -20,7 +20,7 @@ from sglang.test.test_utils import ( try_cached_model, ) -register_cuda_ci(est_time=370, stage="base-c", runner_config="dsv4-8-gpu-h200") +register_cuda_ci(est_time=370, stage="base-c", runner_config="deepep-8-gpu-h200") def _flashinfer_has_sm90_cutlass_mxfp4() -> bool: diff --git a/test/registered/models_e2e/test_deepseek_v4_flash_fp4_megamoe_b200.py b/test/registered/models_e2e/test_deepseek_v4_flash_fp4_megamoe_b200.py index e66a852a4..565df3275 100644 --- a/test/registered/models_e2e/test_deepseek_v4_flash_fp4_megamoe_b200.py +++ b/test/registered/models_e2e/test_deepseek_v4_flash_fp4_megamoe_b200.py @@ -4,7 +4,7 @@ Launches TP=4 with flashinfer_mxfp4 MoE runner + EAGLE speculative decoding. Runs 12 ServerSanity probes (correctness, streaming, concurrency, determinism) plus a GSM8K accuracy gate. -Registry: base-c-test-dsv4-4-gpu-b200 (per-commit, 4x B200) +Registry: extra-b-test-deepep-4-gpu-b200 (label-gated, 4x B200) """ import unittest @@ -20,7 +20,7 @@ from sglang.test.test_utils import ( try_cached_model, ) -register_cuda_ci(est_time=900, stage="base-c", runner_config="dsv4-4-gpu-b200") +register_cuda_ci(est_time=900, stage="extra-b", runner_config="deepep-4-gpu-b200") MODEL = "deepseek-ai/DeepSeek-V4-Flash" SERVER_LAUNCH_TIMEOUT = 3600 diff --git a/test/registered/models_e2e/test_deepseek_v4_flash_fp8_h200.py b/test/registered/models_e2e/test_deepseek_v4_flash_fp8_h200.py index b2bca535f..ed2986ed1 100644 --- a/test/registered/models_e2e/test_deepseek_v4_flash_fp8_h200.py +++ b/test/registered/models_e2e/test_deepseek_v4_flash_fp8_h200.py @@ -5,7 +5,7 @@ with FP4 experts disabled via SGLANG_DSV4_FP4_EXPERTS=0. Runs 12 ServerSanity probes (correctness, streaming, concurrency, determinism) plus a GSM8K accuracy gate. -Registry: base-c-test-dsv4-8-gpu-h200 (per-commit, 8x H200 — only 4 used by TP=4) +Registry: extra-b-test-deepep-8-gpu-h200 (label-gated, 8x H200 — only 4 used by TP=4) """ import unittest @@ -21,7 +21,7 @@ from sglang.test.test_utils import ( try_cached_model, ) -register_cuda_ci(est_time=280, stage="base-c", runner_config="dsv4-8-gpu-h200") +register_cuda_ci(est_time=280, stage="extra-b", runner_config="deepep-8-gpu-h200") MODEL_FP8 = "sgl-project/DeepSeek-V4-Flash-FP8" SERVER_LAUNCH_TIMEOUT = 3600 diff --git a/test/run_suite.py b/test/run_suite.py index 36e1dbfb9..74f03d40d 100644 --- a/test/run_suite.py +++ b/test/run_suite.py @@ -59,8 +59,8 @@ PER_COMMIT_SUITES = { "base-c-test-8-gpu-h200", "base-c-test-8-gpu-b200", "base-c-test-deepep-4-gpu-h100", - "base-c-test-dsv4-4-gpu-b200", - "base-c-test-dsv4-8-gpu-h200", + "base-c-test-deepep-4-gpu-b200", + "base-c-test-deepep-8-gpu-h200", # extra-a / extra-b: label-gated PR opt-in suites in pr-test-extra.yml # (tests still tagged per-commit but skipped on default PR runs). "extra-a-test-1-gpu-small", @@ -69,6 +69,7 @@ PER_COMMIT_SUITES = { "extra-b-test-4-gpu-h100", "extra-b-test-4-gpu-b200", "extra-b-test-8-gpu-h200", + "extra-b-test-deepep-4-gpu-b200", "extra-b-test-deepep-8-gpu-h200", ], HWBackend.NPU: [