Migrate 4-GPU/8-GPU workflow jobs to stage-c and add CI registry decorators (#17299)
This commit is contained in:
@@ -1298,12 +1298,12 @@ jobs:
|
|||||||
--total-partitions 2 \
|
--total-partitions 2 \
|
||||||
$CONTINUE_ON_ERROR_FLAG
|
$CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
unit-test-backend-4-gpu:
|
stage-c-test-4-gpu-h100:
|
||||||
needs: [check-changes, call-gate, wait-for-stage-b]
|
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'unit-test-backend-4-gpu') ||
|
(inputs.target_stage == 'stage-c-test-4-gpu-h100') ||
|
||||||
(
|
(
|
||||||
!inputs.target_stage &&
|
!inputs.target_stage &&
|
||||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||||
@@ -1340,23 +1340,19 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
run: |
|
run: |
|
||||||
cd test/srt
|
cd test
|
||||||
RETRY_FLAG=""
|
|
||||||
if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then
|
|
||||||
RETRY_FLAG="--enable-retry"
|
|
||||||
fi
|
|
||||||
CONTINUE_ON_ERROR_FLAG=""
|
CONTINUE_ON_ERROR_FLAG=""
|
||||||
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
||||||
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
||||||
fi
|
fi
|
||||||
python3 run_suite.py --suite per-commit-4-gpu --auto-partition-id ${{ matrix.part }} --auto-partition-size 3 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG
|
python3 run_suite.py --hw cuda --suite stage-c-test-4-gpu-h100 --auto-partition-id ${{ matrix.part }} --auto-partition-size 3 $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
unit-test-backend-8-gpu-h200:
|
stage-c-test-8-gpu-h200:
|
||||||
needs: [check-changes, call-gate, wait-for-stage-b]
|
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'unit-test-backend-8-gpu-h200') ||
|
(inputs.target_stage == 'stage-c-test-8-gpu-h200') ||
|
||||||
(
|
(
|
||||||
!inputs.target_stage &&
|
!inputs.target_stage &&
|
||||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||||
@@ -1399,23 +1395,19 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
run: |
|
run: |
|
||||||
cd test/srt
|
cd test
|
||||||
RETRY_FLAG=""
|
|
||||||
if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then
|
|
||||||
RETRY_FLAG="--enable-retry"
|
|
||||||
fi
|
|
||||||
CONTINUE_ON_ERROR_FLAG=""
|
CONTINUE_ON_ERROR_FLAG=""
|
||||||
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
||||||
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
||||||
fi
|
fi
|
||||||
python3 run_suite.py --suite per-commit-8-gpu-h200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 4 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG
|
python3 run_suite.py --hw cuda --suite stage-c-test-8-gpu-h200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 4 $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
unit-test-backend-8-gpu-h20:
|
stage-c-test-8-gpu-h20:
|
||||||
needs: [check-changes, call-gate, wait-for-stage-b]
|
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'unit-test-backend-8-gpu-h20') ||
|
(inputs.target_stage == 'stage-c-test-8-gpu-h20') ||
|
||||||
(
|
(
|
||||||
!inputs.target_stage &&
|
!inputs.target_stage &&
|
||||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||||
@@ -1453,23 +1445,19 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
run: |
|
run: |
|
||||||
cd test/srt
|
cd test
|
||||||
RETRY_FLAG=""
|
|
||||||
if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then
|
|
||||||
RETRY_FLAG="--enable-retry"
|
|
||||||
fi
|
|
||||||
CONTINUE_ON_ERROR_FLAG=""
|
CONTINUE_ON_ERROR_FLAG=""
|
||||||
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
||||||
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
||||||
fi
|
fi
|
||||||
python3 run_suite.py --suite per-commit-8-gpu-h20 --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG
|
python3 run_suite.py --hw cuda --suite stage-c-test-8-gpu-h20 --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
unit-test-deepep-4-gpu:
|
stage-c-test-deepep-4-gpu:
|
||||||
needs: [check-changes, call-gate, wait-for-stage-b]
|
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'unit-test-deepep-4-gpu') ||
|
(inputs.target_stage == 'stage-c-test-deepep-4-gpu') ||
|
||||||
(
|
(
|
||||||
!inputs.target_stage &&
|
!inputs.target_stage &&
|
||||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||||
@@ -1502,23 +1490,19 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 20
|
timeout-minutes: 20
|
||||||
run: |
|
run: |
|
||||||
cd test/srt
|
cd test
|
||||||
RETRY_FLAG=""
|
|
||||||
if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then
|
|
||||||
RETRY_FLAG="--enable-retry"
|
|
||||||
fi
|
|
||||||
CONTINUE_ON_ERROR_FLAG=""
|
CONTINUE_ON_ERROR_FLAG=""
|
||||||
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
||||||
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
||||||
fi
|
fi
|
||||||
python3 run_suite.py --suite per-commit-4-gpu-deepep $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG
|
python3 run_suite.py --hw cuda --suite stage-c-test-deepep-4-gpu $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
unit-test-deepep-8-gpu:
|
stage-c-test-deepep-8-gpu-h200:
|
||||||
needs: [check-changes, call-gate, wait-for-stage-b]
|
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'unit-test-deepep-8-gpu') ||
|
(inputs.target_stage == 'stage-c-test-deepep-8-gpu-h200') ||
|
||||||
(
|
(
|
||||||
!inputs.target_stage &&
|
!inputs.target_stage &&
|
||||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||||
@@ -1551,23 +1535,19 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 45
|
timeout-minutes: 45
|
||||||
run: |
|
run: |
|
||||||
cd test/srt
|
cd test
|
||||||
RETRY_FLAG=""
|
|
||||||
if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then
|
|
||||||
RETRY_FLAG="--enable-retry"
|
|
||||||
fi
|
|
||||||
CONTINUE_ON_ERROR_FLAG=""
|
CONTINUE_ON_ERROR_FLAG=""
|
||||||
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
||||||
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
||||||
fi
|
fi
|
||||||
python3 run_suite.py --suite per-commit-8-gpu-h200-deepep $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG
|
python3 run_suite.py --hw cuda --suite stage-c-test-deepep-8-gpu-h200 $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
unit-test-backend-4-gpu-b200:
|
stage-c-test-4-gpu-b200:
|
||||||
needs: [check-changes, call-gate, wait-for-stage-b]
|
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'unit-test-backend-4-gpu-b200') ||
|
(inputs.target_stage == 'stage-c-test-4-gpu-b200') ||
|
||||||
(
|
(
|
||||||
!inputs.target_stage &&
|
!inputs.target_stage &&
|
||||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||||
@@ -1605,23 +1585,19 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
run: |
|
||||||
cd test/srt
|
cd test
|
||||||
RETRY_FLAG=""
|
|
||||||
if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then
|
|
||||||
RETRY_FLAG="--enable-retry"
|
|
||||||
fi
|
|
||||||
CONTINUE_ON_ERROR_FLAG=""
|
CONTINUE_ON_ERROR_FLAG=""
|
||||||
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
||||||
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
||||||
fi
|
fi
|
||||||
IS_BLACKWELL=1 python3 run_suite.py --suite per-commit-4-gpu-b200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 3 --timeout-per-file 1800 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG
|
IS_BLACKWELL=1 python3 run_suite.py --hw cuda --suite stage-c-test-4-gpu-b200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 3 --timeout-per-file 1800 $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
unit-test-backend-4-gpu-gb200:
|
stage-c-test-4-gpu-gb200:
|
||||||
needs: [check-changes, call-gate, wait-for-stage-b, sgl-kernel-build-wheels-arm]
|
needs: [check-changes, call-gate, wait-for-stage-b, sgl-kernel-build-wheels-arm]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'unit-test-backend-4-gpu-gb200') ||
|
(inputs.target_stage == 'stage-c-test-4-gpu-gb200') ||
|
||||||
(
|
(
|
||||||
!inputs.target_stage &&
|
!inputs.target_stage &&
|
||||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||||
@@ -1656,16 +1632,12 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 45
|
timeout-minutes: 45
|
||||||
run: |
|
run: |
|
||||||
cd test/srt
|
cd test
|
||||||
RETRY_FLAG=""
|
|
||||||
if [[ "${{ needs.check-changes.outputs.enable_retry }}" == "true" ]]; then
|
|
||||||
RETRY_FLAG="--enable-retry"
|
|
||||||
fi
|
|
||||||
CONTINUE_ON_ERROR_FLAG=""
|
CONTINUE_ON_ERROR_FLAG=""
|
||||||
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
if [[ "${{ needs.check-changes.outputs.continue_on_error }}" == "true" ]]; then
|
||||||
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
CONTINUE_ON_ERROR_FLAG="--continue-on-error"
|
||||||
fi
|
fi
|
||||||
python3 run_suite.py --suite per-commit-4-gpu-gb200 --auto-partition-id 0 --auto-partition-size 1 --timeout-per-file 3600 $RETRY_FLAG $CONTINUE_ON_ERROR_FLAG
|
python3 run_suite.py --hw cuda --suite stage-c-test-4-gpu-gb200 --timeout-per-file 3600 $CONTINUE_ON_ERROR_FLAG
|
||||||
|
|
||||||
pr-test-finish:
|
pr-test-finish:
|
||||||
needs:
|
needs:
|
||||||
@@ -1694,13 +1666,13 @@ jobs:
|
|||||||
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,
|
||||||
unit-test-backend-4-gpu,
|
stage-c-test-4-gpu-h100,
|
||||||
unit-test-backend-8-gpu-h20,
|
stage-c-test-8-gpu-h20,
|
||||||
unit-test-backend-8-gpu-h200,
|
stage-c-test-8-gpu-h200,
|
||||||
unit-test-deepep-4-gpu,
|
stage-c-test-deepep-4-gpu,
|
||||||
unit-test-deepep-8-gpu,
|
stage-c-test-deepep-8-gpu-h200,
|
||||||
unit-test-backend-4-gpu-b200,
|
stage-c-test-4-gpu-b200,
|
||||||
unit-test-backend-4-gpu-gb200,
|
stage-c-test-4-gpu-gb200,
|
||||||
]
|
]
|
||||||
if: always()
|
if: always()
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -258,6 +258,13 @@ def handle_rerun_stage(
|
|||||||
"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",
|
"stage-c-test-large-4-gpu-b200",
|
||||||
|
"stage-c-test-4-gpu-h100",
|
||||||
|
"stage-c-test-8-gpu-h200",
|
||||||
|
"stage-c-test-8-gpu-h20",
|
||||||
|
"stage-c-test-4-gpu-b200",
|
||||||
|
"stage-c-test-4-gpu-gb200",
|
||||||
|
"stage-c-test-deepep-4-gpu",
|
||||||
|
"stage-c-test-deepep-8-gpu-h200",
|
||||||
"multimodal-gen-test-1-gpu",
|
"multimodal-gen-test-1-gpu",
|
||||||
"multimodal-gen-test-2-gpu",
|
"multimodal-gen-test-2-gpu",
|
||||||
"quantization-test",
|
"quantization-test",
|
||||||
|
|||||||
+3
@@ -3,6 +3,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
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_DEEPSEEK_NVFP4_MODEL_FOR_TEST,
|
DEFAULT_DEEPSEEK_NVFP4_MODEL_FOR_TEST,
|
||||||
@@ -13,6 +14,8 @@ 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")
|
||||||
|
|
||||||
|
|
||||||
class TestDeepseekR1Nvfp4CuteDSLDeepEP(CustomTestCase):
|
class TestDeepseekR1Nvfp4CuteDSLDeepEP(CustomTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -1,7 +1,11 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
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=300, suite="stage-c-test-4-gpu-h100")
|
||||||
|
register_cuda_ci(est_time=300, suite="stage-c-test-4-gpu-b200")
|
||||||
|
|
||||||
|
|
||||||
class TestGptOss4Gpu(BaseTestGptOss):
|
class TestGptOss4Gpu(BaseTestGptOss):
|
||||||
def test_bf16_120b(self):
|
def test_bf16_120b(self):
|
||||||
+3
@@ -4,6 +4,7 @@ from types import SimpleNamespace
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
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
|
from sglang.test.few_shot_gsm8k import run_eval
|
||||||
from sglang.test.kl_test_utils import (
|
from sglang.test.kl_test_utils import (
|
||||||
test_input_output_logprobs_match_decode_cache_hit_helper,
|
test_input_output_logprobs_match_decode_cache_hit_helper,
|
||||||
@@ -16,6 +17,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=350, suite="stage-c-test-4-gpu-h100")
|
||||||
|
|
||||||
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
||||||
|
|
||||||
ACC_THRESHOLDS = {
|
ACC_THRESHOLDS = {
|
||||||
+3
@@ -4,6 +4,7 @@ from types import SimpleNamespace
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
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
|
from sglang.test.few_shot_gsm8k import run_eval
|
||||||
from sglang.test.kl_test_utils import (
|
from sglang.test.kl_test_utils import (
|
||||||
test_input_output_logprobs_match_decode_cache_hit_helper,
|
test_input_output_logprobs_match_decode_cache_hit_helper,
|
||||||
@@ -16,6 +17,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=500, suite="stage-c-test-4-gpu-h100")
|
||||||
|
|
||||||
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
||||||
|
|
||||||
ACC_THRESHOLDS = {
|
ACC_THRESHOLDS = {
|
||||||
+3
@@ -2,6 +2,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
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.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 (
|
||||||
@@ -13,6 +14,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=360, suite="stage-c-test-8-gpu-h200")
|
||||||
|
|
||||||
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2-Exp"
|
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2-Exp"
|
||||||
|
|
||||||
|
|
||||||
+3
@@ -4,6 +4,7 @@ from types import SimpleNamespace
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
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.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 (
|
||||||
@@ -15,6 +16,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=360, suite="stage-c-test-8-gpu-h200")
|
||||||
|
|
||||||
FULL_DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2-Exp"
|
FULL_DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2-Exp"
|
||||||
|
|
||||||
|
|
||||||
+3
@@ -2,6 +2,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
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.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 (
|
||||||
@@ -14,6 +15,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=275, suite="stage-c-test-8-gpu-h200")
|
||||||
|
|
||||||
FULL_DEEPSEEK_V3_MODEL_PATH = "deepseek-ai/DeepSeek-V3-0324"
|
FULL_DEEPSEEK_V3_MODEL_PATH = "deepseek-ai/DeepSeek-V3-0324"
|
||||||
|
|
||||||
|
|
||||||
+3
@@ -4,6 +4,7 @@ from types import SimpleNamespace
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
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.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 (
|
||||||
@@ -16,6 +17,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=275, suite="stage-c-test-8-gpu-h200")
|
||||||
|
|
||||||
FULL_DEEPSEEK_V3_MODEL_PATH = "deepseek-ai/DeepSeek-V3-0324"
|
FULL_DEEPSEEK_V3_MODEL_PATH = "deepseek-ai/DeepSeek-V3-0324"
|
||||||
|
|
||||||
|
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.kits.gsm8k_accuracy_kit import GSM8KMixin
|
from sglang.test.kits.gsm8k_accuracy_kit import GSM8KMixin
|
||||||
from sglang.test.kits.spec_decoding_kit import SpecDecodingMixin
|
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
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=200, suite="stage-c-test-8-gpu-h200")
|
||||||
|
|
||||||
|
|
||||||
class TestMiMoV2Flash(GSM8KMixin, SpecDecodingMixin, DefaultServerBase):
|
class TestMiMoV2Flash(GSM8KMixin, SpecDecodingMixin, DefaultServerBase):
|
||||||
gsm8k_accuracy_thres = 0.75
|
gsm8k_accuracy_thres = 0.75
|
||||||
@@ -3,6 +3,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
from sglang.srt.utils import kill_process_tree
|
from sglang.srt.utils import kill_process_tree
|
||||||
|
from sglang.test.ci.ci_register import register_amd_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_DEEPEP_MODEL_NAME_FOR_TEST,
|
DEFAULT_DEEPEP_MODEL_NAME_FOR_TEST,
|
||||||
@@ -13,6 +14,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_amd_ci(est_time=1200, suite="stage-c-test-large-8-gpu-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestPureDP(CustomTestCase):
|
class TestPureDP(CustomTestCase):
|
||||||
|
|
||||||
+3
@@ -2,6 +2,7 @@ import os
|
|||||||
import unittest
|
import unittest
|
||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
|
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.server_fixtures.disaggregation_fixture import (
|
from sglang.test.server_fixtures.disaggregation_fixture import (
|
||||||
PDDisaggregationServerBase,
|
PDDisaggregationServerBase,
|
||||||
@@ -12,6 +13,8 @@ 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")
|
||||||
|
|
||||||
|
|
||||||
class TestDisaggregationMooncakeAARCH64Accuracy(PDDisaggregationServerBase):
|
class TestDisaggregationMooncakeAARCH64Accuracy(PDDisaggregationServerBase):
|
||||||
@classmethod
|
@classmethod
|
||||||
+3
@@ -2,6 +2,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
from sglang.srt.environ import envs
|
from sglang.srt.environ import envs
|
||||||
|
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.server_fixtures.disaggregation_fixture import (
|
from sglang.test.server_fixtures.disaggregation_fixture import (
|
||||||
PDDisaggregationServerBase,
|
PDDisaggregationServerBase,
|
||||||
@@ -14,6 +15,8 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
try_cached_model,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=600, suite="stage-c-test-8-gpu-h20")
|
||||||
|
|
||||||
|
|
||||||
class TestDisaggregationMooncakePrefillLargerTP(PDDisaggregationServerBase):
|
class TestDisaggregationMooncakePrefillLargerTP(PDDisaggregationServerBase):
|
||||||
@classmethod
|
@classmethod
|
||||||
+3
@@ -2,6 +2,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
from sglang.srt.environ import envs
|
from sglang.srt.environ import envs
|
||||||
|
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.server_fixtures.disaggregation_fixture import (
|
from sglang.test.server_fixtures.disaggregation_fixture import (
|
||||||
PDDisaggregationServerBase,
|
PDDisaggregationServerBase,
|
||||||
@@ -13,6 +14,8 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
try_cached_model,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=155, suite="stage-c-test-8-gpu-h20")
|
||||||
|
|
||||||
|
|
||||||
class TestDisaggregationDPAttention(PDDisaggregationServerBase):
|
class TestDisaggregationDPAttention(PDDisaggregationServerBase):
|
||||||
PREFILL_DP_SIZE = 4
|
PREFILL_DP_SIZE = 4
|
||||||
+5
@@ -1,6 +1,7 @@
|
|||||||
import unittest
|
import unittest
|
||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
|
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.server_fixtures.disaggregation_fixture import (
|
from sglang.test.server_fixtures.disaggregation_fixture import (
|
||||||
PDDisaggregationServerBase,
|
PDDisaggregationServerBase,
|
||||||
@@ -11,6 +12,10 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_pd_server,
|
popen_launch_pd_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(
|
||||||
|
est_time=400, suite="stage-c-test-8-gpu-h200", disabled="TCP fallback flaky"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(is_in_ci(), "Temporarily disable the flaky test.")
|
@unittest.skipIf(is_in_ci(), "Temporarily disable the flaky test.")
|
||||||
class TestDisaggregationHybridAttentionMamba(PDDisaggregationServerBase):
|
class TestDisaggregationHybridAttentionMamba(PDDisaggregationServerBase):
|
||||||
+3
@@ -2,6 +2,7 @@ import time
|
|||||||
import unittest
|
import unittest
|
||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.few_shot_gsm8k import run_eval
|
from sglang.test.few_shot_gsm8k import run_eval
|
||||||
from sglang.test.server_fixtures.disaggregation_fixture import (
|
from sglang.test.server_fixtures.disaggregation_fixture import (
|
||||||
PDDisaggregationServerBase,
|
PDDisaggregationServerBase,
|
||||||
@@ -13,6 +14,8 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
try_cached_model,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=180, suite="stage-c-test-8-gpu-h20")
|
||||||
|
|
||||||
|
|
||||||
class TestDisaggregationPrefillPPAccuracy(PDDisaggregationServerBase):
|
class TestDisaggregationPrefillPPAccuracy(PDDisaggregationServerBase):
|
||||||
@classmethod
|
@classmethod
|
||||||
+3
@@ -3,6 +3,7 @@ import threading
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
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.kits.mmmu_vlm_kit import _run_lmms_eval_with_retry
|
from sglang.test.kits.mmmu_vlm_kit import _run_lmms_eval_with_retry
|
||||||
from sglang.test.server_fixtures.disaggregation_fixture import (
|
from sglang.test.server_fixtures.disaggregation_fixture import (
|
||||||
PDDisaggregationServerBase,
|
PDDisaggregationServerBase,
|
||||||
@@ -14,6 +15,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=150, suite="stage-c-test-4-gpu-h100")
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(is_in_ci(), "Skipping in CI to reduce multi-GPU runtime")
|
@unittest.skipIf(is_in_ci(), "Skipping in CI to reduce multi-GPU runtime")
|
||||||
class TestEPDDisaggregationOneEncoder(PDDisaggregationServerBase):
|
class TestEPDDisaggregationOneEncoder(PDDisaggregationServerBase):
|
||||||
@@ -15,6 +15,7 @@ import requests
|
|||||||
from sglang.bench_one_batch_server import BenchArgs as OneBatchBenchArgs
|
from sglang.bench_one_batch_server import BenchArgs as OneBatchBenchArgs
|
||||||
from sglang.srt.server_args import ServerArgs
|
from sglang.srt.server_args import ServerArgs
|
||||||
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.run_eval import run_eval
|
from sglang.test.run_eval import run_eval
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
@@ -30,6 +31,8 @@ from sglang.test.test_utils import (
|
|||||||
run_bench_one_batch_server,
|
run_bench_one_batch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=500, suite="stage-c-test-4-gpu-h100")
|
||||||
|
|
||||||
|
|
||||||
class TestPPAccuracy(unittest.TestCase):
|
class TestPPAccuracy(unittest.TestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -4,6 +4,7 @@ from types import SimpleNamespace
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
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.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 (
|
||||||
@@ -14,6 +15,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=563, suite="stage-c-test-deepep-8-gpu-h200")
|
||||||
|
|
||||||
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2-Exp"
|
DEEPSEEK_V32_MODEL_PATH = "deepseek-ai/DeepSeek-V3.2-Exp"
|
||||||
|
|
||||||
|
|
||||||
@@ -5,6 +5,7 @@ from types import SimpleNamespace
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
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,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=531, suite="stage-c-test-deepep-4-gpu")
|
||||||
|
|
||||||
|
|
||||||
class TestPureDP(CustomTestCase):
|
class TestPureDP(CustomTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -3,6 +3,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
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.server_fixtures.disaggregation_fixture import get_rdma_devices_args
|
from sglang.test.server_fixtures.disaggregation_fixture import get_rdma_devices_args
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
@@ -14,6 +15,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=660, suite="stage-c-test-deepep-4-gpu")
|
||||||
|
|
||||||
ib_devices = get_rdma_devices_args()
|
ib_devices = get_rdma_devices_args()
|
||||||
|
|
||||||
|
|
||||||
+7
@@ -11,6 +11,13 @@ from sglang.srt.layers.attention.fla.layernorm_gated import (
|
|||||||
_layer_norm_fwd as layer_norm_fwd,
|
_layer_norm_fwd as layer_norm_fwd,
|
||||||
)
|
)
|
||||||
from sglang.srt.layers.attention.fla.layernorm_gated import layernorm_fn, rms_norm_ref
|
from sglang.srt.layers.attention.fla.layernorm_gated import layernorm_fn, rms_norm_ref
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
|
|
||||||
|
register_cuda_ci(
|
||||||
|
est_time=60,
|
||||||
|
suite="stage-b-test-large-2-gpu",
|
||||||
|
disabled="Temporarily disabled",
|
||||||
|
)
|
||||||
|
|
||||||
# Optional dependency in sglang repo; skip collection cleanly if absent.
|
# Optional dependency in sglang repo; skip collection cleanly if absent.
|
||||||
custom_all_reduce_utils = pytest.importorskip(
|
custom_all_reduce_utils = pytest.importorskip(
|
||||||
+7
@@ -1,7 +1,14 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.test_utils import CustomTestCase, is_in_ci, run_bench_one_batch
|
from sglang.test.test_utils import CustomTestCase, is_in_ci, run_bench_one_batch
|
||||||
|
|
||||||
|
register_cuda_ci(
|
||||||
|
est_time=120,
|
||||||
|
suite="stage-b-test-large-2-gpu",
|
||||||
|
disabled="Temporarily disabled",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestDummyGrok1(CustomTestCase):
|
class TestDummyGrok1(CustomTestCase):
|
||||||
|
|
||||||
+7
@@ -1,10 +1,17 @@
|
|||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.kits.gsm8k_accuracy_kit import GSM8KMixin
|
from sglang.test.kits.gsm8k_accuracy_kit import GSM8KMixin
|
||||||
from sglang.test.kits.mmmu_vlm_kit import MMMUMixin
|
from sglang.test.kits.mmmu_vlm_kit import MMMUMixin
|
||||||
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=200,
|
||||||
|
suite="stage-b-test-small-1-gpu",
|
||||||
|
disabled="Temporarily disabled",
|
||||||
|
)
|
||||||
|
|
||||||
MODEL = "mistralai/Ministral-3-3B-Instruct-2512"
|
MODEL = "mistralai/Ministral-3-3B-Instruct-2512"
|
||||||
|
|
||||||
|
|
||||||
+7
@@ -10,6 +10,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
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
|
from sglang.test.few_shot_gsm8k import run_eval
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||||
@@ -18,6 +19,12 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(
|
||||||
|
est_time=400,
|
||||||
|
suite="stage-c-test-4-gpu-h100",
|
||||||
|
disabled="Intermittent failures, see #17039",
|
||||||
|
)
|
||||||
|
|
||||||
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
QWEN3_NEXT_MODEL = "Qwen/Qwen3-Next-80B-A3B-Instruct"
|
||||||
|
|
||||||
ACC_THRESHOLDS = {
|
ACC_THRESHOLDS = {
|
||||||
@@ -8,6 +8,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.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||||
@@ -16,6 +17,12 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(
|
||||||
|
est_time=120,
|
||||||
|
suite="stage-b-test-small-1-gpu",
|
||||||
|
disabled="Temporarily disabled",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestStartProfile(CustomTestCase):
|
class TestStartProfile(CustomTestCase):
|
||||||
|
|
||||||
+3
@@ -2,6 +2,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
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_URL_FOR_TEST,
|
DEFAULT_URL_FOR_TEST,
|
||||||
@@ -11,6 +12,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=600, suite="stage-c-test-4-gpu-b200")
|
||||||
|
|
||||||
FULL_DEEPSEEK_V3_FP4_MODEL_PATH = "nvidia/DeepSeek-V3.2-NVFP4"
|
FULL_DEEPSEEK_V3_FP4_MODEL_PATH = "nvidia/DeepSeek-V3.2-NVFP4"
|
||||||
SERVER_LAUNCH_TIMEOUT = 1200
|
SERVER_LAUNCH_TIMEOUT = 1200
|
||||||
|
|
||||||
+3
@@ -3,6 +3,7 @@ import unittest
|
|||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|
||||||
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.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 (
|
||||||
@@ -13,6 +14,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=1500, suite="stage-c-test-4-gpu-b200")
|
||||||
|
|
||||||
FULL_DEEPSEEK_V3_FP4_MODEL_PATH = "nvidia/DeepSeek-V3-0324-FP4"
|
FULL_DEEPSEEK_V3_FP4_MODEL_PATH = "nvidia/DeepSeek-V3-0324-FP4"
|
||||||
SERVER_LAUNCH_TIMEOUT = 1200
|
SERVER_LAUNCH_TIMEOUT = 1200
|
||||||
|
|
||||||
@@ -3,6 +3,7 @@ from types import SimpleNamespace
|
|||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from sglang.srt.utils import get_device_sm, kill_process_tree
|
from sglang.srt.utils import get_device_sm, 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_TIMEOUT_FOR_SERVER_LAUNCH,
|
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||||
@@ -11,6 +12,8 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
try_cached_model,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=280, suite="stage-c-test-4-gpu-b200")
|
||||||
|
|
||||||
MODEL_PATH = "Qwen/Qwen3-4B-Instruct-2507-FP8"
|
MODEL_PATH = "Qwen/Qwen3-4B-Instruct-2507-FP8"
|
||||||
|
|
||||||
|
|
||||||
@@ -3,6 +3,7 @@ from types import SimpleNamespace
|
|||||||
from urllib.parse import urlparse
|
from urllib.parse import urlparse
|
||||||
|
|
||||||
from sglang.srt.utils import get_device_sm, kill_process_tree
|
from sglang.srt.utils import get_device_sm, 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_TIMEOUT_FOR_SERVER_LAUNCH,
|
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||||
@@ -11,6 +12,8 @@ from sglang.test.test_utils import (
|
|||||||
try_cached_model,
|
try_cached_model,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=360, suite="stage-c-test-4-gpu-b200")
|
||||||
|
|
||||||
MODEL_PATH = "nvidia/Llama-3.1-8B-Instruct-NVFP4"
|
MODEL_PATH = "nvidia/Llama-3.1-8B-Instruct-NVFP4"
|
||||||
|
|
||||||
|
|
||||||
+3
@@ -5,6 +5,7 @@ from types import SimpleNamespace
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
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_DEEPSEEK_W4AFP8_MODEL_FOR_TEST,
|
DEFAULT_DEEPSEEK_W4AFP8_MODEL_FOR_TEST,
|
||||||
@@ -18,6 +19,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=520, suite="stage-c-test-8-gpu-h20")
|
||||||
|
|
||||||
|
|
||||||
class TestDeepseekV3W4afp8(CustomTestCase):
|
class TestDeepseekV3W4afp8(CustomTestCase):
|
||||||
@classmethod
|
@classmethod
|
||||||
+3
@@ -12,6 +12,7 @@ from torch.distributed.device_mesh import init_device_mesh
|
|||||||
from transformers import AutoModelForCausalLM
|
from transformers import AutoModelForCausalLM
|
||||||
|
|
||||||
from sglang.srt.entrypoints.engine import Engine as SglangEngine
|
from sglang.srt.entrypoints.engine import Engine as SglangEngine
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST_BASE,
|
DEFAULT_SMALL_MODEL_NAME_FOR_TEST_BASE,
|
||||||
@@ -19,6 +20,8 @@ from sglang.test.test_utils import (
|
|||||||
find_available_port,
|
find_available_port,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(est_time=64, suite="stage-c-test-4-gpu-h100")
|
||||||
|
|
||||||
TEST_SUITE = dict(
|
TEST_SUITE = dict(
|
||||||
model_path=DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
model_path=DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||||
mem_fraction_static=0.83,
|
mem_fraction_static=0.83,
|
||||||
+9
@@ -23,6 +23,8 @@ ensuring correct weight updates and text generation.
|
|||||||
3. Tensor Parallel Tests: Tests memory release and resume operations with different tensor parallel
|
3. Tensor Parallel Tests: Tests memory release and resume operations with different tensor parallel
|
||||||
configurations (tp=1, tp=2) to ensure proper memory management in distributed settings. For different
|
configurations (tp=1, tp=2) to ensure proper memory management in distributed settings. For different
|
||||||
data parallel size, we test it in verl.
|
data parallel size, we test it in verl.
|
||||||
|
|
||||||
|
NOTE: This test is temporarily disabled.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -38,6 +40,7 @@ from sglang.srt.constants import (
|
|||||||
GPU_MEMORY_TYPE_KV_CACHE,
|
GPU_MEMORY_TYPE_KV_CACHE,
|
||||||
GPU_MEMORY_TYPE_WEIGHTS,
|
GPU_MEMORY_TYPE_WEIGHTS,
|
||||||
)
|
)
|
||||||
|
from sglang.test.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_HYBRID_MAMBA_MODEL_NAME_FOR_TEST,
|
DEFAULT_HYBRID_MAMBA_MODEL_NAME_FOR_TEST,
|
||||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||||
@@ -47,6 +50,12 @@ from sglang.test.test_utils import (
|
|||||||
CustomTestCase,
|
CustomTestCase,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(
|
||||||
|
est_time=200,
|
||||||
|
suite="stage-c-test-4-gpu-h100",
|
||||||
|
disabled="Temporarily disabled - needs investigation",
|
||||||
|
)
|
||||||
|
|
||||||
# (temporarily) set to true to observe memory usage in nvidia-smi more clearly
|
# (temporarily) set to true to observe memory usage in nvidia-smi more clearly
|
||||||
_DEBUG_EXTRA = False
|
_DEBUG_EXTRA = False
|
||||||
|
|
||||||
@@ -16,6 +16,7 @@ import torch.multiprocessing as mp
|
|||||||
from sglang.bench_serving import run_benchmark
|
from sglang.bench_serving import run_benchmark
|
||||||
from sglang.srt.managers.prefill_delayer import PrefillDelayer
|
from sglang.srt.managers.prefill_delayer import PrefillDelayer
|
||||||
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.run_eval import run_eval
|
from sglang.test.run_eval import run_eval
|
||||||
from sglang.test.test_utils import (
|
from sglang.test.test_utils import (
|
||||||
DEFAULT_MLA_MODEL_NAME_FOR_TEST,
|
DEFAULT_MLA_MODEL_NAME_FOR_TEST,
|
||||||
@@ -26,6 +27,12 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register_cuda_ci(
|
||||||
|
est_time=300,
|
||||||
|
suite="stage-c-test-8-gpu-h200",
|
||||||
|
disabled="Temporarily disabled",
|
||||||
|
)
|
||||||
|
|
||||||
WORLD_SIZE = os.environ.get("SGLANG_TEST_WORLD_SIZE", "8")
|
WORLD_SIZE = os.environ.get("SGLANG_TEST_WORLD_SIZE", "8")
|
||||||
|
|
||||||
# ============================ Unit Tests ============================
|
# ============================ Unit Tests ============================
|
||||||
+8
-2
@@ -32,8 +32,14 @@ PER_COMMIT_SUITES = {
|
|||||||
"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-b-test-4-gpu-b200",
|
"stage-c-test-4-gpu-h100",
|
||||||
"stage-c-test-large-4-gpu-b200",
|
"stage-c-test-4-gpu-b200",
|
||||||
|
"stage-c-test-4-gpu-gb200",
|
||||||
|
"stage-c-test-deepep-4-gpu",
|
||||||
|
"stage-c-test-8-gpu-h20",
|
||||||
|
"stage-c-test-8-gpu-h200",
|
||||||
|
"stage-c-test-8-gpu-b200",
|
||||||
|
"stage-c-test-deepep-8-gpu-h200",
|
||||||
],
|
],
|
||||||
HWBackend.NPU: [],
|
HWBackend.NPU: [],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
import unittest
|
|
||||||
from types import SimpleNamespace
|
|
||||||
|
|
||||||
import requests
|
|
||||||
|
|
||||||
from sglang.srt.utils import kill_process_tree
|
|
||||||
from sglang.test.few_shot_gsm8k import run_eval as run_eval_few_shot_gsm8k
|
|
||||||
from sglang.test.test_utils import (
|
|
||||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
|
||||||
DEFAULT_URL_FOR_TEST,
|
|
||||||
CustomTestCase,
|
|
||||||
is_in_ci,
|
|
||||||
popen_launch_server,
|
|
||||||
write_github_step_summary,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class TestKimiK2Thinking(CustomTestCase):
|
|
||||||
@classmethod
|
|
||||||
def setUpClass(cls):
|
|
||||||
cls.model = "moonshotai/Kimi-K2-Thinking"
|
|
||||||
cls.base_url = DEFAULT_URL_FOR_TEST
|
|
||||||
other_args = [
|
|
||||||
"--tp",
|
|
||||||
"8",
|
|
||||||
"--trust-remote-code",
|
|
||||||
"--tool-call-parser",
|
|
||||||
"kimi_k2",
|
|
||||||
"--reasoning-parser",
|
|
||||||
"kimi_k2",
|
|
||||||
"--model-loader-extra-config",
|
|
||||||
'{"enable_multithread_load": true, "num_threads": 64}',
|
|
||||||
]
|
|
||||||
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,
|
|
||||||
):
|
|
||||||
requests.get(self.base_url + "/flush_cache")
|
|
||||||
|
|
||||||
args = SimpleNamespace(
|
|
||||||
num_shots=5,
|
|
||||||
data_path=None,
|
|
||||||
num_questions=200,
|
|
||||||
max_new_tokens=512,
|
|
||||||
parallel=128,
|
|
||||||
host="http://127.0.0.1",
|
|
||||||
port=int(self.base_url.split(":")[-1]),
|
|
||||||
)
|
|
||||||
metrics = run_eval_few_shot_gsm8k(args)
|
|
||||||
print(f"{metrics=}")
|
|
||||||
|
|
||||||
if is_in_ci():
|
|
||||||
write_github_step_summary(
|
|
||||||
f"### test_gsm8k (Kimi-K2-Thinking)\n" f'{metrics["accuracy"]=:.3f}\n'
|
|
||||||
)
|
|
||||||
self.assertGreater(metrics["accuracy"], 0.95)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unittest.main()
|
|
||||||
+7
-60
@@ -7,65 +7,13 @@ import tabulate
|
|||||||
from sglang.test.ci.ci_utils import TestFile, run_unittest_files
|
from sglang.test.ci.ci_utils import TestFile, run_unittest_files
|
||||||
|
|
||||||
# NOTE: please sort the test cases alphabetically by the test file name
|
# NOTE: please sort the test cases alphabetically by the test file name
|
||||||
|
# NOTE: per-commit-4-gpu, per-commit-8-gpu-h200, per-commit-8-gpu-h20, per-commit-4-gpu-b200,
|
||||||
|
# per-commit-4-gpu-gb200, per-commit-4-gpu-deepep, and per-commit-8-gpu-h200-deepep suites
|
||||||
|
# have been migrated to stage-c suites in test/registered/ using the CI registry system.
|
||||||
suites = {
|
suites = {
|
||||||
"per-commit-4-gpu": [
|
|
||||||
TestFile("models/test_qwen3_next_models.py", 350),
|
|
||||||
TestFile("models/test_qwen3_next_models_mtp.py", 500),
|
|
||||||
TestFile("test_gpt_oss_4gpu.py", 300),
|
|
||||||
TestFile("test_multi_instance_release_memory_occupation.py", 64),
|
|
||||||
TestFile("test_pp_single_node.py", 500),
|
|
||||||
TestFile("test_epd_disaggregation.py", 150),
|
|
||||||
],
|
|
||||||
"per-commit-8-gpu-h200": [
|
|
||||||
TestFile("test_deepseek_v3_basic.py", 275),
|
|
||||||
TestFile("test_deepseek_v3_mtp.py", 275),
|
|
||||||
TestFile("test_disaggregation_hybrid_attention.py", 400),
|
|
||||||
TestFile("models/test_kimi_k2_models.py", 200),
|
|
||||||
TestFile("test_deepseek_v32_basic.py", 360),
|
|
||||||
TestFile("test_deepseek_v32_mtp.py", 360),
|
|
||||||
TestFile("models/test_mimo_models.py", 200),
|
|
||||||
],
|
|
||||||
"per-commit-8-gpu-h20": [
|
|
||||||
TestFile("quant/test_w4a8_deepseek_v3.py", 520),
|
|
||||||
TestFile("test_disaggregation_different_tp.py", 600),
|
|
||||||
TestFile("test_disaggregation_pp.py", 180),
|
|
||||||
TestFile("test_disaggregation_dp_attention.py", 155),
|
|
||||||
],
|
|
||||||
"per-commit-4-gpu-b200": [
|
|
||||||
TestFile("test_deepseek_v3_fp4_4gpu.py", 1500),
|
|
||||||
TestFile("test_fp8_blockwise_gemm.py", 280),
|
|
||||||
TestFile("test_gpt_oss_4gpu.py", 300),
|
|
||||||
TestFile("test_nvfp4_gemm.py", 360),
|
|
||||||
TestFile("test_deepseek_v32_fp4_4gpu.py", 600),
|
|
||||||
],
|
|
||||||
# "per-commit-8-gpu-b200": [
|
|
||||||
# TestFile("test_mistral_large3_basic.py", 275), # Moved to nightly - large model
|
|
||||||
# ],
|
|
||||||
"per-commit-4-gpu-gb200": [
|
|
||||||
TestFile("test_deepseek_v3_cutedsl_4gpu.py", 1800),
|
|
||||||
TestFile("test_disaggregation_aarch64.py", 300),
|
|
||||||
],
|
|
||||||
"per-commit-4-gpu-deepep": [
|
|
||||||
TestFile("ep/test_deepep_small.py", 531),
|
|
||||||
TestFile("ep/test_mooncake_ep_small.py", 660),
|
|
||||||
],
|
|
||||||
"per-commit-8-gpu-h200-deepep": [
|
|
||||||
TestFile("ep/test_deepep_large.py", 563),
|
|
||||||
],
|
|
||||||
# quantization_test suite migrated to test/registered/quant/
|
# quantization_test suite migrated to test/registered/quant/
|
||||||
"__not_in_ci__": [
|
# All CUDA tests migrated to test/registered/
|
||||||
TestFile("test_release_memory_occupation.py", 200), # Temporarily disabled
|
"__not_in_ci__": [],
|
||||||
TestFile("models/test_dummy_grok_models.py"),
|
|
||||||
TestFile("test_profile_v2.py"),
|
|
||||||
TestFile("models/test_ministral3_models.py"),
|
|
||||||
TestFile("test_mistral_large3_basic.py"),
|
|
||||||
TestFile("test_prefill_delayer.py"),
|
|
||||||
TestFile("test_fla_layernorm_guard.py"),
|
|
||||||
TestFile(
|
|
||||||
"models/test_qwen3_next_models_pcg.py"
|
|
||||||
), # Disabled: intermittent failures, see #17039
|
|
||||||
TestFile("ep/test_moriep_small.py"),
|
|
||||||
],
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add AMD tests
|
# Add AMD tests
|
||||||
@@ -89,9 +37,8 @@ suite_amd = {
|
|||||||
# TestFile("test_wave_attention_backend.py", 150), # Disabled temporarily, see https://github.com/sgl-project/sglang/issues/11127
|
# TestFile("test_wave_attention_backend.py", 150), # Disabled temporarily, see https://github.com/sgl-project/sglang/issues/11127
|
||||||
# The time estimation for `test_int4fp8_moe.py` assumes `mistralai/Mixtral-8x7B-Instruct-v0.1` is already cached (running on 1xMI300X).
|
# The time estimation for `test_int4fp8_moe.py` assumes `mistralai/Mixtral-8x7B-Instruct-v0.1` is already cached (running on 1xMI300X).
|
||||||
],
|
],
|
||||||
"per-commit-4-gpu-amd": [
|
# per-commit-4-gpu-amd migrated to test/registered/distributed/ using the CI registry system
|
||||||
TestFile("test_pp_single_node.py", 150),
|
"per-commit-4-gpu-amd": [],
|
||||||
],
|
|
||||||
# NOTE: AMD nightly suites (nightly-amd, nightly-amd-vlm, nightly-amd-8-gpu)
|
# NOTE: AMD nightly suites (nightly-amd, nightly-amd-vlm, nightly-amd-8-gpu)
|
||||||
# have been migrated to test/registered/amd/nightly/ and are now managed
|
# have been migrated to test/registered/amd/nightly/ and are now managed
|
||||||
# by test/run_suite.py using the registry system.
|
# by test/run_suite.py using the registry system.
|
||||||
|
|||||||
@@ -1,89 +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.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.test_utils import (
|
|
||||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
|
||||||
DEFAULT_URL_FOR_TEST,
|
|
||||||
CustomTestCase,
|
|
||||||
is_in_ci,
|
|
||||||
popen_launch_server,
|
|
||||||
write_github_step_summary,
|
|
||||||
)
|
|
||||||
|
|
||||||
register_cuda_ci(est_time=600, suite="nightly-8-gpu-b200", nightly=True)
|
|
||||||
MISTRAL_LARGE3_MODEL_PATH = "mistralai/Mistral-Large-3-675B-Instruct-2512"
|
|
||||||
|
|
||||||
|
|
||||||
class TestMistralLarge3Basic(CustomTestCase):
|
|
||||||
@classmethod
|
|
||||||
def setUpClass(cls):
|
|
||||||
# Set environment variable to disable JIT DeepGemm
|
|
||||||
os.environ["SGLANG_ENABLE_JIT_DEEPGEMM"] = "0"
|
|
||||||
|
|
||||||
cls.model = MISTRAL_LARGE3_MODEL_PATH
|
|
||||||
cls.base_url = DEFAULT_URL_FOR_TEST
|
|
||||||
other_args = [
|
|
||||||
"--tp",
|
|
||||||
"8",
|
|
||||||
"--attention-backend",
|
|
||||||
"trtllm_mla",
|
|
||||||
"--model-loader-extra-config",
|
|
||||||
'{"enable_multithread_load": true}',
|
|
||||||
"--chat-template",
|
|
||||||
"mistral",
|
|
||||||
]
|
|
||||||
cls.process = popen_launch_server(
|
|
||||||
cls.model,
|
|
||||||
cls.base_url,
|
|
||||||
timeout=DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH * 5,
|
|
||||||
other_args=other_args,
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def tearDownClass(cls):
|
|
||||||
kill_process_tree(cls.process.pid)
|
|
||||||
# Clean up environment variable
|
|
||||||
if "SGLANG_ENABLE_JIT_DEEPGEMM" in os.environ:
|
|
||||||
del os.environ["SGLANG_ENABLE_JIT_DEEPGEMM"]
|
|
||||||
|
|
||||||
def test_a_gsm8k(
|
|
||||||
self,
|
|
||||||
): # Append an "a" to make this test run first (alphabetically) to warm up the server
|
|
||||||
args = SimpleNamespace(
|
|
||||||
num_shots=8,
|
|
||||||
data_path=None,
|
|
||||||
num_questions=1400,
|
|
||||||
parallel=1400,
|
|
||||||
max_new_tokens=512,
|
|
||||||
host="http://127.0.0.1",
|
|
||||||
port=int(self.base_url.split(":")[-1]),
|
|
||||||
)
|
|
||||||
metrics = run_eval_few_shot_gsm8k(args)
|
|
||||||
print(f"{metrics=}")
|
|
||||||
|
|
||||||
if is_in_ci():
|
|
||||||
write_github_step_summary(
|
|
||||||
f"### test_gsm8k (mistral-large-3)\n" f'{metrics["accuracy"]=:.3f}\n'
|
|
||||||
)
|
|
||||||
self.assertGreater(metrics["accuracy"], 0.90)
|
|
||||||
|
|
||||||
def test_bs_1_speed(self):
|
|
||||||
args = BenchArgs(port=int(self.base_url.split(":")[-1]), max_new_tokens=2048)
|
|
||||||
acc_length, speed = send_one_prompt(args)
|
|
||||||
|
|
||||||
print(f"{speed=:.2f}")
|
|
||||||
|
|
||||||
if is_in_ci():
|
|
||||||
write_github_step_summary(
|
|
||||||
f"### test_bs_1_speed (mistral-large-3)\n" f"{speed=:.2f} token/s\n"
|
|
||||||
)
|
|
||||||
self.assertGreater(speed, 50)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
unittest.main()
|
|
||||||
Reference in New Issue
Block a user