ci: unify PR test suite naming (#21187)
This commit is contained in:
@@ -18,10 +18,10 @@ description: Guide for writing SGLang CI/UT tests following project conventions.
|
||||
|
||||
| Scenario | Model | CI Registration | Suite |
|
||||
|----------|-------|-----------------|-------|
|
||||
| **Unit tests** (no server / engine launch) | None | `register_cpu_ci` (prefer) or `register_cuda_ci` | `stage-a-cpu-only` or `stage-b-test-small-1-gpu` |
|
||||
| **Common / backend-independent** (middleware, abort, routing, config, arg parsing) | `DEFAULT_SMALL_MODEL_NAME_FOR_TEST` (1B) | `register_cuda_ci` only | `stage-b-test-small-1-gpu` |
|
||||
| **Model-agnostic functionality** (sampling, session, OpenAI API features) | `DEFAULT_SMALL_MODEL_NAME_FOR_TEST` (1B) | `register_cuda_ci` (+ AMD if relevant) | `stage-b-test-small-1-gpu` |
|
||||
| **General performance** (single node, no spec/DP/parallelism) | `DEFAULT_MODEL_NAME_FOR_TEST` (8B) | `register_cuda_ci` | `stage-b-test-large-1-gpu` |
|
||||
| **Unit tests** (no server / engine launch) | None | `register_cpu_ci` (prefer) or `register_cuda_ci` | `stage-a-test-cpu` or `stage-b-test-1-gpu-small` |
|
||||
| **Common / backend-independent** (middleware, abort, routing, config, arg parsing) | `DEFAULT_SMALL_MODEL_NAME_FOR_TEST` (1B) | `register_cuda_ci` only | `stage-b-test-1-gpu-small` |
|
||||
| **Model-agnostic functionality** (sampling, session, OpenAI API features) | `DEFAULT_SMALL_MODEL_NAME_FOR_TEST` (1B) | `register_cuda_ci` (+ AMD if relevant) | `stage-b-test-1-gpu-small` |
|
||||
| **General performance** (single node, no spec/DP/parallelism) | `DEFAULT_MODEL_NAME_FOR_TEST` (8B) | `register_cuda_ci` | `stage-b-test-1-gpu-large` |
|
||||
| **Bigger features** (spec, DP, TP, disaggregation) | Case by case | Case by case | See suite table below |
|
||||
|
||||
**Key principle for E2E tests**: Do NOT add `register_amd_ci` unless the test specifically exercises AMD/ROCm code paths. Common E2E tests just need any GPU to run — duplicating across backends wastes CI time with no extra coverage.
|
||||
@@ -43,10 +43,10 @@ Defined in `python/sglang/test/test_utils.py`:
|
||||
|
||||
| Suite | Runner | Scenario |
|
||||
|-------|--------|----------|
|
||||
| `stage-a-cpu-only` | CPU | CPU unit tests |
|
||||
| `stage-b-test-small-1-gpu` | 1× 5090 (32GB) | Small model tests |
|
||||
| `stage-b-test-large-1-gpu` | 1× H100 (80GB) | 8B model tests |
|
||||
| `stage-b-test-large-2-gpu` | 2× H100 | TP=2 tests |
|
||||
| `stage-a-test-cpu` | CPU | CPU unit tests |
|
||||
| `stage-b-test-1-gpu-small` | 1× 5090 (32GB) | Small model tests |
|
||||
| `stage-b-test-1-gpu-large` | 1× H100 (80GB) | 8B model tests |
|
||||
| `stage-b-test-2-gpu-large` | 2× H100 | TP=2 tests |
|
||||
| `stage-c-test-4-gpu-h100` | 4× H100 | TP=4 / EP tests |
|
||||
| `stage-c-test-8-gpu-h200` | 8× H200 | Large-scale multi-GPU |
|
||||
| `nightly-1-gpu` | 1 GPU | Nightly-only |
|
||||
@@ -70,7 +70,7 @@ from sglang.srt.<module> import TargetClass
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=5, suite="stage-a-cpu-only")
|
||||
register_cpu_ci(est_time=5, suite="stage-a-test-cpu")
|
||||
# Prefer CPU. Only use register_cuda_ci when the test truly needs a GPU.
|
||||
|
||||
class TestTargetClass(CustomTestCase):
|
||||
@@ -110,7 +110,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
|
||||
class TestMyFeature(CustomTestCase):
|
||||
@@ -159,7 +159,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
|
||||
class TestMyFeaturePerf(CustomTestCase):
|
||||
@@ -227,7 +227,7 @@ Every test file in `test/registered/` **must** call a registration function at m
|
||||
```python
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-1-gpu-small")
|
||||
```
|
||||
|
||||
Parameters:
|
||||
|
||||
@@ -8,7 +8,7 @@ inputs:
|
||||
jobs:
|
||||
description: |
|
||||
JSON array of job specs to wait for. Each element is either:
|
||||
- a string: exact job name (e.g. "stage-a-test-small-1-gpu")
|
||||
- a string: exact job name (e.g. "stage-a-test-1-gpu-small")
|
||||
- an object { "prefix": "...", "expected_count": N }: for matrix jobs
|
||||
required: true
|
||||
max-wait-minutes:
|
||||
|
||||
@@ -35,13 +35,13 @@ on:
|
||||
- ''
|
||||
- sgl-kernel-unit-test-amd
|
||||
- sgl-kernel-unit-test-2-gpu-amd
|
||||
- stage-a-test-small-1-gpu-amd
|
||||
- stage-a-test-1-gpu-small-amd
|
||||
- jit-kernel-unit-test-amd
|
||||
- stage-b-test-small-1-gpu-amd
|
||||
- stage-b-test-small-1-gpu-amd-nondeterministic
|
||||
- stage-b-test-small-1-gpu-amd-mi35x
|
||||
- stage-b-test-large-1-gpu-amd
|
||||
- stage-b-test-large-2-gpu-amd
|
||||
- stage-b-test-1-gpu-small-amd
|
||||
- stage-b-test-1-gpu-small-amd-nondeterministic
|
||||
- stage-b-test-1-gpu-small-amd-mi35x
|
||||
- stage-b-test-1-gpu-large-amd
|
||||
- stage-b-test-2-gpu-large-amd
|
||||
- multimodal-gen-test-1-gpu-amd
|
||||
- multimodal-gen-test-2-gpu-amd
|
||||
- stage-c-test-large-8-gpu-amd
|
||||
@@ -246,12 +246,12 @@ jobs:
|
||||
|
||||
# =============================================== primary ====================================================
|
||||
|
||||
stage-a-test-small-1-gpu-amd:
|
||||
stage-a-test-1-gpu-small-amd:
|
||||
needs: [check-changes]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-small-1-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-1-gpu-small-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -283,7 +283,7 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-a-test-small-1-gpu-amd ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-a-test-1-gpu-small-amd ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
jit-kernel-unit-test-amd:
|
||||
needs: [check-changes]
|
||||
@@ -323,12 +323,12 @@ jobs:
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout" python3 -m pytest -q python/sglang/jit_kernel/tests/test_store_cache.py
|
||||
|
||||
stage-b-test-small-1-gpu-amd:
|
||||
stage-b-test-1-gpu-small-amd:
|
||||
needs: [check-changes]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-small-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -360,14 +360,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 14 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-small-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 14 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-small-1-gpu-amd-nondeterministic:
|
||||
stage-b-test-1-gpu-small-amd-nondeterministic:
|
||||
needs: [check-changes]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-nondeterministic,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-small-amd-nondeterministic,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -398,14 +398,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-amd-nondeterministic --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-small-amd-nondeterministic --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-small-1-gpu-amd-mi35x:
|
||||
stage-b-test-1-gpu-small-amd-mi35x:
|
||||
needs: [check-changes]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-mi35x,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-small-amd-mi35x,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -436,14 +436,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-amd-mi35x ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-small-amd-mi35x ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-large-1-gpu-amd:
|
||||
stage-b-test-1-gpu-large-amd:
|
||||
needs: [check-changes]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-1-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-large-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -475,14 +475,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-large-1-gpu-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-large-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-large-2-gpu-amd:
|
||||
stage-b-test-2-gpu-large-amd:
|
||||
needs: [check-changes]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-2-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-2-gpu-large-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -514,7 +514,7 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-large-2-gpu-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-2-gpu-large-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
multimodal-gen-test-1-gpu-amd:
|
||||
needs: [check-changes]
|
||||
@@ -984,13 +984,13 @@ jobs:
|
||||
multimodal-gen-test-1-gpu-amd,
|
||||
multimodal-gen-test-2-gpu-amd,
|
||||
|
||||
stage-a-test-small-1-gpu-amd,
|
||||
stage-a-test-1-gpu-small-amd,
|
||||
jit-kernel-unit-test-amd,
|
||||
stage-b-test-small-1-gpu-amd,
|
||||
stage-b-test-small-1-gpu-amd-nondeterministic,
|
||||
stage-b-test-small-1-gpu-amd-mi35x,
|
||||
stage-b-test-large-1-gpu-amd,
|
||||
stage-b-test-large-2-gpu-amd,
|
||||
stage-b-test-1-gpu-small-amd,
|
||||
stage-b-test-1-gpu-small-amd-nondeterministic,
|
||||
stage-b-test-1-gpu-small-amd-mi35x,
|
||||
stage-b-test-1-gpu-large-amd,
|
||||
stage-b-test-2-gpu-large-amd,
|
||||
stage-b-test-large-8-gpu-35x-disaggregation-amd,
|
||||
stage-c-test-large-8-gpu-amd,
|
||||
stage-c-test-large-8-gpu-amd-mi35x,
|
||||
|
||||
@@ -33,13 +33,13 @@ on:
|
||||
- ''
|
||||
- sgl-kernel-unit-test-amd
|
||||
- sgl-kernel-unit-test-2-gpu-amd
|
||||
- stage-a-test-small-1-gpu-amd
|
||||
- stage-a-test-1-gpu-small-amd
|
||||
- jit-kernel-unit-test-amd
|
||||
- stage-b-test-small-1-gpu-amd
|
||||
- stage-b-test-small-1-gpu-amd-nondeterministic
|
||||
- stage-b-test-small-1-gpu-amd-mi35x
|
||||
- stage-b-test-large-1-gpu-amd
|
||||
- stage-b-test-large-2-gpu-amd
|
||||
- stage-b-test-1-gpu-small-amd
|
||||
- stage-b-test-1-gpu-small-amd-nondeterministic
|
||||
- stage-b-test-1-gpu-small-amd-mi35x
|
||||
- stage-b-test-1-gpu-large-amd
|
||||
- stage-b-test-2-gpu-large-amd
|
||||
- multimodal-gen-test-1-gpu-amd
|
||||
- multimodal-gen-test-2-gpu-amd
|
||||
- stage-c-test-large-8-gpu-amd
|
||||
@@ -246,12 +246,12 @@ jobs:
|
||||
|
||||
# =============================================== primary ====================================================
|
||||
|
||||
stage-a-test-small-1-gpu-amd:
|
||||
stage-a-test-1-gpu-small-amd:
|
||||
needs: [check-changes]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-small-1-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-1-gpu-small-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -284,7 +284,7 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-a-test-small-1-gpu-amd ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-a-test-1-gpu-small-amd ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
jit-kernel-unit-test-amd:
|
||||
needs: [check-changes]
|
||||
@@ -325,12 +325,12 @@ jobs:
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout" python3 -m pytest -q python/sglang/jit_kernel/tests/test_store_cache.py
|
||||
|
||||
stage-b-test-small-1-gpu-amd:
|
||||
needs: [check-changes, stage-a-test-small-1-gpu-amd]
|
||||
stage-b-test-1-gpu-small-amd:
|
||||
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-small-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -363,14 +363,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 14 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-small-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 14 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-small-1-gpu-amd-nondeterministic:
|
||||
needs: [check-changes, stage-a-test-small-1-gpu-amd]
|
||||
stage-b-test-1-gpu-small-amd-nondeterministic:
|
||||
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-nondeterministic,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-small-amd-nondeterministic,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -402,14 +402,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-amd-nondeterministic --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-small-amd-nondeterministic --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-small-1-gpu-amd-mi35x:
|
||||
needs: [check-changes, stage-a-test-small-1-gpu-amd]
|
||||
stage-b-test-1-gpu-small-amd-mi35x:
|
||||
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-mi35x,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-small-amd-mi35x,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -441,14 +441,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-small-1-gpu-amd-mi35x ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-small-amd-mi35x ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-large-1-gpu-amd:
|
||||
needs: [check-changes, stage-a-test-small-1-gpu-amd]
|
||||
stage-b-test-1-gpu-large-amd:
|
||||
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-1-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-1-gpu-large-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -481,14 +481,14 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-large-1-gpu-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-1-gpu-large-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-b-test-large-2-gpu-amd:
|
||||
needs: [check-changes, stage-a-test-small-1-gpu-amd]
|
||||
stage-b-test-2-gpu-large-amd:
|
||||
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-2-gpu-amd,')) ||
|
||||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-2-gpu-large-amd,')) ||
|
||||
(
|
||||
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||
(!failure() && !cancelled()) &&
|
||||
@@ -521,7 +521,7 @@ jobs:
|
||||
- name: Run test
|
||||
timeout-minutes: 30
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-large-2-gpu-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-b-test-2-gpu-large-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
multimodal-gen-test-1-gpu-amd:
|
||||
needs: [check-changes]
|
||||
@@ -779,7 +779,7 @@ jobs:
|
||||
|
||||
|
||||
stage-c-test-large-8-gpu-amd:
|
||||
needs: [check-changes, call-gate, stage-b-test-small-1-gpu-amd, stage-b-test-large-2-gpu-amd]
|
||||
needs: [check-changes, call-gate, stage-b-test-1-gpu-small-amd, stage-b-test-2-gpu-large-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
@@ -827,7 +827,7 @@ jobs:
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w "/sglang-checkout/test" python3 run_suite.py --hw amd --suite stage-c-test-large-8-gpu-amd --auto-partition-id ${{ matrix.part }} --auto-partition-size 3 --timeout-per-file 3600 ${{ inputs.continue_on_error && '--continue-on-error' || '' }}
|
||||
|
||||
stage-c-test-large-8-gpu-amd-mi35x:
|
||||
needs: [check-changes, call-gate, stage-b-test-small-1-gpu-amd, stage-b-test-large-2-gpu-amd]
|
||||
needs: [check-changes, call-gate, stage-b-test-1-gpu-small-amd, stage-b-test-2-gpu-large-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
@@ -868,7 +868,7 @@ jobs:
|
||||
|
||||
# =============================================== Disaggregation ====================================================
|
||||
stage-b-test-large-8-gpu-35x-disaggregation-amd:
|
||||
needs: [check-changes, stage-a-test-small-1-gpu-amd]
|
||||
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
@@ -989,13 +989,13 @@ jobs:
|
||||
multimodal-gen-test-1-gpu-amd,
|
||||
multimodal-gen-test-2-gpu-amd,
|
||||
|
||||
stage-a-test-small-1-gpu-amd,
|
||||
stage-a-test-1-gpu-small-amd,
|
||||
jit-kernel-unit-test-amd,
|
||||
stage-b-test-small-1-gpu-amd,
|
||||
stage-b-test-small-1-gpu-amd-nondeterministic,
|
||||
stage-b-test-small-1-gpu-amd-mi35x,
|
||||
stage-b-test-large-1-gpu-amd,
|
||||
stage-b-test-large-2-gpu-amd,
|
||||
stage-b-test-1-gpu-small-amd,
|
||||
stage-b-test-1-gpu-small-amd-nondeterministic,
|
||||
stage-b-test-1-gpu-small-amd-mi35x,
|
||||
stage-b-test-1-gpu-large-amd,
|
||||
stage-b-test-2-gpu-large-amd,
|
||||
stage-b-test-large-8-gpu-35x-disaggregation-amd,
|
||||
stage-c-test-large-8-gpu-amd,
|
||||
stage-c-test-large-8-gpu-amd-mi35x,
|
||||
|
||||
@@ -345,7 +345,7 @@ jobs:
|
||||
id: wait
|
||||
with:
|
||||
stage-name: stage-a
|
||||
jobs: '["stage-a-test-small-1-gpu", "stage-a-cpu-only"]'
|
||||
jobs: '["stage-a-test-1-gpu-small", "stage-a-test-cpu"]'
|
||||
max-wait-minutes: '240'
|
||||
|
||||
wait-for-stage-b:
|
||||
@@ -377,9 +377,9 @@ jobs:
|
||||
stage-name: stage-b
|
||||
jobs: |
|
||||
[
|
||||
{"prefix": "stage-b-test-small-1-gpu", "expected_count": 8},
|
||||
{"prefix": "stage-b-test-large-1-gpu", "expected_count": 14},
|
||||
{"prefix": "stage-b-test-large-2-gpu", "expected_count": 4},
|
||||
{"prefix": "stage-b-test-1-gpu-small", "expected_count": 8},
|
||||
{"prefix": "stage-b-test-1-gpu-large", "expected_count": 14},
|
||||
{"prefix": "stage-b-test-2-gpu-large", "expected_count": 4},
|
||||
{"prefix": "stage-b-test-4-gpu-b200", "expected_count": 1}
|
||||
]
|
||||
max-wait-minutes: '480'
|
||||
@@ -833,12 +833,12 @@ jobs:
|
||||
# =============================================== primary ====================================================
|
||||
|
||||
# Runs on 5090 (32GB, SM120)
|
||||
stage-a-test-small-1-gpu:
|
||||
stage-a-test-1-gpu-small:
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(inputs.target_stage == 'stage-a-test-small-1-gpu') ||
|
||||
(inputs.target_stage == 'stage-a-test-1-gpu-small') ||
|
||||
(
|
||||
!inputs.target_stage &&
|
||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||
@@ -876,17 +876,17 @@ jobs:
|
||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||
run: |
|
||||
cd test/
|
||||
python3 run_suite.py --hw cuda --suite stage-a-test-small-1-gpu $CONTINUE_ON_ERROR_FLAG
|
||||
python3 run_suite.py --hw cuda --suite stage-a-test-1-gpu-small $CONTINUE_ON_ERROR_FLAG
|
||||
|
||||
- uses: ./.github/actions/upload-cuda-coredumps
|
||||
if: always()
|
||||
|
||||
stage-a-cpu-only:
|
||||
stage-a-test-cpu:
|
||||
needs: [check-changes, call-gate]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(inputs.target_stage == 'stage-a-cpu-only') ||
|
||||
(inputs.target_stage == 'stage-a-test-cpu') ||
|
||||
(
|
||||
!inputs.target_stage &&
|
||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||
@@ -932,15 +932,15 @@ jobs:
|
||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||
run: |
|
||||
cd test/
|
||||
python3 run_suite.py --hw cpu --suite stage-a-cpu-only $CONTINUE_ON_ERROR_FLAG
|
||||
python3 run_suite.py --hw cpu --suite stage-a-test-cpu $CONTINUE_ON_ERROR_FLAG
|
||||
|
||||
# Runs on 5090 (32GB, SM120)
|
||||
stage-b-test-small-1-gpu:
|
||||
stage-b-test-1-gpu-small:
|
||||
needs: [check-changes, call-gate, wait-for-stage-a, sgl-kernel-build-wheels]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(inputs.target_stage == 'stage-b-test-small-1-gpu') ||
|
||||
(inputs.target_stage == 'stage-b-test-1-gpu-small') ||
|
||||
(
|
||||
!inputs.target_stage &&
|
||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||
@@ -988,7 +988,7 @@ jobs:
|
||||
run: |
|
||||
source /etc/profile.d/sglang-ci.sh
|
||||
cd test/
|
||||
python3 run_suite.py --hw cuda --suite stage-b-test-small-1-gpu --auto-partition-id ${{ matrix.partition }} --auto-partition-size 8 $CONTINUE_ON_ERROR_FLAG
|
||||
python3 run_suite.py --hw cuda --suite stage-b-test-1-gpu-small --auto-partition-id ${{ matrix.partition }} --auto-partition-size 8 $CONTINUE_ON_ERROR_FLAG
|
||||
|
||||
- uses: ./.github/actions/upload-cuda-coredumps
|
||||
if: always()
|
||||
@@ -996,12 +996,12 @@ jobs:
|
||||
artifact-suffix: ${{ matrix.partition }}
|
||||
|
||||
# Runs on H100 (80GB, SM90) - tests that don't pass on 5090 (FA3, FP8, high VRAM, etc.)
|
||||
stage-b-test-large-1-gpu:
|
||||
stage-b-test-1-gpu-large:
|
||||
needs: [check-changes, call-gate, wait-for-stage-a, sgl-kernel-build-wheels]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(inputs.target_stage == 'stage-b-test-large-1-gpu') ||
|
||||
(inputs.target_stage == 'stage-b-test-1-gpu-large') ||
|
||||
(
|
||||
!inputs.target_stage &&
|
||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||
@@ -1044,19 +1044,19 @@ jobs:
|
||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||
run: |
|
||||
cd test/
|
||||
python3 run_suite.py --hw cuda --suite stage-b-test-large-1-gpu --auto-partition-id ${{ matrix.partition }} --auto-partition-size 14 --timeout-per-file 1800 $CONTINUE_ON_ERROR_FLAG
|
||||
python3 run_suite.py --hw cuda --suite stage-b-test-1-gpu-large --auto-partition-id ${{ matrix.partition }} --auto-partition-size 14 --timeout-per-file 1800 $CONTINUE_ON_ERROR_FLAG
|
||||
|
||||
- uses: ./.github/actions/upload-cuda-coredumps
|
||||
if: always()
|
||||
with:
|
||||
artifact-suffix: ${{ matrix.partition }}
|
||||
|
||||
stage-b-test-large-2-gpu:
|
||||
stage-b-test-2-gpu-large:
|
||||
needs: [check-changes, call-gate, wait-for-stage-a, sgl-kernel-build-wheels]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(inputs.target_stage == 'stage-b-test-large-2-gpu') ||
|
||||
(inputs.target_stage == 'stage-b-test-2-gpu-large') ||
|
||||
(
|
||||
!inputs.target_stage &&
|
||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||
@@ -1101,7 +1101,7 @@ jobs:
|
||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||
run: |
|
||||
cd test/
|
||||
python3 run_suite.py --hw cuda --suite stage-b-test-large-2-gpu --auto-partition-id ${{ matrix.partition }} --auto-partition-size 4 $CONTINUE_ON_ERROR_FLAG
|
||||
python3 run_suite.py --hw cuda --suite stage-b-test-2-gpu-large --auto-partition-id ${{ matrix.partition }} --auto-partition-size 4 $CONTINUE_ON_ERROR_FLAG
|
||||
|
||||
- uses: ./.github/actions/upload-cuda-coredumps
|
||||
if: always()
|
||||
@@ -1502,12 +1502,12 @@ jobs:
|
||||
with:
|
||||
artifact-suffix: ${{ matrix.part }}
|
||||
|
||||
stage-c-test-deepep-4-gpu:
|
||||
stage-c-test-deepep-4-gpu-h100:
|
||||
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||
if: |
|
||||
always() &&
|
||||
(
|
||||
(inputs.target_stage == 'stage-c-test-deepep-4-gpu') ||
|
||||
(inputs.target_stage == 'stage-c-test-deepep-4-gpu-h100') ||
|
||||
(
|
||||
!inputs.target_stage &&
|
||||
((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) &&
|
||||
@@ -1557,7 +1557,7 @@ jobs:
|
||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||
run: |
|
||||
cd test
|
||||
python3 run_suite.py --hw cuda --suite stage-c-test-deepep-4-gpu $CONTINUE_ON_ERROR_FLAG
|
||||
python3 run_suite.py --hw cuda --suite stage-c-test-deepep-4-gpu-h100 $CONTINUE_ON_ERROR_FLAG
|
||||
|
||||
- uses: ./.github/actions/upload-cuda-coredumps
|
||||
if: always()
|
||||
@@ -1753,16 +1753,16 @@ jobs:
|
||||
multimodal-gen-test-1-gpu,
|
||||
multimodal-gen-test-2-gpu,
|
||||
|
||||
stage-a-test-small-1-gpu,
|
||||
stage-a-cpu-only,
|
||||
stage-b-test-small-1-gpu,
|
||||
stage-b-test-large-1-gpu,
|
||||
stage-b-test-large-2-gpu,
|
||||
stage-a-test-1-gpu-small,
|
||||
stage-a-test-cpu,
|
||||
stage-b-test-1-gpu-small,
|
||||
stage-b-test-1-gpu-large,
|
||||
stage-b-test-2-gpu-large,
|
||||
stage-b-test-4-gpu-b200,
|
||||
stage-c-test-4-gpu-h100,
|
||||
stage-c-test-8-gpu-h20,
|
||||
stage-c-test-8-gpu-h200,
|
||||
stage-c-test-deepep-4-gpu,
|
||||
stage-c-test-deepep-4-gpu-h100,
|
||||
stage-c-test-deepep-8-gpu-h200,
|
||||
stage-c-test-4-gpu-b200,
|
||||
# stage-c-test-4-gpu-gb200, # Temporarily disabled — no GB200 runner
|
||||
|
||||
@@ -10,7 +10,7 @@ import torch
|
||||
from sglang.jit_kernel.moe_lora_align import moe_lora_align_block_size
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
|
||||
def round_up(x, base):
|
||||
|
||||
@@ -253,18 +253,18 @@ def handle_rerun_stage(
|
||||
|
||||
# Valid NVIDIA stage names that support target_stage
|
||||
nvidia_stages = [
|
||||
"stage-a-test-small-1-gpu",
|
||||
"stage-a-cpu-only",
|
||||
"stage-b-test-small-1-gpu",
|
||||
"stage-b-test-large-1-gpu",
|
||||
"stage-b-test-large-2-gpu",
|
||||
"stage-a-test-1-gpu-small",
|
||||
"stage-a-test-cpu",
|
||||
"stage-b-test-1-gpu-small",
|
||||
"stage-b-test-1-gpu-large",
|
||||
"stage-b-test-2-gpu-large",
|
||||
"stage-b-test-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-4-gpu-h100",
|
||||
"stage-c-test-deepep-8-gpu-h200",
|
||||
"multimodal-gen-test-1-gpu",
|
||||
"multimodal-gen-test-2-gpu",
|
||||
@@ -274,12 +274,12 @@ def handle_rerun_stage(
|
||||
amd_stages = [
|
||||
"sgl-kernel-unit-test-amd",
|
||||
"sgl-kernel-unit-test-2-gpu-amd",
|
||||
"stage-a-test-small-1-gpu-amd",
|
||||
"stage-b-test-small-1-gpu-amd",
|
||||
"stage-b-test-small-1-gpu-amd-nondeterministic",
|
||||
"stage-b-test-small-1-gpu-amd-mi35x",
|
||||
"stage-b-test-large-1-gpu-amd",
|
||||
"stage-b-test-large-2-gpu-amd",
|
||||
"stage-a-test-1-gpu-small-amd",
|
||||
"stage-b-test-1-gpu-small-amd",
|
||||
"stage-b-test-1-gpu-small-amd-nondeterministic",
|
||||
"stage-b-test-1-gpu-small-amd-mi35x",
|
||||
"stage-b-test-1-gpu-large-amd",
|
||||
"stage-b-test-2-gpu-large-amd",
|
||||
"multimodal-gen-test-1-gpu-amd",
|
||||
"multimodal-gen-test-2-gpu-amd",
|
||||
"stage-c-test-large-8-gpu-amd",
|
||||
@@ -412,23 +412,23 @@ def handle_rerun_stage(
|
||||
|
||||
|
||||
CUDA_SUITE_TO_RUNNER = {
|
||||
"stage-a-test-small-1-gpu": "1-gpu-5090",
|
||||
"stage-a-cpu-only": "ubuntu-latest",
|
||||
"stage-b-test-small-1-gpu": "1-gpu-5090",
|
||||
"stage-b-test-large-1-gpu": "1-gpu-h100",
|
||||
"stage-b-test-large-2-gpu": "2-gpu-h100",
|
||||
"stage-a-test-1-gpu-small": "1-gpu-5090",
|
||||
"stage-a-test-cpu": "ubuntu-latest",
|
||||
"stage-b-test-1-gpu-small": "1-gpu-5090",
|
||||
"stage-b-test-1-gpu-large": "1-gpu-h100",
|
||||
"stage-b-test-2-gpu-large": "2-gpu-h100",
|
||||
"stage-b-test-4-gpu-b200": "4-gpu-b200",
|
||||
"stage-c-test-4-gpu-h100": "4-gpu-h100",
|
||||
"stage-c-test-8-gpu-h200": "8-gpu-h200",
|
||||
"stage-c-test-8-gpu-h20": "8-gpu-h20",
|
||||
"stage-c-test-4-gpu-b200": "4-gpu-b200",
|
||||
"stage-c-test-deepep-4-gpu": "4-gpu-h100",
|
||||
"stage-c-test-deepep-4-gpu-h100": "4-gpu-h100",
|
||||
"stage-c-test-deepep-8-gpu-h200": "8-gpu-h200",
|
||||
}
|
||||
|
||||
DEEPEP_SUITES = {
|
||||
"stage-c-test-8-gpu-h20",
|
||||
"stage-c-test-deepep-4-gpu",
|
||||
"stage-c-test-deepep-4-gpu-h100",
|
||||
"stage-c-test-deepep-8-gpu-h200",
|
||||
}
|
||||
|
||||
|
||||
+19
-19
@@ -47,23 +47,23 @@ from sglang.test.ci.ci_register import (
|
||||
)
|
||||
|
||||
# Per-commit test (small 1-gpu, runs on 5090)
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
# Per-commit test (large 1-gpu, runs on H100)
|
||||
register_cuda_ci(est_time=120, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=120, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
# Per-commit test (2-gpu)
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-large-2-gpu")
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-2-gpu-large")
|
||||
|
||||
# Nightly-only test
|
||||
register_cuda_ci(est_time=200, suite="nightly-1-gpu", nightly=True)
|
||||
|
||||
# Multi-backend test
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=120, suite="stage-a-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=120, suite="stage-a-test-1-gpu-small-amd")
|
||||
|
||||
# Temporarily disabled test
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-small-1-gpu", disabled="flaky - see #12345")
|
||||
register_cuda_ci(est_time=80, suite="stage-b-test-1-gpu-small", disabled="flaky - see #12345")
|
||||
```
|
||||
|
||||
### Choosing Between 1-GPU Suites (5090 vs H100)
|
||||
@@ -72,14 +72,14 @@ When adding 1-GPU tests, choose the appropriate suite based on hardware compatib
|
||||
|
||||
| Suite | Runner | GPU | When to Use |
|
||||
|-------|--------|-----|-------------|
|
||||
| `stage-a-test-small-1-gpu` | `1-gpu-5090` | RTX 5090 (32GB, SM120) | Stage A per-commit smoke on 5090 (CUDA) |
|
||||
| `stage-a-test-small-1-gpu-amd` | AMD CI runners | ROCm | Stage A per-commit smoke (AMD) |
|
||||
| `stage-b-test-small-1-gpu` | `1-gpu-5090` | RTX 5090 (32GB, SM120) | 5090-compatible tests (preferred) |
|
||||
| `stage-b-test-large-1-gpu` | `1-gpu-h100` | H100 (80GB, SM90) | Large models or 5090-incompatible tests |
|
||||
| `stage-a-test-1-gpu-small` | `1-gpu-5090` | RTX 5090 (32GB, SM120) | Stage A per-commit smoke on 5090 (CUDA) |
|
||||
| `stage-a-test-1-gpu-small-amd` | AMD CI runners | ROCm | Stage A per-commit smoke (AMD) |
|
||||
| `stage-b-test-1-gpu-small` | `1-gpu-5090` | RTX 5090 (32GB, SM120) | 5090-compatible tests (preferred) |
|
||||
| `stage-b-test-1-gpu-large` | `1-gpu-h100` | H100 (80GB, SM90) | Large models or 5090-incompatible tests |
|
||||
|
||||
**Use `stage-b-test-small-1-gpu` (5090) whenever possible** - this is the preferred suite for most 1-GPU tests.
|
||||
**Use `stage-b-test-1-gpu-small` (5090) whenever possible** - this is the preferred suite for most 1-GPU tests.
|
||||
|
||||
**Use `stage-b-test-large-1-gpu` (H100) if ANY of these apply:**
|
||||
**Use `stage-b-test-1-gpu-large` (H100) if ANY of these apply:**
|
||||
|
||||
1. **Architecture incompatibility (SM120/Blackwell)**:
|
||||
- FA3 attention backend (requires SM≤90)
|
||||
@@ -95,18 +95,18 @@ When adding 1-GPU tests, choose the appropriate suite based on hardware compatib
|
||||
- Weight update/sync tests
|
||||
- Certain spec decoding tests
|
||||
|
||||
If a test cannot run on 5090 due to any of the above, use `stage-b-test-large-1-gpu` which runs on H100.
|
||||
If a test cannot run on 5090 due to any of the above, use `stage-b-test-1-gpu-large` which runs on H100.
|
||||
|
||||
### Available Suites
|
||||
|
||||
**Per-Commit (CUDA)**:
|
||||
- Stage A: `stage-a-test-small-1-gpu` (5090), `stage-a-test-2`, `stage-a-test-cpu`
|
||||
- Stage B: `stage-b-test-small-1-gpu` (5090), `stage-b-test-large-1-gpu` (H100), `stage-b-test-large-2-gpu`
|
||||
- Stage C (4-GPU): `stage-c-test-4-gpu-h100`, `stage-c-test-4-gpu-b200`, `stage-c-test-4-gpu-gb200`, `stage-c-test-deepep-4-gpu`
|
||||
- Stage A: `stage-a-test-1-gpu-small` (5090), `stage-a-test-2`, `stage-a-test-cpu`
|
||||
- Stage B: `stage-b-test-1-gpu-small` (5090), `stage-b-test-1-gpu-large` (H100), `stage-b-test-2-gpu-large`
|
||||
- Stage C (4-GPU): `stage-c-test-4-gpu-h100`, `stage-c-test-4-gpu-b200`, `stage-c-test-4-gpu-gb200`, `stage-c-test-deepep-4-gpu-h100`
|
||||
- Stage C (8-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`
|
||||
|
||||
**Per-Commit (AMD)**:
|
||||
- `stage-a-test-small-1-gpu-amd`, `stage-b-test-small-1-gpu-amd`, `stage-b-test-large-2-gpu-amd`
|
||||
- `stage-a-test-1-gpu-small-amd`, `stage-b-test-1-gpu-small-amd`, `stage-b-test-2-gpu-large-amd`
|
||||
|
||||
**Nightly**:
|
||||
- `nightly-1-gpu`, `nightly-2-gpu`, `nightly-4-gpu`, `nightly-8-gpu`, etc.
|
||||
@@ -115,13 +115,13 @@ If a test cannot run on 5090 due to any of the above, use `stage-b-test-large-1-
|
||||
|
||||
```bash
|
||||
# Run per-commit tests
|
||||
python test/run_suite.py --hw cuda --suite stage-b-test-small-1-gpu
|
||||
python test/run_suite.py --hw cuda --suite stage-b-test-1-gpu-small
|
||||
|
||||
# Run nightly tests
|
||||
python test/run_suite.py --hw cuda --suite nightly-1-gpu --nightly
|
||||
|
||||
# With auto-partitioning (for parallel CI jobs)
|
||||
python test/run_suite.py --hw cuda --suite stage-b-test-small-1-gpu \
|
||||
python test/run_suite.py --hw cuda --suite stage-b-test-1-gpu-small \
|
||||
--auto-partition-id 0 --auto-partition-size 4
|
||||
```
|
||||
|
||||
|
||||
@@ -212,7 +212,7 @@ class TestDisaggregationAccuracy(PDDisaggregationServerBase):
|
||||
)
|
||||
|
||||
|
||||
# register_amd_ci(est_time=300, suite="stage-b-test-large-2-gpu-amd")
|
||||
# register_amd_ci(est_time=300, suite="stage-b-test-2-gpu-large-amd")
|
||||
class TestDisaggregationMooncakeFailure(PDDisaggregationServerBase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
@@ -322,7 +322,7 @@ class TestDisaggregationMooncakeFailure(PDDisaggregationServerBase):
|
||||
raise e from health_check_error
|
||||
|
||||
|
||||
# register_amd_ci(est_time=300, suite="stage-b-test-large-2-gpu-amd")
|
||||
# register_amd_ci(est_time=300, suite="stage-b-test-2-gpu-large-amd")
|
||||
class TestDisaggregationSimulatedRetract(PDDisaggregationServerBase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.srt.layers.attention.fla.fused_recurrent import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
|
||||
@unittest.skipIf(not torch.cuda.is_available(), "Test requires CUDA")
|
||||
|
||||
@@ -9,8 +9,8 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
# Triton kernel unit test for KV indices creation
|
||||
register_cuda_ci(est_time=10, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=10, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=10, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=10, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestCreateKvIndices(CustomTestCase):
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
# FlashAttention3 integration tests (requires SM 90+ / H100)
|
||||
# Multiple test classes: FA3, FA3+MLA, FA3+SpecDecode variants
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
GSM_DATASET_PATH = None
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
# Hybrid attention backend tests (FA3 prefill + FlashInfer decode, requires SM 90+ / H100)
|
||||
# Multiple test classes: base, MLA, TorchCompile, SpecDecode variants
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
GSM_DATASET_PATH = None
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.srt.layers.attention.fla.fused_sigmoid_gating_recurrent import (
|
||||
from sglang.srt.layers.attention.fla.kda import fused_kda_gate, fused_recurrent_kda
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=30, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=30, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
|
||||
@unittest.skipIf(not torch.cuda.is_available(), "Test requires CUDA")
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
# Register this test for CUDA CI in stage-b (fast attention/kernel tests)
|
||||
register_cuda_ci(est_time=25, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=25, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
|
||||
def reference_normal_decode_set_metadata(
|
||||
|
||||
@@ -18,8 +18,8 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# Torch native attention backend integration test with MMLU eval
|
||||
register_cuda_ci(est_time=169, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=150, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=169, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=150, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestTorchNativeAttnBackend(CustomTestCase):
|
||||
|
||||
@@ -20,8 +20,8 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# Triton attention backend integration test with latency benchmark and MMLU eval
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=1400, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=1400, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestTritonAttnBackend(CustomTestCase):
|
||||
|
||||
@@ -23,8 +23,8 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase, is_in_amd_ci
|
||||
|
||||
# Triton attention kernel unit tests (decode, extend, prefill)
|
||||
register_cuda_ci(est_time=30, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=30, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=30, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=30, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
def extend_attention_fwd_torch(
|
||||
|
||||
@@ -16,8 +16,8 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
|
||||
# Sliding window attention with Triton backend (Gemma-3 model)
|
||||
register_cuda_ci(est_time=100, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=200, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=100, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=200, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestSlidingWindowAttentionTriton(CustomTestCase):
|
||||
|
||||
@@ -25,7 +25,7 @@ from sglang.srt.utils import get_device
|
||||
from sglang.test.ci.ci_register import register_amd_ci
|
||||
|
||||
# Wave attention kernel unit tests (AMD only - requires wave_lang)
|
||||
register_amd_ci(est_time=60, suite="stage-a-test-small-1-gpu-amd")
|
||||
register_amd_ci(est_time=60, suite="stage-a-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestWaveAttention(unittest.TestCase):
|
||||
|
||||
@@ -16,8 +16,8 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=144, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=1100, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=144, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=1100, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestTorchCompile(CustomTestCase):
|
||||
|
||||
@@ -26,7 +26,7 @@ from sglang.benchmark.datasets.random import sample_random_requests
|
||||
from sglang.benchmark.datasets.sharegpt import sample_sharegpt_requests
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="stage-a-cpu-only")
|
||||
register_cpu_ci(est_time=5, suite="stage-a-test-cpu")
|
||||
|
||||
|
||||
class _DummyTokenTensor:
|
||||
|
||||
@@ -13,8 +13,8 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=111, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=179, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=111, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=179, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class ServerWithGrammar(CustomTestCase):
|
||||
|
||||
@@ -16,8 +16,8 @@ from sglang.test.test_deterministic_utils import (
|
||||
)
|
||||
from sglang.test.test_utils import is_in_amd_ci
|
||||
|
||||
register_cuda_ci(est_time=278, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=278, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=278, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=278, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
@unittest.skipIf(is_in_amd_ci(), "Skip for AMD CI.")
|
||||
|
||||
@@ -3,8 +3,8 @@ import unittest
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.gpt_oss_common import BaseTestGptOss
|
||||
|
||||
register_cuda_ci(est_time=519, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=750, suite="stage-b-test-small-1-gpu-amd-mi35x")
|
||||
register_cuda_ci(est_time=519, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=750, suite="stage-b-test-1-gpu-small-amd-mi35x")
|
||||
|
||||
|
||||
class TestGptOss1Gpu(BaseTestGptOss):
|
||||
|
||||
@@ -5,7 +5,7 @@ import torch
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.gpt_oss_common import BaseTestGptOss
|
||||
|
||||
register_cuda_ci(est_time=500, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=500, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
|
||||
@unittest.skipIf(not torch.cuda.is_available(), "CUDA is not available")
|
||||
|
||||
@@ -8,8 +8,8 @@ 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.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST, CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=55, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=55, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=55, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=55, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
_is_hip = is_hip()
|
||||
if _is_hip:
|
||||
|
||||
@@ -13,8 +13,8 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=60, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=60, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=60, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestPageSize(CustomTestCase):
|
||||
|
||||
@@ -17,8 +17,8 @@ from sglang.test.test_utils import (
|
||||
send_generate_requests,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=47, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=70, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=47, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=70, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestMaxQueuedRequests(CustomTestCase):
|
||||
|
||||
@@ -7,7 +7,7 @@ from sglang.srt.entrypoints.engine import Engine
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST, CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=260, suite="stage-b-test-large-1-gpu")
|
||||
register_cuda_ci(est_time=260, suite="stage-b-test-1-gpu-large")
|
||||
|
||||
TEST_MODEL_NAME = DEFAULT_SMALL_MODEL_NAME_FOR_TEST
|
||||
|
||||
|
||||
@@ -27,8 +27,8 @@ from sglang.test.test_utils import (
|
||||
run_logprob_check,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=127, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=130, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=127, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=130, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestSRTEndpoint(CustomTestCase):
|
||||
|
||||
@@ -22,8 +22,8 @@ from sglang.test.test_utils import (
|
||||
CustomTestCase,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=252, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=261, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=252, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=261, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestSRTEngine(CustomTestCase):
|
||||
|
||||
@@ -28,7 +28,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis, TokenLayou
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestExecuteSubPlans:
|
||||
|
||||
@@ -25,7 +25,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import TokenLayout
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _make_meta(
|
||||
|
||||
@@ -22,7 +22,7 @@ from sglang.srt.debug_utils.comparator.aligner.unsharder.types import (
|
||||
from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _zigzag_order(cp_size: int) -> list[int]:
|
||||
|
||||
@@ -24,7 +24,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestComputeReordererPlans:
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.srt.debug_utils.comparator.log_sink import log_sink
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestComputeAxisAlignerPlan:
|
||||
|
||||
@@ -19,7 +19,7 @@ from sglang.srt.debug_utils.comparator.log_sink import LogSink
|
||||
from sglang.srt.debug_utils.comparator.output_types import ErrorLog, InfoLog
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
_sglang_plugin = _SGLangPlugin()
|
||||
_megatron_plugin = _MegatronPlugin()
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.srt.debug_utils.comparator.aligner.token_aligner.smart.types import
|
||||
from sglang.srt.debug_utils.comparator.dims_spec import TokenLayout
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
_sglang_plugin = _SGLangPlugin()
|
||||
_megatron_plugin = _MegatronPlugin()
|
||||
|
||||
@@ -9,7 +9,7 @@ from sglang.srt.debug_utils.comparator.aligner.token_aligner.concat_steps import
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestExecuteConcat:
|
||||
|
||||
@@ -25,7 +25,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import TokenLayout
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _named(tensor: torch.Tensor, names: list[str]) -> torch.Tensor:
|
||||
|
||||
@@ -23,7 +23,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import TokenLayout
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=30, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=30, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestBuildTokenIndexSGLangThd:
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ from sglang.srt.debug_utils.comparator.aligner.token_aligner.smart.aux_plugins i
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _save_pt(
|
||||
|
||||
@@ -27,7 +27,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
from sglang.srt.debug_utils.comparator.output_types import ReplicatedCheckResult
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _name_tensors(
|
||||
|
||||
@@ -9,7 +9,7 @@ from sglang.srt.debug_utils.comparator.aligner.unsharder.types import AxisInfo
|
||||
from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestNormalizeParallelInfo:
|
||||
|
||||
@@ -19,7 +19,7 @@ from sglang.srt.debug_utils.comparator.aligner.unsharder.types import (
|
||||
from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis, parse_dims
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestComputeUnsharderPlan:
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=5, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestParseDim:
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=5, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestSingletonDimUtilFilterOut:
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=5, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestFindDimIndex:
|
||||
|
||||
@@ -9,7 +9,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=5, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestDimConstants:
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.comparator import (
|
||||
from sglang.srt.debug_utils.comparator.tensor_comparator.types import DiffInfo
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=20, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=20, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestComputeTensorInfo:
|
||||
|
||||
@@ -58,7 +58,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.types import (
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
_DEFAULT_PERCENTILE_LINES: list[str] = [
|
||||
" [blue]p1 [/] -1.8000 -1.8000 [dim]+0.00e+00[/]",
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.types import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _make_stats(**overrides) -> TensorStats:
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.srt.debug_utils.dump_loader import ValueWithMeta
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _save_tensor(
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.srt.debug_utils.comparator.bundle_matcher import (
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _make_row(
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.srt.debug_utils.comparator.output_types import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _render_rich(renderable: object) -> str:
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.srt.debug_utils.comparator.dp_utils import (
|
||||
from sglang.srt.debug_utils.dump_loader import ValueWithMeta
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=15, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _make_sglang_meta(
|
||||
|
||||
@@ -7,7 +7,7 @@ import torch
|
||||
from sglang.srt.debug_utils.dump_loader import read_tokenizer_path
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _save_pt(
|
||||
|
||||
@@ -30,7 +30,7 @@ from sglang.srt.debug_utils.comparator.output_types import (
|
||||
from sglang.srt.debug_utils.dumper import DumperConfig, _Dumper, _RecomputeStatus
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=30, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=30, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
_FIXED_EXP_NAME = "my_exp_name"
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.srt.debug_utils.comparator.output_types import (
|
||||
from sglang.srt.debug_utils.comparator.report_sink import report_sink
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _make_error_log(**overrides) -> ErrorLog:
|
||||
|
||||
@@ -23,7 +23,7 @@ import torch
|
||||
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=60, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=60, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
_PUBLISH_DIR: Path = Path("/tmp/comparator_manual_verify")
|
||||
_PNG_MAGIC: bytes = b"\x89PNG"
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.srt.debug_utils.comparator.meta_overrider import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
# ───────────────────── Unit: MetaOverrideRule ─────────────────────
|
||||
|
||||
@@ -44,7 +44,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.types import (
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair, _check_equal_lengths
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestCheckEqualLengths:
|
||||
|
||||
@@ -55,7 +55,7 @@ from sglang.srt.debug_utils.comparator.output_types import (
|
||||
from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
def _render_rich(renderable: object) -> str:
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.comparator import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=30, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=30, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
_PNG_MAGIC: bytes = b"\x89PNG"
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import pytest
|
||||
from sglang.srt.debug_utils.comparator.preset import PRESETS, expand_preset
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=5, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestExpandPreset:
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.srt.debug_utils.comparator.utils import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestCalcRelDiff:
|
||||
|
||||
@@ -10,7 +10,7 @@ from sglang.srt.debug_utils.comparator.visualizer.preprocessing import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=30, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=30, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestPreprocessTensor:
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(
|
||||
est_time=0,
|
||||
suite="stage-a-cpu-only",
|
||||
suite="stage-a-test-cpu",
|
||||
nightly=True,
|
||||
disabled="helper module, no tests",
|
||||
)
|
||||
|
||||
@@ -10,7 +10,7 @@ from sglang.srt.debug_utils.source_patcher.code_patcher import (
|
||||
from sglang.srt.debug_utils.source_patcher.types import EditSpec, PatchSpec
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
SAMPLE_MODULE_NAME = "_source_patcher_test_fixtures.sample_module"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import yaml
|
||||
from sglang.srt.debug_utils.dumper import DumperConfig, _Dumper
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
SAMPLE_MODULE_NAME = "_source_patcher_test_fixtures.sample_module"
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ from sglang.srt.debug_utils.source_patcher.source_editor import apply_edits
|
||||
from sglang.srt.debug_utils.source_patcher.types import EditSpec, PatchApplicationError
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=10, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestApplyEdits:
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=10,
|
||||
suite="stage-a-test-small-1-gpu",
|
||||
suite="stage-a-test-1-gpu-small",
|
||||
disabled="Manual only: triggers intentional CUDA crash for coredump verification",
|
||||
)
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.srt.debug_utils.dump_comparator import (
|
||||
from sglang.srt.debug_utils.dumper import DumperConfig, _Dumper
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=30, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=30, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
# ----------------------------- Unit tests -----------------------------
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.debug_utils.dump_loader import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=30, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=30, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
class TestReadMeta:
|
||||
|
||||
@@ -25,7 +25,7 @@ from sglang.srt.debug_utils.schedule_simulator import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=120, suite="stage-a-cpu-only", nightly=True)
|
||||
register_cpu_ci(est_time=120, suite="stage-a-test-cpu", nightly=True)
|
||||
|
||||
|
||||
# ==================== Non-E2E Tests ====================
|
||||
|
||||
@@ -19,12 +19,12 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(
|
||||
est_time=9,
|
||||
suite="stage-b-test-small-1-gpu",
|
||||
suite="stage-b-test-1-gpu-small",
|
||||
disabled="Test uses pytest-style function without TestCase class - see #17145",
|
||||
)
|
||||
register_amd_ci(
|
||||
est_time=15,
|
||||
suite="stage-b-test-small-1-gpu-amd",
|
||||
suite="stage-b-test-1-gpu-small-amd",
|
||||
disabled="Test uses pytest-style function without TestCase class - see #17145",
|
||||
)
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_pd_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=400, suite="stage-b-test-large-2-gpu")
|
||||
register_cuda_ci(est_time=400, suite="stage-b-test-2-gpu-large")
|
||||
|
||||
|
||||
class TestDisaggregationAccuracy(PDDisaggregationServerBase):
|
||||
|
||||
@@ -18,7 +18,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
# Registering the test for CUDA CI with appropriate parameters
|
||||
# Increasing estimated time since we run evaluation twice
|
||||
register_cuda_ci(est_time=600, suite="stage-b-test-large-2-gpu")
|
||||
register_cuda_ci(est_time=600, suite="stage-b-test-2-gpu-large")
|
||||
|
||||
|
||||
@unittest.skipIf(is_in_ci(), "Temporarily disable the flaky test.")
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.srt.disaggregation.decode_kvcache_offload_manager import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=10, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=10, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
|
||||
def _make_mock_req(
|
||||
|
||||
@@ -15,8 +15,8 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=73, suite="stage-b-test-large-2-gpu")
|
||||
register_amd_ci(est_time=73, suite="stage-b-test-large-2-gpu-amd")
|
||||
register_cuda_ci(est_time=73, suite="stage-b-test-2-gpu-large")
|
||||
register_amd_ci(est_time=73, suite="stage-b-test-2-gpu-large-amd")
|
||||
|
||||
|
||||
class TestDataParallelism(CustomTestCase):
|
||||
|
||||
@@ -25,7 +25,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=350, suite="stage-b-test-large-2-gpu")
|
||||
register_cuda_ci(est_time=350, suite="stage-b-test-2-gpu-large")
|
||||
|
||||
|
||||
class TestDPAttentionDP2TP2(
|
||||
|
||||
@@ -38,8 +38,8 @@ from sglang.utils import terminate_process
|
||||
|
||||
mp.set_start_method("spawn", force=True)
|
||||
|
||||
register_cuda_ci(est_time=72, suite="stage-b-test-large-2-gpu")
|
||||
register_amd_ci(est_time=72, suite="stage-b-test-large-2-gpu-amd")
|
||||
register_cuda_ci(est_time=72, suite="stage-b-test-2-gpu-large")
|
||||
register_amd_ci(est_time=72, suite="stage-b-test-2-gpu-large-amd")
|
||||
|
||||
|
||||
def verify_params_close(params1, params2, error_msg):
|
||||
|
||||
@@ -43,7 +43,7 @@ import pytest
|
||||
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=5, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=5, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
# Import the actual parallel_state module
|
||||
parallel_state = pytest.importorskip("sglang.srt.distributed.parallel_state")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=181, suite="stage-b-test-large-1-gpu")
|
||||
register_amd_ci(est_time=330, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=181, suite="stage-b-test-1-gpu-large")
|
||||
register_amd_ci(est_time=330, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
import unittest
|
||||
from types import SimpleNamespace
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_amd_ci(est_time=1000, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_amd_ci(est_time=1000, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestLLaDA2MiniAMD(CustomTestCase):
|
||||
|
||||
@@ -32,10 +32,10 @@ from sglang.test.test_utils import (
|
||||
# Embedding model tests
|
||||
register_amd_ci(
|
||||
est_time=73,
|
||||
suite="stage-b-test-small-1-gpu-amd",
|
||||
suite="stage-b-test-1-gpu-small-amd",
|
||||
disabled="see https://github.com/sgl-project/sglang/issues/11127",
|
||||
)
|
||||
register_cuda_ci(est_time=73, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=73, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
MODEL_TO_CONFIG = {
|
||||
"Alibaba-NLP/gte-Qwen2-1.5B-instruct": (1, 1e-5),
|
||||
|
||||
@@ -29,7 +29,7 @@ from sglang.test.test_utils import CustomTestCase, get_similarities, is_in_ci
|
||||
# python -m unittest test_encoder_embedding_models.TestEncoderEmbeddingModels.test_prefill_logits
|
||||
|
||||
|
||||
register_cuda_ci(est_time=270, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=270, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
MODELS = [("BAAI/bge-small-en", 1, 1e-5), ("BAAI/bge-m3", 1, 1e-5)]
|
||||
|
||||
|
||||
@@ -16,8 +16,8 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=38, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=38, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=38, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=38, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestInputEmbeds(CustomTestCase):
|
||||
|
||||
@@ -30,7 +30,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=45, suite="stage-b-test-small-1-gpu")
|
||||
register_cuda_ci(est_time=45, suite="stage-b-test-1-gpu-small")
|
||||
|
||||
CHUNKED_PREFILL_SIZE = 256
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=70, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=141, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=70, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=141, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestOpenAIEmbedding(CustomTestCase):
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=531, suite="stage-c-test-deepep-4-gpu")
|
||||
register_cuda_ci(est_time=531, suite="stage-c-test-deepep-4-gpu-h100")
|
||||
|
||||
|
||||
class TestPureDP(CustomTestCase):
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=660, suite="stage-c-test-deepep-4-gpu")
|
||||
register_cuda_ci(est_time=660, suite="stage-c-test-deepep-4-gpu-h100")
|
||||
|
||||
ib_devices = get_rdma_devices_args()
|
||||
|
||||
|
||||
@@ -20,8 +20,8 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=420, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=420, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
|
||||
class TestEvalAccuracyLarge(CustomTestCase):
|
||||
|
||||
@@ -21,8 +21,8 @@ from sglang.test.test_utils import (
|
||||
write_github_step_summary,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=500, suite="stage-b-test-large-2-gpu")
|
||||
register_amd_ci(est_time=500, suite="stage-b-test-large-2-gpu-amd")
|
||||
register_cuda_ci(est_time=500, suite="stage-b-test-2-gpu-large")
|
||||
register_amd_ci(est_time=500, suite="stage-b-test-2-gpu-large-amd")
|
||||
|
||||
|
||||
class TestMoEEvalAccuracyLarge(CustomTestCase):
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.srt.function_call.kimik2_detector import (
|
||||
from sglang.srt.parser.reasoning_parser import KimiK2Detector as KimiK2ReasoningDetector
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(1.0, "stage-a-cpu-only")
|
||||
register_cpu_ci(1.0, "stage-a-test-cpu")
|
||||
|
||||
|
||||
def _make_tool(name, parameters=None):
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
|
||||
register_cuda_ci(est_time=96, suite="stage-b-test-small-1-gpu")
|
||||
register_amd_ci(est_time=300, suite="stage-b-test-small-1-gpu-amd")
|
||||
register_cuda_ci(est_time=96, suite="stage-b-test-1-gpu-small")
|
||||
register_amd_ci(est_time=300, suite="stage-b-test-1-gpu-small-amd")
|
||||
|
||||
import time
|
||||
import unittest
|
||||
|
||||
@@ -13,8 +13,8 @@ from test_hicache_storage_file_backend import HiCacheStorageBaseMixin
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-large-2-gpu")
|
||||
register_amd_ci(est_time=300, suite="stage-b-test-large-2-gpu")
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-2-gpu-large")
|
||||
register_amd_ci(est_time=300, suite="stage-b-test-2-gpu-large")
|
||||
|
||||
|
||||
class HiCacheStorage3FSBackendBaseMixin(HiCacheStorageBaseMixin):
|
||||
|
||||
@@ -32,8 +32,8 @@ from sglang.test.test_utils import (
|
||||
)
|
||||
from sglang.utils import wait_for_http_ready
|
||||
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-large-2-gpu")
|
||||
register_amd_ci(est_time=526, suite="stage-b-test-large-2-gpu-amd")
|
||||
register_cuda_ci(est_time=200, suite="stage-b-test-2-gpu-large")
|
||||
register_amd_ci(est_time=526, suite="stage-b-test-2-gpu-large-amd")
|
||||
|
||||
|
||||
class HiCacheStorageBaseMixin:
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
||||
is_in_ci,
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-large-2-gpu")
|
||||
register_cuda_ci(est_time=300, suite="stage-b-test-2-gpu-large")
|
||||
|
||||
|
||||
class HiCacheStorageMooncakeBackendBaseMixin(HiCacheStorageBaseMixin):
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user