ci: decouple stage and runner for cuda registry (#25197)
This commit is contained in:
@@ -16,7 +16,12 @@ __all__ = [
|
||||
"ut_parse_one_file",
|
||||
]
|
||||
|
||||
# `suite` stays in positional slot 2 for backward compat with existing
|
||||
# `register_cpu_ci(5, "stage-a-test-cpu")` style positional calls. New fields
|
||||
# (`stage`, `runner_config`) are kwarg-only.
|
||||
_PARAM_ORDER = ("est_time", "suite", "nightly", "disabled")
|
||||
_KWARG_ONLY = ("stage", "runner_config")
|
||||
_ALL_PARAMS = _PARAM_ORDER + _KWARG_ONLY
|
||||
_UNSET = object()
|
||||
|
||||
|
||||
@@ -31,25 +36,43 @@ class HWBackend(Enum):
|
||||
class CIRegistry:
|
||||
backend: HWBackend
|
||||
filename: str
|
||||
# Estimated time to run the test in seconds.
|
||||
est_time: float
|
||||
# The suite this test is registered in.
|
||||
suite: str
|
||||
# Whether the test is a nightly test.
|
||||
stage: Optional[str] = None
|
||||
runner_config: Optional[str] = None
|
||||
# Legacy single-string suite; kept for nightly/stress/weekly + AMD/CPU/NPU
|
||||
# suites whose names don't follow `{stage}-test-{runner_config}` shape.
|
||||
suite: Optional[str] = None
|
||||
nightly: bool = False
|
||||
# Reason for disabling the test. None = enabled, string = disabled with reason.
|
||||
disabled: Optional[str] = None
|
||||
|
||||
@property
|
||||
def effective_suite(self) -> Optional[str]:
|
||||
if self.stage is not None and self.runner_config is not None:
|
||||
return f"{self.stage}-test-{self.runner_config}"
|
||||
return self.suite
|
||||
|
||||
|
||||
def register_cpu_ci(
|
||||
est_time: float, suite: str, nightly: bool = False, disabled: Optional[str] = None
|
||||
est_time: float,
|
||||
suite: Optional[str] = None,
|
||||
nightly: bool = False,
|
||||
disabled: Optional[str] = None,
|
||||
*,
|
||||
stage: Optional[str] = None,
|
||||
runner_config: Optional[str] = None,
|
||||
):
|
||||
"""Marker for CPU CI registration (parsed via AST; runtime no-op)."""
|
||||
return None
|
||||
|
||||
|
||||
def register_cuda_ci(
|
||||
est_time: float, suite: str, nightly: bool = False, disabled: Optional[str] = None
|
||||
est_time: float,
|
||||
suite: Optional[str] = None,
|
||||
nightly: bool = False,
|
||||
disabled: Optional[str] = None,
|
||||
*,
|
||||
stage: Optional[str] = None,
|
||||
runner_config: Optional[str] = None,
|
||||
):
|
||||
"""Marker for CUDA CI registration (parsed via AST; runtime no-op)."""
|
||||
return None
|
||||
@@ -57,9 +80,12 @@ def register_cuda_ci(
|
||||
|
||||
def register_amd_ci(
|
||||
est_time: float,
|
||||
suite: str,
|
||||
suite: Optional[str] = None,
|
||||
nightly: bool = False,
|
||||
disabled: Optional[str] = None,
|
||||
*,
|
||||
stage: Optional[str] = None,
|
||||
runner_config: Optional[str] = None,
|
||||
):
|
||||
"""Marker for AMD CI registration (parsed via AST; runtime no-op)."""
|
||||
return None
|
||||
@@ -67,9 +93,12 @@ def register_amd_ci(
|
||||
|
||||
def register_npu_ci(
|
||||
est_time: float,
|
||||
suite: str,
|
||||
suite: Optional[str] = None,
|
||||
nightly: bool = False,
|
||||
disabled: Optional[str] = None,
|
||||
*,
|
||||
stage: Optional[str] = None,
|
||||
runner_config: Optional[str] = None,
|
||||
):
|
||||
"""Marker for NPU CI registration (parsed via AST; runtime no-op)."""
|
||||
return None
|
||||
@@ -94,10 +123,8 @@ class RegistryVisitor(ast.NodeVisitor):
|
||||
return node.value
|
||||
return _UNSET
|
||||
|
||||
def _parse_call_args(
|
||||
self, func_call: ast.Call
|
||||
) -> tuple[float, str, bool, Optional[str]]:
|
||||
args = {name: _UNSET for name in _PARAM_ORDER}
|
||||
def _parse_call_args(self, func_call: ast.Call) -> dict:
|
||||
args = {name: _UNSET for name in _ALL_PARAMS}
|
||||
seen = set()
|
||||
|
||||
if any(isinstance(arg, ast.Starred) for arg in func_call.args):
|
||||
@@ -129,23 +156,49 @@ class RegistryVisitor(ast.NodeVisitor):
|
||||
seen.add(kw.arg)
|
||||
args[kw.arg] = self._constant_value(kw.value)
|
||||
|
||||
if args["est_time"] is _UNSET or args["suite"] is _UNSET:
|
||||
if args["est_time"] is _UNSET:
|
||||
raise ValueError(
|
||||
f"{self.filename}: est_time and suite are required constants in {func_call.func.id}()"
|
||||
f"{self.filename}: est_time is a required constant in {func_call.func.id}()"
|
||||
)
|
||||
|
||||
est_time, suite = args["est_time"], args["suite"]
|
||||
nightly_value = args["nightly"]
|
||||
# The only valid (stage, runner_config, suite) shapes are:
|
||||
# (set, set, unset) -> new-style pair
|
||||
# (unset, unset, set) -> legacy single-string
|
||||
# Any other combination is rejected with the actual triple in the error.
|
||||
stage_set = args["stage"] is not _UNSET
|
||||
runner_set = args["runner_config"] is not _UNSET
|
||||
suite_set = args["suite"] is not _UNSET
|
||||
valid_shape = (stage_set and runner_set and not suite_set) or (
|
||||
not stage_set and not runner_set and suite_set
|
||||
)
|
||||
if not valid_shape:
|
||||
raise ValueError(
|
||||
f"{self.filename}: {func_call.func.id}() must specify exactly one of "
|
||||
f"(stage, runner_config) pair or suite; got stage={stage_set}, "
|
||||
f"runner_config={runner_set}, suite={suite_set}"
|
||||
)
|
||||
|
||||
est_time = args["est_time"]
|
||||
if not isinstance(est_time, (int, float)):
|
||||
raise ValueError(
|
||||
f"{self.filename}: est_time must be a number in {func_call.func.id}()"
|
||||
)
|
||||
if not isinstance(suite, str):
|
||||
|
||||
suite = args["suite"] if suite_set else None
|
||||
if suite is not None and not isinstance(suite, str):
|
||||
raise ValueError(
|
||||
f"{self.filename}: suite must be a string in {func_call.func.id}()"
|
||||
)
|
||||
|
||||
stage = args["stage"] if stage_set else None
|
||||
runner_config = args["runner_config"] if runner_set else None
|
||||
for name, value in (("stage", stage), ("runner_config", runner_config)):
|
||||
if value is not None and not isinstance(value, str):
|
||||
raise ValueError(
|
||||
f"{self.filename}: {name} must be a string in {func_call.func.id}()"
|
||||
)
|
||||
|
||||
nightly_value = args["nightly"]
|
||||
if nightly_value is _UNSET:
|
||||
nightly = False
|
||||
elif isinstance(nightly_value, bool):
|
||||
@@ -161,7 +214,14 @@ class RegistryVisitor(ast.NodeVisitor):
|
||||
f"{self.filename}: disabled must be a string in {func_call.func.id}()"
|
||||
)
|
||||
|
||||
return float(est_time), suite, nightly, disabled
|
||||
return {
|
||||
"est_time": float(est_time),
|
||||
"stage": stage,
|
||||
"runner_config": runner_config,
|
||||
"suite": suite,
|
||||
"nightly": nightly,
|
||||
"disabled": disabled,
|
||||
}
|
||||
|
||||
def _collect_ci_registry(self, func_call: ast.Call):
|
||||
if not isinstance(func_call.func, ast.Name):
|
||||
@@ -171,14 +231,11 @@ class RegistryVisitor(ast.NodeVisitor):
|
||||
if backend is None:
|
||||
return None
|
||||
|
||||
est_time, suite, nightly, disabled = self._parse_call_args(func_call)
|
||||
parsed = self._parse_call_args(func_call)
|
||||
return CIRegistry(
|
||||
backend=backend,
|
||||
filename=self.filename,
|
||||
est_time=est_time,
|
||||
suite=suite,
|
||||
nightly=nightly,
|
||||
disabled=disabled,
|
||||
**parsed,
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -155,7 +155,9 @@ def generate_summary_section(data: dict) -> str:
|
||||
for t in sorted(disabled_tests, key=lambda x: (x.backend.name, x.filename)):
|
||||
test_name = get_test_basename(t.filename)
|
||||
reason = t.disabled[:50] + "..." if len(t.disabled) > 50 else t.disabled
|
||||
lines.append(f"| `{test_name}` | {t.backend.name} | {t.suite} | {reason} |")
|
||||
lines.append(
|
||||
f"| `{test_name}` | {t.backend.name} | {t.effective_suite} | {reason} |"
|
||||
)
|
||||
lines.append("\n</details>\n")
|
||||
|
||||
return "\n".join(lines)
|
||||
@@ -197,7 +199,7 @@ def generate_by_folder_section(data: dict) -> str:
|
||||
else ("Nightly" if t.nightly else "Per-Commit")
|
||||
)
|
||||
lines.append(
|
||||
f"| `{test_name}` | {t.suite} | {t.est_time:.0f}s | {status} |"
|
||||
f"| `{test_name}` | {t.effective_suite} | {t.est_time:.0f}s | {status} |"
|
||||
)
|
||||
|
||||
lines.append("")
|
||||
@@ -231,7 +233,7 @@ def generate_by_suite_section(data: dict) -> str:
|
||||
# Group by suite within backend
|
||||
backend_suites = defaultdict(list)
|
||||
for t in backend_tests:
|
||||
backend_suites[t.suite].append(t)
|
||||
backend_suites[t.effective_suite].append(t)
|
||||
|
||||
for suite in sorted(backend_suites.keys()):
|
||||
suite_tests = backend_suites[suite]
|
||||
@@ -336,7 +338,7 @@ def generate_json_report(tests: list[CIRegistry]) -> str:
|
||||
data["tests_by_folder"][folder]["backends"][backend] = [
|
||||
{
|
||||
"filename": get_test_basename(t.filename),
|
||||
"suite": t.suite,
|
||||
"suite": t.effective_suite,
|
||||
"est_time": t.est_time,
|
||||
"status": (
|
||||
"disabled"
|
||||
@@ -355,7 +357,7 @@ def generate_json_report(tests: list[CIRegistry]) -> str:
|
||||
|
||||
backend_suites = defaultdict(list)
|
||||
for t in backend_tests:
|
||||
backend_suites[t.suite].append(t)
|
||||
backend_suites[t.effective_suite].append(t)
|
||||
|
||||
data["tests_by_suite"][backend] = {
|
||||
"total": len(backend_tests),
|
||||
@@ -423,7 +425,7 @@ def generate_json_report(tests: list[CIRegistry]) -> str:
|
||||
{
|
||||
"filename": get_test_basename(t.filename),
|
||||
"backend": t.backend.name,
|
||||
"suite": t.suite,
|
||||
"suite": t.effective_suite,
|
||||
"reason": t.disabled,
|
||||
}
|
||||
)
|
||||
|
||||
@@ -88,7 +88,7 @@ def compute_partitions(tests, full_parallel=False):
|
||||
continue
|
||||
if t.nightly or t.disabled is not None:
|
||||
continue
|
||||
suite_tests[t.suite].append(t)
|
||||
suite_tests[t.effective_suite].append(t)
|
||||
|
||||
result = {}
|
||||
for suite, group in suite_tests.items():
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=1800, suite="stage-c-test-4-gpu-gb200")
|
||||
register_cuda_ci(est_time=1800, stage="stage-c", runner_config="4-gpu-gb200")
|
||||
|
||||
|
||||
class TestDeepseekR1Nvfp4CuteDSLDeepEP(CustomTestCase):
|
||||
|
||||
@@ -3,8 +3,8 @@ import unittest
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.gpt_oss_common import BaseTestGptOss
|
||||
|
||||
register_cuda_ci(est_time=392, suite="stage-c-test-4-gpu-h100")
|
||||
register_cuda_ci(est_time=740, suite="stage-c-test-4-gpu-b200")
|
||||
register_cuda_ci(est_time=392, stage="stage-c", runner_config="4-gpu-h100")
|
||||
register_cuda_ci(est_time=740, stage="stage-c", runner_config="4-gpu-b200")
|
||||
|
||||
|
||||
class TestGptOss4Gpu(BaseTestGptOss):
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=710, suite="stage-c-test-4-gpu-b200")
|
||||
register_cuda_ci(est_time=710, stage="stage-c", runner_config="4-gpu-b200")
|
||||
|
||||
NEMOTRON_3_SUPER_NVFP4_MODEL = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4"
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=540, suite="stage-c-test-4-gpu-b200")
|
||||
register_cuda_ci(est_time=540, stage="stage-c", runner_config="4-gpu-b200")
|
||||
|
||||
QWEN35_FP4_MODEL = "nvidia/Qwen3.5-397B-A17B-NVFP4"
|
||||
ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}}
|
||||
|
||||
@@ -22,7 +22,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=540, suite="stage-c-test-4-gpu-h100")
|
||||
register_cuda_ci(est_time=540, stage="stage-c", runner_config="4-gpu-h100")
|
||||
|
||||
QWEN35_27B_MODEL = "Qwen/Qwen3.5-27B"
|
||||
ACC_THRESHOLDS = {QWEN35_27B_MODEL: {"gsm8k": 0.8}}
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=260, suite="stage-c-test-4-gpu-b200")
|
||||
register_cuda_ci(est_time=260, stage="stage-c", runner_config="4-gpu-b200")
|
||||
|
||||
QWEN35_FP4_MODEL = "nvidia/Qwen3.5-397B-A17B-NVFP4"
|
||||
ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}}
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=261, suite="stage-c-test-4-gpu-h100")
|
||||
register_cuda_ci(est_time=261, stage="stage-c", runner_config="4-gpu-h100")
|
||||
|
||||
QWEN3_30B_MODEL_PATH = "Qwen/Qwen3-30B-A3B-FP8"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ from sglang.test.kits.kl_divergence_kit import KLDivergenceMixin
|
||||
from sglang.test.kits.prefix_cache_branching_kit import PrefixCacheBranchingMixin
|
||||
from sglang.test.server_fixtures.default_fixture import DefaultServerBase
|
||||
|
||||
register_cuda_ci(est_time=290, suite="stage-c-test-4-gpu-h100")
|
||||
register_cuda_ci(est_time=290, stage="stage-c", runner_config="4-gpu-h100")
|
||||
|
||||
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=492, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=492, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=309, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=309, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
FULL_DEEPSEEK_V3_MODEL_PATH = "deepseek-ai/DeepSeek-V3-0324"
|
||||
|
||||
|
||||
@@ -12,7 +12,9 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=720, suite="stage-c-test-8-gpu-h200", nightly=True)
|
||||
register_cuda_ci(
|
||||
est_time=720, stage="stage-c", runner_config="8-gpu-h200", nightly=True
|
||||
)
|
||||
|
||||
GLM5_MODEL_PATH = "zai-org/GLM-5-FP8"
|
||||
|
||||
|
||||
@@ -18,7 +18,8 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=1048,
|
||||
suite="stage-c-test-8-gpu-h200",
|
||||
stage="stage-c",
|
||||
runner_config="8-gpu-h200",
|
||||
)
|
||||
|
||||
FULL_DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||
|
||||
@@ -6,7 +6,7 @@ from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
|
||||
from sglang.test.server_fixtures.default_fixture import DefaultServerBase
|
||||
from sglang.test.server_fixtures.mmmu_fixture import MMMUServerBase
|
||||
|
||||
register_cuda_ci(est_time=610, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=610, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
|
||||
class TestMiMoV2Flash(GSM8KMixin, SpecDecodingMixin, DefaultServerBase):
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=307, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=307, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
MINIMAX_M25_MODEL_PATH = "MiniMaxAI/MiniMax-M2.5"
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=376, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=376, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
NEMOTRON_3_SUPER_BF16_MODEL = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16"
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=600, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=600, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=663, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=663, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
STEP3P5_FLASH_MODEL_PATH = "stepfun-ai/Step-3.5-Flash"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.srt.layers.attention.fla.fused_recurrent import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=11, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=11, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
|
||||
@unittest.skipIf(not torch.cuda.is_available(), "Test requires CUDA")
|
||||
|
||||
@@ -9,7 +9,7 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
# Triton kernel unit test for KV indices creation
|
||||
register_cuda_ci(est_time=7, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=7, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=10, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# FlashAttention4 integration test (requires SM 100+ / Blackwell B200)
|
||||
register_cuda_ci(est_time=265, suite="stage-b-test-4-gpu-b200")
|
||||
register_cuda_ci(est_time=265, stage="stage-b", runner_config="4-gpu-b200")
|
||||
|
||||
|
||||
@unittest.skipIf(get_device_sm() < 100, "Test requires CUDA SM 100 or higher")
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.srt.layers.attention.fla.fused_sigmoid_gating_recurrent import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=7, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=7, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
|
||||
def _make_noncontiguous_ab(batch, num_heads, dtype=torch.bfloat16, device="cuda"):
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
# Hybrid attention backend tests (FA3 prefill + FlashInfer decode, requires SM 90+ / H100)
|
||||
# Multiple test classes: base, MLA, TorchCompile, SpecDecode variants
|
||||
register_cuda_ci(est_time=407, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=407, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
GSM_DATASET_PATH = None
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.srt.layers.attention.fla.kda import (
|
||||
from sglang.srt.utils.common import get_device
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=12, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=12, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
|
||||
@unittest.skipIf(
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
# Register this test for CUDA CI in stage-b (fast attention/kernel tests)
|
||||
register_cuda_ci(est_time=11, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=11, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
|
||||
def reference_normal_decode_set_metadata(
|
||||
|
||||
@@ -18,7 +18,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# Torch native attention backend integration test with MMLU eval
|
||||
register_cuda_ci(est_time=140, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=140, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=150, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# Triton attention backend integration test with latency benchmark and MMLU eval
|
||||
register_cuda_ci(est_time=177, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=177, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=1400, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase, is_in_amd_ci
|
||||
|
||||
# Triton attention kernel unit tests (decode, extend, prefill)
|
||||
register_cuda_ci(est_time=19, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=19, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=30, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# Sliding window attention with Triton backend (Gemma-3 model)
|
||||
register_cuda_ci(est_time=93, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=93, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=200, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=126, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=126, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=1100, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# CI Registration — large suite to fit the integration test's server startup.
|
||||
register_cuda_ci(est_time=79, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=79, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
|
||||
def _skip_if_no_cuda(test_func):
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=120, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=120, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=179, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_deterministic_utils import (
|
||||
)
|
||||
from sglang.test.test_utils import is_in_amd_ci
|
||||
|
||||
register_cuda_ci(est_time=207, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=207, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=278, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
CustomTestCase,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=77, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=77, stage="stage-b", runner_config="1-gpu-small")
|
||||
|
||||
|
||||
class TestEngineChildPids(CustomTestCase):
|
||||
|
||||
@@ -23,7 +23,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=107, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=107, stage="stage-b", runner_config="2-gpu-large")
|
||||
|
||||
|
||||
PROMPT = (
|
||||
|
||||
@@ -5,7 +5,7 @@ import torch
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.gpt_oss_common import BaseTestGptOss
|
||||
|
||||
register_cuda_ci(est_time=345, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=345, stage="stage-b", runner_config="1-gpu-small")
|
||||
|
||||
|
||||
@unittest.skipIf(not torch.cuda.is_available(), "CUDA is not available")
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.srt.utils import get_device, is_hip
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST, CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=45, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=45, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=55, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
_is_hip = is_hip()
|
||||
|
||||
@@ -4,7 +4,7 @@ from unittest.mock import MagicMock, patch
|
||||
from sglang.srt.server_args import ServerArgs
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=9, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=9, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=1, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
||||
send_generate_requests,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=53, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=53, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=70, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ from sglang.test.test_utils import (
|
||||
run_logprob_check,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=134, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=134, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=130, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ from sglang.test.test_utils import (
|
||||
CustomTestCase,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=387, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=387, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=261, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,8 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=616,
|
||||
suite="stage-c-test-deepep-8-gpu-h200",
|
||||
stage="stage-c",
|
||||
runner_config="deepep-8-gpu-h200",
|
||||
)
|
||||
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=10,
|
||||
suite="stage-a-test-1-gpu-small",
|
||||
stage="stage-a",
|
||||
runner_config="1-gpu-small",
|
||||
disabled="Manual only: triggers intentional CUDA crash for coredump verification",
|
||||
)
|
||||
|
||||
|
||||
@@ -19,7 +19,8 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=9,
|
||||
suite="stage-b-test-1-gpu-small",
|
||||
stage="stage-b",
|
||||
runner_config="1-gpu-small",
|
||||
disabled="Test uses pytest-style function without TestCase class - see #17145",
|
||||
)
|
||||
register_amd_ci(
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
||||
DEFAULT_TARGET_MODEL_EAGLE3,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=509, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=509, stage="stage-b", runner_config="2-gpu-large")
|
||||
|
||||
|
||||
class TestDisaggregationAccuracy(PauseResumeInPlaceMixin, PDDisaggregationServerBase):
|
||||
|
||||
@@ -19,7 +19,8 @@ from sglang.test.test_utils import (
|
||||
# Increasing estimated time since we run evaluation twice
|
||||
register_cuda_ci(
|
||||
est_time=600,
|
||||
suite="stage-b-test-2-gpu-large",
|
||||
stage="stage-b",
|
||||
runner_config="2-gpu-large",
|
||||
disabled="Temporarily disable the flaky test.",
|
||||
)
|
||||
|
||||
|
||||
@@ -26,7 +26,8 @@ from sglang.test.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST_QWEN
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=300,
|
||||
suite="stage-a-test-1-gpu-small",
|
||||
stage="stage-a",
|
||||
runner_config="1-gpu-small",
|
||||
disabled="Intel XPU only — not available in standard CUDA CI",
|
||||
)
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.srt.disaggregation.decode_kvcache_offload_manager import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=8, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=8, stage="stage-b", runner_config="1-gpu-small")
|
||||
|
||||
|
||||
def _make_mock_req(
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=91, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=91, stage="stage-b", runner_config="2-gpu-large")
|
||||
register_amd_ci(est_time=73, suite="stage-b-test-2-gpu-large-amd")
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_pd_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=300, suite="stage-c-test-4-gpu-gb200")
|
||||
register_cuda_ci(est_time=300, stage="stage-c", runner_config="4-gpu-gb200")
|
||||
|
||||
|
||||
class TestDisaggregationMooncakeAARCH64Accuracy(PDDisaggregationServerBase):
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=300, suite="stage-c-test-8-gpu-h20")
|
||||
register_cuda_ci(est_time=300, stage="stage-c", runner_config="8-gpu-h20")
|
||||
|
||||
|
||||
def _has_nixl():
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=375, suite="stage-c-test-8-gpu-h20")
|
||||
register_cuda_ci(est_time=375, stage="stage-c", runner_config="8-gpu-h20")
|
||||
|
||||
|
||||
class TestDisaggregationMooncakePrefillLargerTP(PDDisaggregationServerBase):
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=443, suite="stage-c-test-8-gpu-h20")
|
||||
register_cuda_ci(est_time=443, stage="stage-c", runner_config="8-gpu-h20")
|
||||
|
||||
|
||||
class TestDisaggregationDPAttention(PDDisaggregationServerBase):
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=250, suite="stage-c-test-dsv4-8-gpu-h200")
|
||||
register_cuda_ci(est_time=250, stage="stage-c", runner_config="dsv4-8-gpu-h200")
|
||||
|
||||
DSV4_FLASH_MODEL = "sgl-project/DeepSeek-V4-Flash-FP8"
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_pd_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=695, suite="stage-c-test-8-gpu-h200")
|
||||
register_cuda_ci(est_time=695, stage="stage-c", runner_config="8-gpu-h200")
|
||||
|
||||
|
||||
@unittest.skipIf(is_in_ci(), "Temporarily disable the flaky test.")
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=216, suite="stage-c-test-8-gpu-h20")
|
||||
register_cuda_ci(est_time=216, stage="stage-c", runner_config="8-gpu-h20")
|
||||
|
||||
|
||||
class TestDisaggregationPrefillPPAccuracy(PDDisaggregationServerBase):
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=420, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=420, stage="stage-b", runner_config="2-gpu-large")
|
||||
|
||||
|
||||
class TestDPAttentionDP2TP2(
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.srt.utils import get_cuda_driver_bindings, is_flashinfer_available
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=30, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=30, stage="stage-b", runner_config="2-gpu-large")
|
||||
|
||||
WORLD_SIZE = 2
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ from sglang.utils import terminate_process
|
||||
|
||||
mp.set_start_method("spawn", force=True)
|
||||
|
||||
register_cuda_ci(est_time=145, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=145, stage="stage-b", runner_config="2-gpu-large")
|
||||
register_amd_ci(est_time=72, suite="stage-b-test-2-gpu-large-amd")
|
||||
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ import pytest
|
||||
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=8, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=8, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=8, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
# Import the actual parallel_state module
|
||||
|
||||
@@ -32,7 +32,7 @@ from sglang.test.test_utils import (
|
||||
run_bench_one_batch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=554, suite="stage-c-test-4-gpu-h100")
|
||||
register_cuda_ci(est_time=554, stage="stage-c", runner_config="4-gpu-h100")
|
||||
register_amd_ci(est_time=650, suite="stage-c-test-4-gpu-amd")
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=139, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=139, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=330, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
import unittest
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=1800, suite="stage-c-test-dsv4-4-gpu-b200")
|
||||
register_cuda_ci(est_time=1800, stage="stage-c", runner_config="dsv4-4-gpu-b200")
|
||||
|
||||
MODEL = "deepseek-ai/DeepSeek-V4-Flash"
|
||||
SERVER_LAUNCH_TIMEOUT = 3600
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=1800, suite="stage-c-test-dsv4-8-gpu-h200")
|
||||
register_cuda_ci(est_time=1800, stage="stage-c", runner_config="dsv4-8-gpu-h200")
|
||||
|
||||
|
||||
def _flashinfer_has_sm90_cutlass_mxfp4() -> bool:
|
||||
|
||||
@@ -22,7 +22,7 @@ from sglang.test.test_utils import (
|
||||
try_cached_model,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=900, suite="stage-c-test-dsv4-8-gpu-h200")
|
||||
register_cuda_ci(est_time=900, stage="stage-c", runner_config="dsv4-8-gpu-h200")
|
||||
|
||||
MODEL_FP8 = "sgl-project/DeepSeek-V4-Flash-FP8"
|
||||
SERVER_LAUNCH_TIMEOUT = 3600
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=528, suite="stage-c-test-deepep-8-gpu-h200")
|
||||
register_cuda_ci(est_time=528, stage="stage-c", runner_config="deepep-8-gpu-h200")
|
||||
|
||||
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=478, suite="stage-c-test-deepep-4-gpu-h100")
|
||||
register_cuda_ci(est_time=478, stage="stage-c", runner_config="deepep-4-gpu-h100")
|
||||
|
||||
|
||||
class TestPureDP(CustomTestCase):
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=82, suite="stage-c-test-deepep-4-gpu-h100")
|
||||
register_cuda_ci(est_time=82, stage="stage-c", runner_config="deepep-4-gpu-h100")
|
||||
|
||||
ib_devices = get_rdma_devices_args()
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
from sglang.utils import wait_for_http_ready
|
||||
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=200, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
|
||||
@unittest.skipIf(is_hip(), "HiCache + EAGLE3 file-storage loadback e2e is CUDA-only.")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=99, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=99, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=300, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
import time
|
||||
|
||||
@@ -13,7 +13,7 @@ from test_hicache_storage_file_backend import HiCacheStorageBaseMixin
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=150, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=150, stage="stage-b", runner_config="2-gpu-large")
|
||||
register_amd_ci(est_time=300, suite="stage-b-test-2-gpu-large")
|
||||
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
from sglang.utils import wait_for_http_ready
|
||||
|
||||
register_cuda_ci(est_time=148, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=148, stage="stage-b", runner_config="2-gpu-large")
|
||||
register_amd_ci(est_time=526, suite="stage-b-test-2-gpu-large-amd")
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
||||
is_in_ci,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=236, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=236, stage="stage-b", runner_config="2-gpu-large")
|
||||
|
||||
|
||||
class HiCacheStorageMooncakeBackendBaseMixin(HiCacheStorageBaseMixin):
|
||||
|
||||
@@ -28,7 +28,7 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
from sglang.utils import wait_for_http_ready
|
||||
|
||||
register_cuda_ci(est_time=139, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=139, stage="stage-b", runner_config="2-gpu-large")
|
||||
|
||||
|
||||
class TestHiCacheStorageRuntimeAttachDetach(CustomTestCase):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=450, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=450, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=524, suite="stage-b-test-1-gpu-small-amd")
|
||||
"""
|
||||
Consolidated HiCache variant tests.
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=42, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=42, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=38, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=43, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=43, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=43, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
CHUNKED_PREFILL_SIZE = 256
|
||||
|
||||
@@ -24,7 +24,7 @@ from sglang.srt.model_executor.forward_batch_info import ForwardBatch, ForwardMo
|
||||
from sglang.srt.server_args import ServerArgs, set_global_server_args_for_scheduler
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=18, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=18, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
# Global configuration for all indexer tests
|
||||
DEFAULT_CONFIG = {
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_programs import (
|
||||
)
|
||||
from sglang.test.test_utils import DEFAULT_MODEL_NAME_FOR_TEST, CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=79, suite="stage-a-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=79, stage="stage-a", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=120, suite="stage-a-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=11, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=11, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=25, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
# Adapted from https://github.com/vllm-project/vllm/blob/main/tests/kernels/mamba/test_causal_conv1d.py
|
||||
|
||||
@@ -18,7 +18,7 @@ from sglang.srt.distributed.parallel_state import (
|
||||
from sglang.srt.utils import get_device, get_device_count
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=32, suite="stage-b-test-2-gpu-large")
|
||||
register_cuda_ci(est_time=32, stage="stage-b", runner_config="2-gpu-large")
|
||||
|
||||
NUM_GPUS = 2
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=10, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=10, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=20, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
# Adapted from https://github.com/vllm-project/vllm/blob/633f943e30a4444d890d26b81850f7217736f840/tests/kernels/mamba/test_mamba_ssm_ssd.py
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=10, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=10, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=34, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
# Adapted from https://github.com/vllm-project/vllm/blob/633f943e30a4444d890d26b81850f7217736f840/tests/kernels/mamba/test_mamba_ssm_ssd.py
|
||||
|
||||
@@ -19,7 +19,8 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=60,
|
||||
suite="stage-b-test-2-gpu-large",
|
||||
stage="stage-b",
|
||||
runner_config="2-gpu-large",
|
||||
disabled="Temporarily disabled",
|
||||
)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
# ==============================================================================
|
||||
|
||||
register_cuda_ci(est_time=28, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=28, stage="stage-b", runner_config="1-gpu-large")
|
||||
|
||||
|
||||
def round_up(x, base):
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.test.lora_utils import (
|
||||
)
|
||||
from sglang.test.test_utils import is_in_ci
|
||||
|
||||
register_cuda_ci(est_time=100, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=100, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=100, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
MOCK_START_TIME = 1000.0
|
||||
|
||||
@@ -23,7 +23,7 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.runners import SRTRunner
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=263, suite="stage-b-test-1-gpu-small")
|
||||
register_cuda_ci(est_time=263, stage="stage-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=224, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
PROMPTS = [
|
||||
|
||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=300,
|
||||
suite="stage-c-test-4-gpu-b200",
|
||||
stage="stage-c",
|
||||
runner_config="4-gpu-b200",
|
||||
)
|
||||
|
||||
BASE_MODEL = "lmsys/gpt-oss-20b-bf16"
|
||||
|
||||
@@ -41,7 +41,8 @@ from sglang.test.test_utils import DEFAULT_PORT_FOR_SRT_TEST_RUNNER, CustomTestC
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=150,
|
||||
suite="stage-b-test-1-gpu-small",
|
||||
stage="stage-b",
|
||||
runner_config="1-gpu-small",
|
||||
)
|
||||
register_amd_ci(
|
||||
est_time=250,
|
||||
|
||||
@@ -34,7 +34,8 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=200,
|
||||
suite="stage-b-test-2-gpu-large",
|
||||
stage="stage-b",
|
||||
runner_config="2-gpu-large",
|
||||
)
|
||||
|
||||
LOGPROB_THRESHOLD = 5e-04
|
||||
|
||||
@@ -26,7 +26,8 @@ from sglang.test.runners import SRTRunner
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=50,
|
||||
suite="stage-b-test-1-gpu-large",
|
||||
stage="stage-b",
|
||||
runner_config="1-gpu-large",
|
||||
)
|
||||
|
||||
# Format: [{"text": "result string", "lps": [0.1, 0.2, ...]}, ...]
|
||||
|
||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=300,
|
||||
suite="stage-c-test-4-gpu-b200",
|
||||
stage="stage-c",
|
||||
runner_config="4-gpu-b200",
|
||||
)
|
||||
|
||||
BASE_MODEL = "nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16"
|
||||
|
||||
@@ -29,7 +29,7 @@ from sglang.test.lora_utils import (
|
||||
)
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=48, suite="stage-b-test-1-gpu-large")
|
||||
register_cuda_ci(est_time=48, stage="stage-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=75, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
|
||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=160,
|
||||
suite="stage-c-test-4-gpu-b200",
|
||||
stage="stage-c",
|
||||
runner_config="4-gpu-b200",
|
||||
)
|
||||
|
||||
BASE_MODEL = "Qwen/Qwen3-30B-A3B-Instruct-2507"
|
||||
|
||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=160,
|
||||
suite="stage-c-test-4-gpu-b200",
|
||||
stage="stage-c",
|
||||
runner_config="4-gpu-b200",
|
||||
)
|
||||
|
||||
BASE_MODEL = "Qwen/Qwen3.5-35B-A3B"
|
||||
|
||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=90,
|
||||
suite="stage-b-test-1-gpu-large",
|
||||
stage="stage-b",
|
||||
runner_config="1-gpu-large",
|
||||
)
|
||||
|
||||
BASE_MODEL = "Qwen/Qwen3.5-4B"
|
||||
|
||||
@@ -39,7 +39,8 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=40,
|
||||
suite="stage-b-test-1-gpu-large",
|
||||
stage="stage-b",
|
||||
runner_config="1-gpu-large",
|
||||
)
|
||||
|
||||
BASE_MODEL = "Qwen/Qwen3-8B"
|
||||
|
||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=160,
|
||||
suite="stage-c-test-4-gpu-b200",
|
||||
stage="stage-c",
|
||||
runner_config="4-gpu-b200",
|
||||
)
|
||||
|
||||
BASE_MODEL = "Qwen/Qwen3-VL-30B-A3B-Instruct"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user