ci: migrate remaining spec/eagle tests to test/registered/spec/ (#15800)
This commit is contained in:
@@ -634,6 +634,43 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
python3 run_suite.py --hw cuda --suite stage-c-test-large-4-gpu $CONTINUE_ON_ERROR_FLAG
|
python3 run_suite.py --hw cuda --suite stage-c-test-large-4-gpu $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
|
stage-c-test-large-4-gpu-b200:
|
||||||
|
needs: [check-changes, call-gate, stage-b-test-small-1-gpu, stage-b-test-large-1-gpu, stage-b-test-large-2-gpu, stage-b-test-4-gpu-b200, sgl-kernel-build-wheels]
|
||||||
|
if: |
|
||||||
|
always() &&
|
||||||
|
(
|
||||||
|
(inputs.target_stage == 'stage-c-test-large-4-gpu-b200') ||
|
||||||
|
(
|
||||||
|
!inputs.target_stage &&
|
||||||
|
(github.event_name == 'schedule' || (!failure() && !cancelled())) &&
|
||||||
|
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
runs-on: ${{ needs.check-changes.outputs.b200_runner }}
|
||||||
|
env:
|
||||||
|
RUNNER_LABELS: ${{ needs.check-changes.outputs.b200_runner }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Download artifacts
|
||||||
|
if: needs.check-changes.outputs.sgl_kernel == 'true'
|
||||||
|
uses: actions/download-artifact@v6
|
||||||
|
with:
|
||||||
|
path: sgl-kernel/dist/
|
||||||
|
merge-multiple: true
|
||||||
|
pattern: wheel-python3.10-cuda12.9
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
CUSTOM_BUILD_SGL_KERNEL=${{needs.check-changes.outputs.sgl_kernel}} IS_BLACKWELL=1 bash scripts/ci/ci_install_dependency.sh
|
||||||
|
|
||||||
|
- name: Run test
|
||||||
|
timeout-minutes: 30
|
||||||
|
run: |
|
||||||
|
cd test/
|
||||||
|
IS_BLACKWELL=1 python3 run_suite.py --hw cuda --suite stage-c-test-large-4-gpu-b200
|
||||||
|
|
||||||
multimodal-gen-test-1-gpu:
|
multimodal-gen-test-1-gpu:
|
||||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||||
if: |
|
if: |
|
||||||
|
|||||||
@@ -148,6 +148,7 @@ def handle_rerun_stage(
|
|||||||
"stage-b-test-large-1-gpu",
|
"stage-b-test-large-1-gpu",
|
||||||
"stage-b-test-large-2-gpu",
|
"stage-b-test-large-2-gpu",
|
||||||
"stage-c-test-large-4-gpu",
|
"stage-c-test-large-4-gpu",
|
||||||
|
"stage-c-test-large-4-gpu-b200",
|
||||||
"multimodal-gen-test-1-gpu",
|
"multimodal-gen-test-1-gpu",
|
||||||
"multimodal-gen-test-2-gpu",
|
"multimodal-gen-test-2-gpu",
|
||||||
"quantization-test",
|
"quantization-test",
|
||||||
|
|||||||
+4
@@ -3,6 +3,7 @@ from types import SimpleNamespace
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
|
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
|
||||||
from sglang.test.send_one import BenchArgs, send_one_prompt
|
from sglang.test.send_one import BenchArgs, send_one_prompt
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
@@ -18,6 +19,9 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# EAGLE3 with DP attention (tp=2, dp=2, requires 4 GPUs)
|
||||||
|
register_cuda_ci(est_time=200, suite="stage-c-test-large-4-gpu")
|
||||||
|
|
||||||
|
|
||||||
class TestEAGLE3EngineDPAttention(CustomTestCase):
|
class TestEAGLE3EngineDPAttention(CustomTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
+4
@@ -5,6 +5,7 @@ import requests
|
|||||||
|
|
||||||
from sglang.srt.environ import envs
|
from sglang.srt.environ import envs
|
||||||
from sglang.srt.utils import kill_process_tree
|
from sglang.srt.utils import kill_process_tree
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
|
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_MODEL_NAME_FOR_TEST_MLA,
|
DEFAULT_MODEL_NAME_FOR_TEST_MLA,
|
||||||
@@ -15,6 +16,9 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# EAGLE with DP attention on B200 (tp=2, dp=2, requires 4 B200 GPUs)
|
||||||
|
register_cuda_ci(est_time=300, suite="stage-c-test-large-4-gpu-b200")
|
||||||
|
|
||||||
|
|
||||||
def test_gsm8k(base_url: str):
|
def test_gsm8k(base_url: str):
|
||||||
requests.get(base_url + "/flush_cache")
|
requests.get(base_url + "/flush_cache")
|
||||||
+4
@@ -4,6 +4,7 @@ import unittest
|
|||||||
import openai
|
import openai
|
||||||
|
|
||||||
from sglang.srt.utils import kill_process_tree
|
from sglang.srt.utils import kill_process_tree
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||||
DEFAULT_URL_FOR_TEST,
|
DEFAULT_URL_FOR_TEST,
|
||||||
@@ -11,6 +12,9 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Constrained decoding with EAGLE3 speculative reasoning (tp=2)
|
||||||
|
register_cuda_ci(est_time=60, suite="stage-b-test-large-2-gpu")
|
||||||
|
|
||||||
|
|
||||||
class ServerWithGrammar(CustomTestCase):
|
class ServerWithGrammar(CustomTestCase):
|
||||||
json_schema = json.dumps(
|
json_schema = json.dumps(
|
||||||
+4
@@ -5,6 +5,10 @@ from sglang.srt.speculative.spec_info import (
|
|||||||
SpeculativeAlgorithm,
|
SpeculativeAlgorithm,
|
||||||
register_speculative_algorithm,
|
register_speculative_algorithm,
|
||||||
)
|
)
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
|
|
||||||
|
# Speculative decoding registry unit tests (no GPU required)
|
||||||
|
register_cuda_ci(est_time=8, suite="stage-b-test-small-1-gpu")
|
||||||
|
|
||||||
|
|
||||||
class DummyWorker:
|
class DummyWorker:
|
||||||
+4
@@ -5,6 +5,7 @@ import requests
|
|||||||
|
|
||||||
from sglang.srt.environ import envs
|
from sglang.srt.environ import envs
|
||||||
from sglang.srt.utils import kill_process_tree
|
from sglang.srt.utils import kill_process_tree
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
|
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_DRAFT_MODEL_STANDALONE,
|
DEFAULT_DRAFT_MODEL_STANDALONE,
|
||||||
@@ -15,6 +16,9 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Standalone speculative decoding tests (FA3, Triton, FlashInfer backends)
|
||||||
|
register_cuda_ci(est_time=150, suite="stage-b-test-small-1-gpu")
|
||||||
|
|
||||||
GSM_DATASET_PATH = None
|
GSM_DATASET_PATH = None
|
||||||
|
|
||||||
|
|
||||||
@@ -26,6 +26,7 @@ PER_COMMIT_SUITES = {
|
|||||||
"stage-b-test-large-2-gpu",
|
"stage-b-test-large-2-gpu",
|
||||||
"stage-c-test-large-4-gpu",
|
"stage-c-test-large-4-gpu",
|
||||||
"stage-b-test-4-gpu-b200",
|
"stage-b-test-4-gpu-b200",
|
||||||
|
"stage-c-test-large-4-gpu-b200",
|
||||||
],
|
],
|
||||||
HWBackend.NPU: [],
|
HWBackend.NPU: [],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,11 +86,9 @@ suites = {
|
|||||||
TestFile("test_retract_decode.py", 259),
|
TestFile("test_retract_decode.py", 259),
|
||||||
TestFile("test_score_api.py", 260),
|
TestFile("test_score_api.py", 260),
|
||||||
TestFile("test_server_args.py", 9),
|
TestFile("test_server_args.py", 9),
|
||||||
TestFile("test_speculative_registry.py", 8),
|
|
||||||
TestFile("test_skip_tokenizer_init.py", 77),
|
TestFile("test_skip_tokenizer_init.py", 77),
|
||||||
TestFile("test_srt_endpoint.py", 127),
|
TestFile("test_srt_endpoint.py", 127),
|
||||||
TestFile("test_srt_engine.py", 252),
|
TestFile("test_srt_engine.py", 252),
|
||||||
TestFile("test_standalone_speculative_decoding.py", 150),
|
|
||||||
TestFile("test_start_profile.py", 41),
|
TestFile("test_start_profile.py", 41),
|
||||||
TestFile("test_profile_merger.py", 8),
|
TestFile("test_profile_merger.py", 8),
|
||||||
TestFile("test_profile_merger_http_api.py", 9),
|
TestFile("test_profile_merger_http_api.py", 9),
|
||||||
@@ -116,13 +114,11 @@ suites = {
|
|||||||
TestFile("models/test_glm4_moe_models.py", 100),
|
TestFile("models/test_glm4_moe_models.py", 100),
|
||||||
TestFile("models/test_kimi_linear_models.py", 90),
|
TestFile("models/test_kimi_linear_models.py", 90),
|
||||||
TestFile("rl/test_update_weights_from_distributed.py", 103),
|
TestFile("rl/test_update_weights_from_distributed.py", 103),
|
||||||
TestFile("test_constrained_decoding_spec_reasoning.py", 60),
|
|
||||||
TestFile("test_data_parallelism.py", 73),
|
TestFile("test_data_parallelism.py", 73),
|
||||||
TestFile("test_disaggregation_basic.py", 400),
|
TestFile("test_disaggregation_basic.py", 400),
|
||||||
TestFile("test_dp_attention.py", 350),
|
TestFile("test_dp_attention.py", 350),
|
||||||
TestFile("test_load_weights_from_remote_instance.py", 72),
|
TestFile("test_load_weights_from_remote_instance.py", 72),
|
||||||
TestFile("test_patch_torch.py", 19),
|
TestFile("test_patch_torch.py", 19),
|
||||||
TestFile("test_eagle_dp_attention.py", 200),
|
|
||||||
],
|
],
|
||||||
"per-commit-4-gpu": [
|
"per-commit-4-gpu": [
|
||||||
TestFile("models/test_qwen3_next_models.py", 650),
|
TestFile("models/test_qwen3_next_models.py", 650),
|
||||||
@@ -152,7 +148,6 @@ suites = {
|
|||||||
TestFile("test_fp8_blockwise_gemm.py", 280),
|
TestFile("test_fp8_blockwise_gemm.py", 280),
|
||||||
TestFile("test_gpt_oss_4gpu.py", 700),
|
TestFile("test_gpt_oss_4gpu.py", 700),
|
||||||
TestFile("test_llama31_fp4.py", 90),
|
TestFile("test_llama31_fp4.py", 90),
|
||||||
TestFile("test_eagle_infer_beta_dp_attention.py", 300),
|
|
||||||
],
|
],
|
||||||
# "per-commit-8-gpu-b200": [
|
# "per-commit-8-gpu-b200": [
|
||||||
# TestFile("test_mistral_large3_basic.py", 275), # Moved to nightly - large model
|
# TestFile("test_mistral_large3_basic.py", 275), # Moved to nightly - large model
|
||||||
|
|||||||
Reference in New Issue
Block a user