diff --git a/test/registered/attention/unittests/dense/test_fa3.py b/test/registered/attention/unittests/dense/test_fa3.py index 2fc82a370..d033be392 100644 --- a/test/registered/attention/unittests/dense/test_fa3.py +++ b/test/registered/attention/unittests/dense/test_fa3.py @@ -35,7 +35,6 @@ from sglang.test.kits.attention_unittest.runner_modes.split_op_runner import ( run_dense_split_op_extend_case, ) -register_cuda_ci(est_time=25, stage="base-b", runner_config="4-gpu-b200") register_cuda_ci(est_time=25, stage="base-b", runner_config="1-gpu-large") diff --git a/test/registered/backends/test_flashinfer_trtllm_gen_attn_backend.py b/test/registered/backends/test_flashinfer_trtllm_gen_attn_backend.py deleted file mode 100644 index 0346fd500..000000000 --- a/test/registered/backends/test_flashinfer_trtllm_gen_attn_backend.py +++ /dev/null @@ -1,65 +0,0 @@ -import os -import unittest -from types import SimpleNamespace - -from sglang.srt.utils import kill_process_tree -from sglang.test.ci.ci_register import register_cuda_ci -from sglang.test.run_eval import run_eval -from sglang.test.test_utils import ( - DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, - DEFAULT_URL_FOR_TEST, - CustomTestCase, - popen_launch_server, -) - -register_cuda_ci(est_time=300, suite="nightly-4-gpu-b200", nightly=True) - - -class TestFlashinferTrtllmGenAttnBackend(CustomTestCase): - @classmethod - def setUpClass(cls): - cls.model = "Qwen/Qwen3-Next-80B-A3B-Instruct" - cls.base_url = DEFAULT_URL_FOR_TEST - cls.process = popen_launch_server( - cls.model, - cls.base_url, - timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, - env={**os.environ, "SGLANG_ENABLE_JIT_DEEPGEMM": "False"}, - other_args=[ - "--attention-backend", - "trtllm_mha", - "--cuda-graph-max-bs-decode", - "512", - "--tp-size", - "4", - "--ep-size", - "4", - "--mem-fraction-static", - "0.7", - "--mamba-ssm-dtype", - "bfloat16", - "--disable-radix-cache", - ], - ) - - @classmethod - def tearDownClass(cls): - kill_process_tree(cls.process.pid) - - def test_gsm8k(self): - args = SimpleNamespace( - base_url=self.base_url, - model=self.model, - eval_name="gsm8k", - api="completion", - max_tokens=512, - num_examples=200, - num_threads=128, - ) - metrics = run_eval(args) - print(f"{metrics=}") - self.assertGreater(metrics["score"], 0.93) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/registered/lora/test_lora_qwen3_5_35b_a3b_logprob_diff.py b/test/registered/lora/test_lora_qwen3_5_35b_a3b_logprob_diff.py index 489418f80..486ad2bf6 100644 --- a/test/registered/lora/test_lora_qwen3_5_35b_a3b_logprob_diff.py +++ b/test/registered/lora/test_lora_qwen3_5_35b_a3b_logprob_diff.py @@ -37,7 +37,7 @@ from sglang.test.test_utils import CustomTestCase register_cuda_ci( est_time=110, stage="base-c", - runner_config="4-gpu-b200", + runner_config="4-gpu-h100", ) BASE_MODEL = "Qwen/Qwen3.5-35B-A3B" diff --git a/test/registered/lora/test_lora_qwen3_vl_30b_a3b_instruct_logprob_diff.py b/test/registered/lora/test_lora_qwen3_vl_30b_a3b_instruct_logprob_diff.py index 01a62e78b..a558ca646 100644 --- a/test/registered/lora/test_lora_qwen3_vl_30b_a3b_instruct_logprob_diff.py +++ b/test/registered/lora/test_lora_qwen3_vl_30b_a3b_instruct_logprob_diff.py @@ -37,7 +37,7 @@ from sglang.test.test_utils import CustomTestCase register_cuda_ci( est_time=110, stage="base-c", - runner_config="4-gpu-b200", + runner_config="4-gpu-h100", ) BASE_MODEL = "Qwen/Qwen3-VL-30B-A3B-Instruct" diff --git a/test/registered/models_e2e/test_gpt_oss_4gpu_bf16.py b/test/registered/models_e2e/test_gpt_oss_4gpu_bf16.py index eeb461b0e..aa60132db 100644 --- a/test/registered/models_e2e/test_gpt_oss_4gpu_bf16.py +++ b/test/registered/models_e2e/test_gpt_oss_4gpu_bf16.py @@ -4,7 +4,6 @@ from sglang.test.ci.ci_register import register_cuda_ci from sglang.test.gpt_oss_common import BaseTestGptOss register_cuda_ci(est_time=220, stage="base-c", runner_config="4-gpu-h100") -register_cuda_ci(est_time=220, stage="base-c", runner_config="4-gpu-b200") class TestGptOss4GpuBf16(BaseTestGptOss): diff --git a/test/registered/models_e2e/test_qwen35_fp4_flashinfer.py b/test/registered/models_e2e/test_qwen35_fp4_flashinfer.py deleted file mode 100644 index 63949e065..000000000 --- a/test/registered/models_e2e/test_qwen35_fp4_flashinfer.py +++ /dev/null @@ -1,83 +0,0 @@ -import unittest - -import torch - -from sglang.test.accuracy_test_runner import AccuracyTestParams -from sglang.test.ci.ci_register import register_cuda_ci -from sglang.test.run_combined_tests import run_combined_tests -from sglang.test.test_utils import ( - CustomTestCase, - ModelLaunchSettings, -) - -register_cuda_ci(est_time=720, stage="base-c", runner_config="4-gpu-b200") - -QWEN35_FP4_MODEL = "nvidia/Qwen3.5-397B-A17B-NVFP4" -ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}} - -_cuda_major = int(torch.version.cuda.split(".")[0]) if torch.version.cuda else 0 - -_is_sm100_cuda13 = ( - torch.cuda.is_available() - and torch.cuda.get_device_capability()[0] >= 10 - and _cuda_major >= 13 -) - - -@unittest.skipUnless(_is_sm100_cuda13, "requires SM100+ GPU and CUDA 13+") -class TestQwen35FP4FlashInfer(CustomTestCase): - def test_gsm8k(self): - base_args = [ - "--tp-size", - "4", - "--chunked-prefill-size", - "2048", - "--mamba-scheduler-strategy", - "extra_buffer", - "--mamba-track-interval", - "128", - "--mamba-ssm-dtype", - "bfloat16", - "--max-running-requests", - "128", - "--reasoning-parser", - "qwen3", - "--attention-backend", - "trtllm_mha", - "--quantization", - "modelopt_fp4", - "--model-loader-extra-config", - '{"enable_multithread_load": true,"num_threads": 64}', - "--linear-attn-decode-backend", - "flashinfer", - "--linear-attn-prefill-backend", - "flashinfer", - ] - - variants = [ - ModelLaunchSettings( - QWEN35_FP4_MODEL, - extra_args=base_args, - variant="FlashInfer", - ), - ] - - run_combined_tests( - models=variants, - test_name="Qwen3.5-397B-A17B-NVFP4", - accuracy_params=AccuracyTestParams( - dataset="gsm8k", - baseline_accuracy=ACC_THRESHOLDS[QWEN35_FP4_MODEL]["gsm8k"], - num_examples=200, - num_threads=128, - max_tokens=16000, - thinking_mode="qwen3", - temperature=0.6, - top_p=0.95, - top_k=20, - ), - ) - - -if __name__ == "__main__": - unittest.main() diff --git a/test/registered/models_e2e/test_qwen35_fp4_mtp.py b/test/registered/models_e2e/test_qwen35_fp4_mtp.py index a47359548..46aaf89d3 100644 --- a/test/registered/models_e2e/test_qwen35_fp4_mtp.py +++ b/test/registered/models_e2e/test_qwen35_fp4_mtp.py @@ -14,7 +14,7 @@ from sglang.test.test_utils import ( popen_launch_server, ) -register_cuda_ci(est_time=740, stage="base-c", runner_config="4-gpu-b200") +register_cuda_ci(est_time=400, stage="base-c", runner_config="4-gpu-b200") QWEN35_FP4_MODEL = "nvidia/Qwen3.5-397B-A17B-NVFP4" ACC_THRESHOLDS = {QWEN35_FP4_MODEL: {"gsm8k": 0.95}} @@ -106,33 +106,5 @@ class TestQwen35FP4MTP(ReasoningTokenUsageMixin, CustomTestCase): _run_mtp_gsm8k(self) -class TestQwen35FP4MTPFlashInfer(ReasoningTokenUsageMixin, CustomTestCase): - reasoning_parser_name = "qwen3" - - @classmethod - def setUpClass(cls): - cls.model = QWEN35_FP4_MODEL - cls.base_url = DEFAULT_URL_FOR_TEST - cls.init_reasoning_token_verifier() - cls.process = popen_launch_server( - cls.model, - cls.base_url, - timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, - other_args=MTP_BASE_ARGS - + [ - "--linear-attn-decode-backend", - "flashinfer", - "--enforce-disable-flashinfer-allreduce-fusion", - ], - ) - - @classmethod - def tearDownClass(cls): - kill_process_tree(cls.process.pid) - - def test_gsm8k(self): - _run_mtp_gsm8k(self) - - if __name__ == "__main__": unittest.main() diff --git a/test/registered/spec/eagle/test_eagle_dp_attention.py b/test/registered/spec/eagle/test_eagle_dp_attention.py index 87ac6dd1b..a70e80814 100644 --- a/test/registered/spec/eagle/test_eagle_dp_attention.py +++ b/test/registered/spec/eagle/test_eagle_dp_attention.py @@ -21,10 +21,7 @@ from sglang.test.test_utils import ( ) # EAGLE3 with DP attention (tp=2, dp=2, requires 4 GPUs). -# Per-commit EAGLE + DP-attn coverage on CUDA is provided by -# test_eagle_infer_beta_dp_attention.py (B200 4-gpu), so this H100 variant -# is gated to extra-b only. -register_cuda_ci(est_time=99, stage="extra-b", runner_config="4-gpu-h100") +register_cuda_ci(est_time=99, stage="base-c", runner_config="4-gpu-h100") register_amd_ci(est_time=200, suite="stage-c-test-4-gpu-amd") diff --git a/test/registered/spec/eagle/test_eagle_infer_beta_dp_attention.py b/test/registered/spec/eagle/test_eagle_infer_beta_dp_attention.py deleted file mode 100644 index 4d19a5d08..000000000 --- a/test/registered/spec/eagle/test_eagle_infer_beta_dp_attention.py +++ /dev/null @@ -1,85 +0,0 @@ -import unittest -from types import SimpleNamespace - -import requests - -from sglang.srt.utils import kill_process_tree -from sglang.test.ci.ci_register import register_cuda_ci -from sglang.test.run_eval import run_eval -from sglang.test.test_utils import ( - DEFAULT_MODEL_NAME_FOR_TEST_MLA, - DEFAULT_MODEL_NAME_FOR_TEST_MLA_NEXTN, - DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, - DEFAULT_URL_FOR_TEST, - CustomTestCase, - popen_launch_server, -) - -# EAGLE with DP attention on B200 (tp=2, dp=2, requires 4 B200 GPUs) -register_cuda_ci(est_time=90, stage="base-c", runner_config="4-gpu-b200") - - -def test_gsm8k(base_url: str, model: str): - requests.get(base_url + "/flush_cache") - - args = SimpleNamespace( - base_url=base_url, - model=model, - eval_name="gsm8k", - api="completion", - max_tokens=512, - num_examples=200, - num_threads=128, - ) - metrics = run_eval(args) - server_info = requests.get(base_url + "/server_info") - avg_spec_accept_length = server_info.json()["internal_states"][0][ - "avg_spec_accept_length" - ] - - print(f"{metrics=}") - print(f"{avg_spec_accept_length=}") - return metrics, avg_spec_accept_length - - -class TestEagleDPAttnServerSmall(CustomTestCase): - @classmethod - def setUpClass(cls): - cls.model = DEFAULT_MODEL_NAME_FOR_TEST_MLA - cls.base_url = DEFAULT_URL_FOR_TEST - other_args = [ - "--tp-size", - "2", - "--dp-size", - "2", - "--enable-dp-attention", - "--speculative-draft-model-path", - DEFAULT_MODEL_NAME_FOR_TEST_MLA_NEXTN, - "--speculative-algorithm", - "EAGLE", - "--speculative-num-steps", - "3", - "--speculative-eagle-topk", - "1", - "--speculative-num-draft-tokens", - "4", - ] - cls.process = popen_launch_server( - cls.model, - cls.base_url, - timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH, - other_args=other_args, - ) - - @classmethod - def tearDownClass(cls): - kill_process_tree(cls.process.pid) - - def test_a_gsm8k(self): - metrics, avg_spec_accept_length = test_gsm8k(self.base_url, self.model) - self.assertGreater(metrics["score"], 0.62) - self.assertGreater(avg_spec_accept_length, 2.7) - - -if __name__ == "__main__": - unittest.main()