ci: decouple stage and runner for cuda registry (#25197)
This commit is contained in:
@@ -16,7 +16,12 @@ __all__ = [
|
|||||||
"ut_parse_one_file",
|
"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")
|
_PARAM_ORDER = ("est_time", "suite", "nightly", "disabled")
|
||||||
|
_KWARG_ONLY = ("stage", "runner_config")
|
||||||
|
_ALL_PARAMS = _PARAM_ORDER + _KWARG_ONLY
|
||||||
_UNSET = object()
|
_UNSET = object()
|
||||||
|
|
||||||
|
|
||||||
@@ -31,25 +36,43 @@ class HWBackend(Enum):
|
|||||||
class CIRegistry:
|
class CIRegistry:
|
||||||
backend: HWBackend
|
backend: HWBackend
|
||||||
filename: str
|
filename: str
|
||||||
# Estimated time to run the test in seconds.
|
|
||||||
est_time: float
|
est_time: float
|
||||||
# The suite this test is registered in.
|
stage: Optional[str] = None
|
||||||
suite: str
|
runner_config: Optional[str] = None
|
||||||
# Whether the test is a nightly test.
|
# 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
|
nightly: bool = False
|
||||||
# Reason for disabling the test. None = enabled, string = disabled with reason.
|
|
||||||
disabled: Optional[str] = None
|
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(
|
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)."""
|
"""Marker for CPU CI registration (parsed via AST; runtime no-op)."""
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def register_cuda_ci(
|
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)."""
|
"""Marker for CUDA CI registration (parsed via AST; runtime no-op)."""
|
||||||
return None
|
return None
|
||||||
@@ -57,9 +80,12 @@ def register_cuda_ci(
|
|||||||
|
|
||||||
def register_amd_ci(
|
def register_amd_ci(
|
||||||
est_time: float,
|
est_time: float,
|
||||||
suite: str,
|
suite: Optional[str] = None,
|
||||||
nightly: bool = False,
|
nightly: bool = False,
|
||||||
disabled: Optional[str] = None,
|
disabled: Optional[str] = None,
|
||||||
|
*,
|
||||||
|
stage: Optional[str] = None,
|
||||||
|
runner_config: Optional[str] = None,
|
||||||
):
|
):
|
||||||
"""Marker for AMD CI registration (parsed via AST; runtime no-op)."""
|
"""Marker for AMD CI registration (parsed via AST; runtime no-op)."""
|
||||||
return None
|
return None
|
||||||
@@ -67,9 +93,12 @@ def register_amd_ci(
|
|||||||
|
|
||||||
def register_npu_ci(
|
def register_npu_ci(
|
||||||
est_time: float,
|
est_time: float,
|
||||||
suite: str,
|
suite: Optional[str] = None,
|
||||||
nightly: bool = False,
|
nightly: bool = False,
|
||||||
disabled: Optional[str] = None,
|
disabled: Optional[str] = None,
|
||||||
|
*,
|
||||||
|
stage: Optional[str] = None,
|
||||||
|
runner_config: Optional[str] = None,
|
||||||
):
|
):
|
||||||
"""Marker for NPU CI registration (parsed via AST; runtime no-op)."""
|
"""Marker for NPU CI registration (parsed via AST; runtime no-op)."""
|
||||||
return None
|
return None
|
||||||
@@ -94,10 +123,8 @@ class RegistryVisitor(ast.NodeVisitor):
|
|||||||
return node.value
|
return node.value
|
||||||
return _UNSET
|
return _UNSET
|
||||||
|
|
||||||
def _parse_call_args(
|
def _parse_call_args(self, func_call: ast.Call) -> dict:
|
||||||
self, func_call: ast.Call
|
args = {name: _UNSET for name in _ALL_PARAMS}
|
||||||
) -> tuple[float, str, bool, Optional[str]]:
|
|
||||||
args = {name: _UNSET for name in _PARAM_ORDER}
|
|
||||||
seen = set()
|
seen = set()
|
||||||
|
|
||||||
if any(isinstance(arg, ast.Starred) for arg in func_call.args):
|
if any(isinstance(arg, ast.Starred) for arg in func_call.args):
|
||||||
@@ -129,23 +156,49 @@ class RegistryVisitor(ast.NodeVisitor):
|
|||||||
seen.add(kw.arg)
|
seen.add(kw.arg)
|
||||||
args[kw.arg] = self._constant_value(kw.value)
|
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(
|
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"]
|
# The only valid (stage, runner_config, suite) shapes are:
|
||||||
nightly_value = args["nightly"]
|
# (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)):
|
if not isinstance(est_time, (int, float)):
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"{self.filename}: est_time must be a number in {func_call.func.id}()"
|
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(
|
raise ValueError(
|
||||||
f"{self.filename}: suite must be a string in {func_call.func.id}()"
|
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:
|
if nightly_value is _UNSET:
|
||||||
nightly = False
|
nightly = False
|
||||||
elif isinstance(nightly_value, bool):
|
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}()"
|
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):
|
def _collect_ci_registry(self, func_call: ast.Call):
|
||||||
if not isinstance(func_call.func, ast.Name):
|
if not isinstance(func_call.func, ast.Name):
|
||||||
@@ -171,14 +231,11 @@ class RegistryVisitor(ast.NodeVisitor):
|
|||||||
if backend is None:
|
if backend is None:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
est_time, suite, nightly, disabled = self._parse_call_args(func_call)
|
parsed = self._parse_call_args(func_call)
|
||||||
return CIRegistry(
|
return CIRegistry(
|
||||||
backend=backend,
|
backend=backend,
|
||||||
filename=self.filename,
|
filename=self.filename,
|
||||||
est_time=est_time,
|
**parsed,
|
||||||
suite=suite,
|
|
||||||
nightly=nightly,
|
|
||||||
disabled=disabled,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@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)):
|
for t in sorted(disabled_tests, key=lambda x: (x.backend.name, x.filename)):
|
||||||
test_name = get_test_basename(t.filename)
|
test_name = get_test_basename(t.filename)
|
||||||
reason = t.disabled[:50] + "..." if len(t.disabled) > 50 else t.disabled
|
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")
|
lines.append("\n</details>\n")
|
||||||
|
|
||||||
return "\n".join(lines)
|
return "\n".join(lines)
|
||||||
@@ -197,7 +199,7 @@ def generate_by_folder_section(data: dict) -> str:
|
|||||||
else ("Nightly" if t.nightly else "Per-Commit")
|
else ("Nightly" if t.nightly else "Per-Commit")
|
||||||
)
|
)
|
||||||
lines.append(
|
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("")
|
lines.append("")
|
||||||
@@ -231,7 +233,7 @@ def generate_by_suite_section(data: dict) -> str:
|
|||||||
# Group by suite within backend
|
# Group by suite within backend
|
||||||
backend_suites = defaultdict(list)
|
backend_suites = defaultdict(list)
|
||||||
for t in backend_tests:
|
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()):
|
for suite in sorted(backend_suites.keys()):
|
||||||
suite_tests = backend_suites[suite]
|
suite_tests = backend_suites[suite]
|
||||||
@@ -336,7 +338,7 @@ def generate_json_report(tests: list[CIRegistry]) -> str:
|
|||||||
data["tests_by_folder"][folder]["backends"][backend] = [
|
data["tests_by_folder"][folder]["backends"][backend] = [
|
||||||
{
|
{
|
||||||
"filename": get_test_basename(t.filename),
|
"filename": get_test_basename(t.filename),
|
||||||
"suite": t.suite,
|
"suite": t.effective_suite,
|
||||||
"est_time": t.est_time,
|
"est_time": t.est_time,
|
||||||
"status": (
|
"status": (
|
||||||
"disabled"
|
"disabled"
|
||||||
@@ -355,7 +357,7 @@ def generate_json_report(tests: list[CIRegistry]) -> str:
|
|||||||
|
|
||||||
backend_suites = defaultdict(list)
|
backend_suites = defaultdict(list)
|
||||||
for t in backend_tests:
|
for t in backend_tests:
|
||||||
backend_suites[t.suite].append(t)
|
backend_suites[t.effective_suite].append(t)
|
||||||
|
|
||||||
data["tests_by_suite"][backend] = {
|
data["tests_by_suite"][backend] = {
|
||||||
"total": len(backend_tests),
|
"total": len(backend_tests),
|
||||||
@@ -423,7 +425,7 @@ def generate_json_report(tests: list[CIRegistry]) -> str:
|
|||||||
{
|
{
|
||||||
"filename": get_test_basename(t.filename),
|
"filename": get_test_basename(t.filename),
|
||||||
"backend": t.backend.name,
|
"backend": t.backend.name,
|
||||||
"suite": t.suite,
|
"suite": t.effective_suite,
|
||||||
"reason": t.disabled,
|
"reason": t.disabled,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ def compute_partitions(tests, full_parallel=False):
|
|||||||
continue
|
continue
|
||||||
if t.nightly or t.disabled is not None:
|
if t.nightly or t.disabled is not None:
|
||||||
continue
|
continue
|
||||||
suite_tests[t.suite].append(t)
|
suite_tests[t.effective_suite].append(t)
|
||||||
|
|
||||||
result = {}
|
result = {}
|
||||||
for suite, group in suite_tests.items():
|
for suite, group in suite_tests.items():
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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):
|
class TestDeepseekR1Nvfp4CuteDSLDeepEP(CustomTestCase):
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import unittest
|
|||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.gpt_oss_common import BaseTestGptOss
|
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=392, stage="stage-c", runner_config="4-gpu-h100")
|
||||||
register_cuda_ci(est_time=740, suite="stage-c-test-4-gpu-b200")
|
register_cuda_ci(est_time=740, stage="stage-c", runner_config="4-gpu-b200")
|
||||||
|
|
||||||
|
|
||||||
class TestGptOss4Gpu(BaseTestGptOss):
|
class TestGptOss4Gpu(BaseTestGptOss):
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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"
|
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,
|
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"
|
QWEN35_FP4_MODEL = "nvidia/Qwen3.5-397B-A17B-NVFP4"
|
||||||
ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}}
|
ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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"
|
QWEN35_27B_MODEL = "Qwen/Qwen3.5-27B"
|
||||||
ACC_THRESHOLDS = {QWEN35_27B_MODEL: {"gsm8k": 0.8}}
|
ACC_THRESHOLDS = {QWEN35_27B_MODEL: {"gsm8k": 0.8}}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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"
|
QWEN35_FP4_MODEL = "nvidia/Qwen3.5-397B-A17B-NVFP4"
|
||||||
ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}}
|
ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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"
|
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.kits.prefix_cache_branching_kit import PrefixCacheBranchingMixin
|
||||||
from sglang.test.server_fixtures.default_fixture import DefaultServerBase
|
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"
|
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
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"
|
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
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"
|
FULL_DEEPSEEK_V3_MODEL_PATH = "deepseek-ai/DeepSeek-V3-0324"
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
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"
|
GLM5_MODEL_PATH = "zai-org/GLM-5-FP8"
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ from sglang.test.test_utils import (
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=1048,
|
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"
|
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.default_fixture import DefaultServerBase
|
||||||
from sglang.test.server_fixtures.mmmu_fixture import MMMUServerBase
|
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):
|
class TestMiMoV2Flash(GSM8KMixin, SpecDecodingMixin, DefaultServerBase):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
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"
|
MINIMAX_M25_MODEL_PATH = "MiniMaxAI/MiniMax-M2.5"
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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"
|
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,
|
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"
|
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
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"
|
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
|
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")
|
@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
|
from sglang.test.test_utils import CustomTestCase
|
||||||
|
|
||||||
# Triton kernel unit test for KV indices creation
|
# 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")
|
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)
|
# 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")
|
@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
|
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"):
|
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)
|
# Hybrid attention backend tests (FA3 prefill + FlashInfer decode, requires SM 90+ / H100)
|
||||||
# Multiple test classes: base, MLA, TorchCompile, SpecDecode variants
|
# 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
|
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.srt.utils.common import get_device
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
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(
|
@unittest.skipIf(
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
|||||||
from sglang.test.test_utils import CustomTestCase
|
from sglang.test.test_utils import CustomTestCase
|
||||||
|
|
||||||
# Register this test for CUDA CI in stage-b (fast attention/kernel tests)
|
# 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(
|
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
|
# 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")
|
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
|
# 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")
|
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
|
from sglang.test.test_utils import CustomTestCase, is_in_amd_ci
|
||||||
|
|
||||||
# Triton attention kernel unit tests (decode, extend, prefill)
|
# 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")
|
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)
|
# 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")
|
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,
|
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")
|
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.
|
# 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):
|
def _skip_if_no_cuda(test_func):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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")
|
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
|
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")
|
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,
|
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):
|
class TestEngineChildPids(CustomTestCase):
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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 = (
|
PROMPT = (
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import torch
|
|||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.gpt_oss_common import BaseTestGptOss
|
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")
|
@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.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
from sglang.test.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST, CustomTestCase
|
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")
|
register_amd_ci(est_time=55, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
_is_hip = is_hip()
|
_is_hip = is_hip()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from unittest.mock import MagicMock, patch
|
|||||||
from sglang.srt.server_args import ServerArgs
|
from sglang.srt.server_args import ServerArgs
|
||||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
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")
|
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,
|
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")
|
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,
|
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")
|
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,
|
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")
|
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(
|
register_cuda_ci(
|
||||||
est_time=616,
|
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"
|
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(
|
register_cuda_ci(
|
||||||
est_time=10,
|
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",
|
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(
|
register_cuda_ci(
|
||||||
est_time=9,
|
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",
|
disabled="Test uses pytest-style function without TestCase class - see #17145",
|
||||||
)
|
)
|
||||||
register_amd_ci(
|
register_amd_ci(
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
|||||||
DEFAULT_TARGET_MODEL_EAGLE3,
|
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):
|
class TestDisaggregationAccuracy(PauseResumeInPlaceMixin, PDDisaggregationServerBase):
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ from sglang.test.test_utils import (
|
|||||||
# Increasing estimated time since we run evaluation twice
|
# Increasing estimated time since we run evaluation twice
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=600,
|
est_time=600,
|
||||||
suite="stage-b-test-2-gpu-large",
|
stage="stage-b",
|
||||||
|
runner_config="2-gpu-large",
|
||||||
disabled="Temporarily disable the flaky test.",
|
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(
|
register_cuda_ci(
|
||||||
est_time=300,
|
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",
|
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
|
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(
|
def _make_mock_req(
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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")
|
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,
|
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):
|
class TestDisaggregationMooncakeAARCH64Accuracy(PDDisaggregationServerBase):
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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():
|
def _has_nixl():
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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):
|
class TestDisaggregationMooncakePrefillLargerTP(PDDisaggregationServerBase):
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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):
|
class TestDisaggregationDPAttention(PDDisaggregationServerBase):
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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"
|
DSV4_FLASH_MODEL = "sgl-project/DeepSeek-V4-Flash-FP8"
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_pd_server,
|
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.")
|
@unittest.skipIf(is_in_ci(), "Temporarily disable the flaky test.")
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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):
|
class TestDisaggregationPrefillPPAccuracy(PDDisaggregationServerBase):
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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(
|
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.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.test_utils import CustomTestCase
|
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
|
WORLD_SIZE = 2
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ from sglang.utils import terminate_process
|
|||||||
|
|
||||||
mp.set_start_method("spawn", force=True)
|
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")
|
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
|
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")
|
register_amd_ci(est_time=8, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
# Import the actual parallel_state module
|
# Import the actual parallel_state module
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ from sglang.test.test_utils import (
|
|||||||
run_bench_one_batch_server,
|
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")
|
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
|
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")
|
register_amd_ci(est_time=330, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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"
|
MODEL = "deepseek-ai/DeepSeek-V4-Flash"
|
||||||
SERVER_LAUNCH_TIMEOUT = 3600
|
SERVER_LAUNCH_TIMEOUT = 3600
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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:
|
def _flashinfer_has_sm90_cutlass_mxfp4() -> bool:
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
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"
|
MODEL_FP8 = "sgl-project/DeepSeek-V4-Flash-FP8"
|
||||||
SERVER_LAUNCH_TIMEOUT = 3600
|
SERVER_LAUNCH_TIMEOUT = 3600
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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"
|
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2"
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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):
|
class TestPureDP(CustomTestCase):
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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()
|
ib_devices = get_rdma_devices_args()
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ from sglang.test.test_utils import (
|
|||||||
)
|
)
|
||||||
from sglang.utils import wait_for_http_ready
|
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.")
|
@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
|
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")
|
register_amd_ci(est_time=300, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
import time
|
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.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
from sglang.test.test_utils import CustomTestCase
|
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")
|
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
|
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")
|
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,
|
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):
|
class HiCacheStorageMooncakeBackendBaseMixin(HiCacheStorageBaseMixin):
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ from sglang.test.test_utils import (
|
|||||||
)
|
)
|
||||||
from sglang.utils import wait_for_http_ready
|
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):
|
class TestHiCacheStorageRuntimeAttachDetach(CustomTestCase):
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
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")
|
register_amd_ci(est_time=524, suite="stage-b-test-1-gpu-small-amd")
|
||||||
"""
|
"""
|
||||||
Consolidated HiCache variant tests.
|
Consolidated HiCache variant tests.
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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")
|
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,
|
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")
|
register_amd_ci(est_time=43, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
CHUNKED_PREFILL_SIZE = 256
|
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.srt.server_args import ServerArgs, set_global_server_args_for_scheduler
|
||||||
from sglang.test.test_utils import CustomTestCase
|
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
|
# Global configuration for all indexer tests
|
||||||
DEFAULT_CONFIG = {
|
DEFAULT_CONFIG = {
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from sglang.test.test_programs import (
|
|||||||
)
|
)
|
||||||
from sglang.test.test_utils import DEFAULT_MODEL_NAME_FOR_TEST, CustomTestCase
|
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")
|
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
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
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")
|
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
|
# 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.srt.utils import get_device, get_device_count
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
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
|
NUM_GPUS = 2
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
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")
|
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
|
# 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
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
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")
|
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
|
# 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(
|
register_cuda_ci(
|
||||||
est_time=60,
|
est_time=60,
|
||||||
suite="stage-b-test-2-gpu-large",
|
stage="stage-b",
|
||||||
|
runner_config="2-gpu-large",
|
||||||
disabled="Temporarily disabled",
|
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):
|
def round_up(x, base):
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from sglang.test.lora_utils import (
|
|||||||
)
|
)
|
||||||
from sglang.test.test_utils import is_in_ci
|
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")
|
register_amd_ci(est_time=100, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
MOCK_START_TIME = 1000.0
|
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.runners import SRTRunner
|
||||||
from sglang.test.test_utils import CustomTestCase
|
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")
|
register_amd_ci(est_time=224, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
PROMPTS = [
|
PROMPTS = [
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=300,
|
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"
|
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(
|
register_cuda_ci(
|
||||||
est_time=150,
|
est_time=150,
|
||||||
suite="stage-b-test-1-gpu-small",
|
stage="stage-b",
|
||||||
|
runner_config="1-gpu-small",
|
||||||
)
|
)
|
||||||
register_amd_ci(
|
register_amd_ci(
|
||||||
est_time=250,
|
est_time=250,
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ from sglang.test.test_utils import (
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=200,
|
est_time=200,
|
||||||
suite="stage-b-test-2-gpu-large",
|
stage="stage-b",
|
||||||
|
runner_config="2-gpu-large",
|
||||||
)
|
)
|
||||||
|
|
||||||
LOGPROB_THRESHOLD = 5e-04
|
LOGPROB_THRESHOLD = 5e-04
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ from sglang.test.runners import SRTRunner
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=50,
|
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, ...]}, ...]
|
# Format: [{"text": "result string", "lps": [0.1, 0.2, ...]}, ...]
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=300,
|
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"
|
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
|
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")
|
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(
|
register_cuda_ci(
|
||||||
est_time=160,
|
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"
|
BASE_MODEL = "Qwen/Qwen3-30B-A3B-Instruct-2507"
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=160,
|
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"
|
BASE_MODEL = "Qwen/Qwen3.5-35B-A3B"
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=90,
|
est_time=90,
|
||||||
suite="stage-b-test-1-gpu-large",
|
stage="stage-b",
|
||||||
|
runner_config="1-gpu-large",
|
||||||
)
|
)
|
||||||
|
|
||||||
BASE_MODEL = "Qwen/Qwen3.5-4B"
|
BASE_MODEL = "Qwen/Qwen3.5-4B"
|
||||||
|
|||||||
@@ -39,7 +39,8 @@ from sglang.test.test_utils import CustomTestCase
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=40,
|
est_time=40,
|
||||||
suite="stage-b-test-1-gpu-large",
|
stage="stage-b",
|
||||||
|
runner_config="1-gpu-large",
|
||||||
)
|
)
|
||||||
|
|
||||||
BASE_MODEL = "Qwen/Qwen3-8B"
|
BASE_MODEL = "Qwen/Qwen3-8B"
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ from sglang.test.test_utils import CustomTestCase
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=160,
|
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"
|
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