Enable SGLANG_ENABLE_SPEC_V2 for nightly speculative decoding tests (#18719)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kangyan-Zhou
2026-02-14 23:00:33 +08:00
committed by GitHub
co-authored by Claude Opus 4.6
parent 92cdd398cd
commit ae95869292
10 changed files with 17 additions and 1 deletions
@@ -97,6 +97,7 @@ def _run_simple_eval(
base_url, base_url,
other_args=model.extra_args, other_args=model.extra_args,
timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
env=model.env,
) )
args = SimpleNamespace( args = SimpleNamespace(
@@ -165,6 +166,7 @@ def _run_few_shot_eval(
base_url, base_url,
other_args=model.extra_args, other_args=model.extra_args,
timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
env=model.env,
) )
args = SimpleNamespace( args = SimpleNamespace(
+3
View File
@@ -229,6 +229,7 @@ class NightlyBenchmarkRunner:
extra_bench_args: Optional[List[str]] = None, extra_bench_args: Optional[List[str]] = None,
enable_profile: bool = True, enable_profile: bool = True,
timeout: Optional[int] = None, timeout: Optional[int] = None,
env: Optional[dict] = None,
) -> Tuple[List[BenchmarkResult], bool, Optional[float]]: ) -> Tuple[List[BenchmarkResult], bool, Optional[float]]:
"""Run a complete benchmark for a single model with server management. """Run a complete benchmark for a single model with server management.
@@ -249,6 +250,7 @@ class NightlyBenchmarkRunner:
extra_bench_args: Extra arguments for the benchmark command extra_bench_args: Extra arguments for the benchmark command
enable_profile: Whether to enable profiling (default True for NVIDIA) enable_profile: Whether to enable profiling (default True for NVIDIA)
timeout: Optional timeout for server launch (defaults to DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH) timeout: Optional timeout for server launch (defaults to DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH)
env: Environment dict for subprocess
Returns: Returns:
Tuple of (list of BenchmarkResult objects, success_bool, avg_spec_accept_length or None) Tuple of (list of BenchmarkResult objects, success_bool, avg_spec_accept_length or None)
@@ -265,6 +267,7 @@ class NightlyBenchmarkRunner:
timeout=( timeout=(
timeout if timeout is not None else DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH timeout if timeout is not None else DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH
), ),
env=env,
) )
try: try:
@@ -79,6 +79,7 @@ def run_performance_test(
other_args=model.extra_args, other_args=model.extra_args,
variant=model.variant or "", variant=model.variant or "",
extra_bench_args=extra_bench_args, extra_bench_args=extra_bench_args,
env=model.env,
) )
if success and results: if success and results:
+3 -1
View File
@@ -855,7 +855,9 @@ def popen_launch_server(
if env is None: if env is None:
env = os.environ.copy() env = os.environ.copy()
else: else:
env = env.copy() merged = os.environ.copy()
merged.update(env)
env = merged
# Store per-run marker path for potential invalidation # Store per-run marker path for potential invalidation
per_run_marker_path = None per_run_marker_path = None
@@ -54,6 +54,7 @@ class TestDeepseekV31(unittest.TestCase):
DEEPSEEK_V31_MODEL_PATH, DEEPSEEK_V31_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=base_args + mtp_args, extra_args=base_args + mtp_args,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="TP8+MTP", variant="TP8+MTP",
), ),
] ]
@@ -68,6 +68,7 @@ class TestDeepseekV32(unittest.TestCase):
DEEPSEEK_V32_MODEL_PATH, DEEPSEEK_V32_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=BASE_ARGS + DP_ARGS + TOOL_CALL_ARGS + MTP_ARGS, extra_args=BASE_ARGS + DP_ARGS + TOOL_CALL_ARGS + MTP_ARGS,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="DP8+MTP", variant="DP8+MTP",
), ),
# Variant: "tp" - Pure TP=8 only # Variant: "tp" - Pure TP=8 only
@@ -82,6 +83,7 @@ class TestDeepseekV32(unittest.TestCase):
DEEPSEEK_V32_MODEL_PATH, DEEPSEEK_V32_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=BASE_ARGS + TP_ARGS + TOOL_CALL_ARGS + MTP_ARGS, extra_args=BASE_ARGS + TP_ARGS + TOOL_CALL_ARGS + MTP_ARGS,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="TP8+MTP", variant="TP8+MTP",
), ),
] ]
@@ -65,6 +65,7 @@ class TestDeepseekV32CPSingleNode(unittest.TestCase):
DEEPSEEK_V32_EXP_MODEL_PATH, DEEPSEEK_V32_EXP_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=BASE_ARGS + DP_ARGS + MTP_ARGS + CP_IN_SEQ_SPLIT_ARGS, extra_args=BASE_ARGS + DP_ARGS + MTP_ARGS + CP_IN_SEQ_SPLIT_ARGS,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="CP-in-seq-split", variant="CP-in-seq-split",
), ),
# Variant: round-robin-split CP mode (TP only, no DP) # Variant: round-robin-split CP mode (TP only, no DP)
@@ -72,6 +73,7 @@ class TestDeepseekV32CPSingleNode(unittest.TestCase):
DEEPSEEK_V32_EXP_MODEL_PATH, DEEPSEEK_V32_EXP_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=BASE_ARGS + MTP_ARGS + CP_ROUND_ROBIN_ARGS, extra_args=BASE_ARGS + MTP_ARGS + CP_ROUND_ROBIN_ARGS,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="CP-round-robin-split", variant="CP-round-robin-split",
), ),
] ]
@@ -45,6 +45,7 @@ class TestGLM46FP8(unittest.TestCase):
GLM_4_6_FP8_MODEL_PATH, GLM_4_6_FP8_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=base_args + mtp_args, extra_args=base_args + mtp_args,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="TP8+MTP", variant="TP8+MTP",
), ),
] ]
@@ -76,6 +76,7 @@ class TestMistralLarge3(unittest.TestCase):
MISTRAL_LARGE3_FP8_MODEL_PATH, MISTRAL_LARGE3_FP8_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=base_args + eagle_args, extra_args=base_args + eagle_args,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="TP8+MTP", variant="TP8+MTP",
), ),
# Variant: "nvfp4" - NVFP4 model + TP=8 + trtllm_mla backend # Variant: "nvfp4" - NVFP4 model + TP=8 + trtllm_mla backend
@@ -55,6 +55,7 @@ class TestQwen3235BFP8(unittest.TestCase):
QWEN3_235B_FP8_MODEL_PATH, QWEN3_235B_FP8_MODEL_PATH,
tp_size=8, tp_size=8,
extra_args=base_args + eagle3_args, extra_args=base_args + eagle3_args,
env={"SGLANG_ENABLE_SPEC_V2": "1"},
variant="TP8+EP2+EAGLE3", variant="TP8+EP2+EAGLE3",
), ),
] ]