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 |
|
| 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` |
|
| **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-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-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-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-1-gpu-small` |
|
||||||
| **General performance** (single node, no spec/DP/parallelism) | `DEFAULT_MODEL_NAME_FOR_TEST` (8B) | `register_cuda_ci` | `stage-b-test-large-1-gpu` |
|
| **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 |
|
| **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.
|
**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 |
|
| Suite | Runner | Scenario |
|
||||||
|-------|--------|----------|
|
|-------|--------|----------|
|
||||||
| `stage-a-cpu-only` | CPU | CPU unit tests |
|
| `stage-a-test-cpu` | CPU | CPU unit tests |
|
||||||
| `stage-b-test-small-1-gpu` | 1× 5090 (32GB) | Small model tests |
|
| `stage-b-test-1-gpu-small` | 1× 5090 (32GB) | Small model tests |
|
||||||
| `stage-b-test-large-1-gpu` | 1× H100 (80GB) | 8B model tests |
|
| `stage-b-test-1-gpu-large` | 1× H100 (80GB) | 8B model tests |
|
||||||
| `stage-b-test-large-2-gpu` | 2× H100 | TP=2 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-4-gpu-h100` | 4× H100 | TP=4 / EP tests |
|
||||||
| `stage-c-test-8-gpu-h200` | 8× H200 | Large-scale multi-GPU |
|
| `stage-c-test-8-gpu-h200` | 8× H200 | Large-scale multi-GPU |
|
||||||
| `nightly-1-gpu` | 1 GPU | Nightly-only |
|
| `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.ci.ci_register import register_cpu_ci
|
||||||
from sglang.test.test_utils import CustomTestCase
|
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.
|
# Prefer CPU. Only use register_cuda_ci when the test truly needs a GPU.
|
||||||
|
|
||||||
class TestTargetClass(CustomTestCase):
|
class TestTargetClass(CustomTestCase):
|
||||||
@@ -110,7 +110,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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):
|
class TestMyFeature(CustomTestCase):
|
||||||
@@ -159,7 +159,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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):
|
class TestMyFeaturePerf(CustomTestCase):
|
||||||
@@ -227,7 +227,7 @@ Every test file in `test/registered/` **must** call a registration function at m
|
|||||||
```python
|
```python
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
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:
|
Parameters:
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ inputs:
|
|||||||
jobs:
|
jobs:
|
||||||
description: |
|
description: |
|
||||||
JSON array of job specs to wait for. Each element is either:
|
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
|
- an object { "prefix": "...", "expected_count": N }: for matrix jobs
|
||||||
required: true
|
required: true
|
||||||
max-wait-minutes:
|
max-wait-minutes:
|
||||||
|
|||||||
@@ -35,13 +35,13 @@ on:
|
|||||||
- ''
|
- ''
|
||||||
- sgl-kernel-unit-test-amd
|
- sgl-kernel-unit-test-amd
|
||||||
- sgl-kernel-unit-test-2-gpu-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
|
- jit-kernel-unit-test-amd
|
||||||
- stage-b-test-small-1-gpu-amd
|
- stage-b-test-1-gpu-small-amd
|
||||||
- stage-b-test-small-1-gpu-amd-nondeterministic
|
- stage-b-test-1-gpu-small-amd-nondeterministic
|
||||||
- stage-b-test-small-1-gpu-amd-mi35x
|
- stage-b-test-1-gpu-small-amd-mi35x
|
||||||
- stage-b-test-large-1-gpu-amd
|
- stage-b-test-1-gpu-large-amd
|
||||||
- stage-b-test-large-2-gpu-amd
|
- stage-b-test-2-gpu-large-amd
|
||||||
- multimodal-gen-test-1-gpu-amd
|
- multimodal-gen-test-1-gpu-amd
|
||||||
- multimodal-gen-test-2-gpu-amd
|
- multimodal-gen-test-2-gpu-amd
|
||||||
- stage-c-test-large-8-gpu-amd
|
- stage-c-test-large-8-gpu-amd
|
||||||
@@ -246,12 +246,12 @@ jobs:
|
|||||||
|
|
||||||
# =============================================== primary ====================================================
|
# =============================================== primary ====================================================
|
||||||
|
|
||||||
stage-a-test-small-1-gpu-amd:
|
stage-a-test-1-gpu-small-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -283,7 +283,7 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
run: |
|
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:
|
jit-kernel-unit-test-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes]
|
||||||
@@ -323,12 +323,12 @@ jobs:
|
|||||||
run: |
|
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
|
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]
|
needs: [check-changes]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -360,14 +360,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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]
|
needs: [check-changes]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -398,14 +398,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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]
|
needs: [check-changes]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -436,14 +436,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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]
|
needs: [check-changes]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -475,14 +475,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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]
|
needs: [check-changes]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -514,7 +514,7 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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:
|
multimodal-gen-test-1-gpu-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes]
|
||||||
@@ -984,13 +984,13 @@ jobs:
|
|||||||
multimodal-gen-test-1-gpu-amd,
|
multimodal-gen-test-1-gpu-amd,
|
||||||
multimodal-gen-test-2-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,
|
jit-kernel-unit-test-amd,
|
||||||
stage-b-test-small-1-gpu-amd,
|
stage-b-test-1-gpu-small-amd,
|
||||||
stage-b-test-small-1-gpu-amd-nondeterministic,
|
stage-b-test-1-gpu-small-amd-nondeterministic,
|
||||||
stage-b-test-small-1-gpu-amd-mi35x,
|
stage-b-test-1-gpu-small-amd-mi35x,
|
||||||
stage-b-test-large-1-gpu-amd,
|
stage-b-test-1-gpu-large-amd,
|
||||||
stage-b-test-large-2-gpu-amd,
|
stage-b-test-2-gpu-large-amd,
|
||||||
stage-b-test-large-8-gpu-35x-disaggregation-amd,
|
stage-b-test-large-8-gpu-35x-disaggregation-amd,
|
||||||
stage-c-test-large-8-gpu-amd,
|
stage-c-test-large-8-gpu-amd,
|
||||||
stage-c-test-large-8-gpu-amd-mi35x,
|
stage-c-test-large-8-gpu-amd-mi35x,
|
||||||
|
|||||||
@@ -33,13 +33,13 @@ on:
|
|||||||
- ''
|
- ''
|
||||||
- sgl-kernel-unit-test-amd
|
- sgl-kernel-unit-test-amd
|
||||||
- sgl-kernel-unit-test-2-gpu-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
|
- jit-kernel-unit-test-amd
|
||||||
- stage-b-test-small-1-gpu-amd
|
- stage-b-test-1-gpu-small-amd
|
||||||
- stage-b-test-small-1-gpu-amd-nondeterministic
|
- stage-b-test-1-gpu-small-amd-nondeterministic
|
||||||
- stage-b-test-small-1-gpu-amd-mi35x
|
- stage-b-test-1-gpu-small-amd-mi35x
|
||||||
- stage-b-test-large-1-gpu-amd
|
- stage-b-test-1-gpu-large-amd
|
||||||
- stage-b-test-large-2-gpu-amd
|
- stage-b-test-2-gpu-large-amd
|
||||||
- multimodal-gen-test-1-gpu-amd
|
- multimodal-gen-test-1-gpu-amd
|
||||||
- multimodal-gen-test-2-gpu-amd
|
- multimodal-gen-test-2-gpu-amd
|
||||||
- stage-c-test-large-8-gpu-amd
|
- stage-c-test-large-8-gpu-amd
|
||||||
@@ -246,12 +246,12 @@ jobs:
|
|||||||
|
|
||||||
# =============================================== primary ====================================================
|
# =============================================== primary ====================================================
|
||||||
|
|
||||||
stage-a-test-small-1-gpu-amd:
|
stage-a-test-1-gpu-small-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -284,7 +284,7 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
run: |
|
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:
|
jit-kernel-unit-test-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes]
|
||||||
@@ -325,12 +325,12 @@ jobs:
|
|||||||
run: |
|
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
|
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, stage-a-test-small-1-gpu-amd]
|
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -363,14 +363,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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, stage-a-test-small-1-gpu-amd]
|
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -402,14 +402,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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, stage-a-test-small-1-gpu-amd]
|
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -441,14 +441,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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, stage-a-test-small-1-gpu-amd]
|
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -481,14 +481,14 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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, stage-a-test-small-1-gpu-amd]
|
needs: [check-changes, stage-a-test-1-gpu-small-amd]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
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) &&
|
!(inputs.target_stage || inputs.target_stage_select) &&
|
||||||
(!failure() && !cancelled()) &&
|
(!failure() && !cancelled()) &&
|
||||||
@@ -521,7 +521,7 @@ jobs:
|
|||||||
- name: Run test
|
- name: Run test
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
run: |
|
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:
|
multimodal-gen-test-1-gpu-amd:
|
||||||
needs: [check-changes]
|
needs: [check-changes]
|
||||||
@@ -779,7 +779,7 @@ jobs:
|
|||||||
|
|
||||||
|
|
||||||
stage-c-test-large-8-gpu-amd:
|
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: |
|
if: |
|
||||||
always() &&
|
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' || '' }}
|
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:
|
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: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
@@ -868,7 +868,7 @@ jobs:
|
|||||||
|
|
||||||
# =============================================== Disaggregation ====================================================
|
# =============================================== Disaggregation ====================================================
|
||||||
stage-b-test-large-8-gpu-35x-disaggregation-amd:
|
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: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
@@ -989,13 +989,13 @@ jobs:
|
|||||||
multimodal-gen-test-1-gpu-amd,
|
multimodal-gen-test-1-gpu-amd,
|
||||||
multimodal-gen-test-2-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,
|
jit-kernel-unit-test-amd,
|
||||||
stage-b-test-small-1-gpu-amd,
|
stage-b-test-1-gpu-small-amd,
|
||||||
stage-b-test-small-1-gpu-amd-nondeterministic,
|
stage-b-test-1-gpu-small-amd-nondeterministic,
|
||||||
stage-b-test-small-1-gpu-amd-mi35x,
|
stage-b-test-1-gpu-small-amd-mi35x,
|
||||||
stage-b-test-large-1-gpu-amd,
|
stage-b-test-1-gpu-large-amd,
|
||||||
stage-b-test-large-2-gpu-amd,
|
stage-b-test-2-gpu-large-amd,
|
||||||
stage-b-test-large-8-gpu-35x-disaggregation-amd,
|
stage-b-test-large-8-gpu-35x-disaggregation-amd,
|
||||||
stage-c-test-large-8-gpu-amd,
|
stage-c-test-large-8-gpu-amd,
|
||||||
stage-c-test-large-8-gpu-amd-mi35x,
|
stage-c-test-large-8-gpu-amd-mi35x,
|
||||||
|
|||||||
@@ -345,7 +345,7 @@ jobs:
|
|||||||
id: wait
|
id: wait
|
||||||
with:
|
with:
|
||||||
stage-name: stage-a
|
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'
|
max-wait-minutes: '240'
|
||||||
|
|
||||||
wait-for-stage-b:
|
wait-for-stage-b:
|
||||||
@@ -377,9 +377,9 @@ jobs:
|
|||||||
stage-name: stage-b
|
stage-name: stage-b
|
||||||
jobs: |
|
jobs: |
|
||||||
[
|
[
|
||||||
{"prefix": "stage-b-test-small-1-gpu", "expected_count": 8},
|
{"prefix": "stage-b-test-1-gpu-small", "expected_count": 8},
|
||||||
{"prefix": "stage-b-test-large-1-gpu", "expected_count": 14},
|
{"prefix": "stage-b-test-1-gpu-large", "expected_count": 14},
|
||||||
{"prefix": "stage-b-test-large-2-gpu", "expected_count": 4},
|
{"prefix": "stage-b-test-2-gpu-large", "expected_count": 4},
|
||||||
{"prefix": "stage-b-test-4-gpu-b200", "expected_count": 1}
|
{"prefix": "stage-b-test-4-gpu-b200", "expected_count": 1}
|
||||||
]
|
]
|
||||||
max-wait-minutes: '480'
|
max-wait-minutes: '480'
|
||||||
@@ -833,12 +833,12 @@ jobs:
|
|||||||
# =============================================== primary ====================================================
|
# =============================================== primary ====================================================
|
||||||
|
|
||||||
# Runs on 5090 (32GB, SM120)
|
# 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]
|
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'stage-a-test-small-1-gpu') ||
|
(inputs.target_stage == 'stage-a-test-1-gpu-small') ||
|
||||||
(
|
(
|
||||||
!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())) &&
|
||||||
@@ -876,17 +876,17 @@ jobs:
|
|||||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
run: |
|
run: |
|
||||||
cd test/
|
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
|
- uses: ./.github/actions/upload-cuda-coredumps
|
||||||
if: always()
|
if: always()
|
||||||
|
|
||||||
stage-a-cpu-only:
|
stage-a-test-cpu:
|
||||||
needs: [check-changes, call-gate]
|
needs: [check-changes, call-gate]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'stage-a-cpu-only') ||
|
(inputs.target_stage == 'stage-a-test-cpu') ||
|
||||||
(
|
(
|
||||||
!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())) &&
|
||||||
@@ -932,15 +932,15 @@ jobs:
|
|||||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
run: |
|
run: |
|
||||||
cd test/
|
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)
|
# 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]
|
needs: [check-changes, call-gate, wait-for-stage-a, sgl-kernel-build-wheels]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'stage-b-test-small-1-gpu') ||
|
(inputs.target_stage == 'stage-b-test-1-gpu-small') ||
|
||||||
(
|
(
|
||||||
!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())) &&
|
||||||
@@ -988,7 +988,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
source /etc/profile.d/sglang-ci.sh
|
source /etc/profile.d/sglang-ci.sh
|
||||||
cd test/
|
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
|
- uses: ./.github/actions/upload-cuda-coredumps
|
||||||
if: always()
|
if: always()
|
||||||
@@ -996,12 +996,12 @@ jobs:
|
|||||||
artifact-suffix: ${{ matrix.partition }}
|
artifact-suffix: ${{ matrix.partition }}
|
||||||
|
|
||||||
# Runs on H100 (80GB, SM90) - tests that don't pass on 5090 (FA3, FP8, high VRAM, etc.)
|
# 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]
|
needs: [check-changes, call-gate, wait-for-stage-a, sgl-kernel-build-wheels]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'stage-b-test-large-1-gpu') ||
|
(inputs.target_stage == 'stage-b-test-1-gpu-large') ||
|
||||||
(
|
(
|
||||||
!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())) &&
|
||||||
@@ -1044,19 +1044,19 @@ jobs:
|
|||||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
run: |
|
run: |
|
||||||
cd test/
|
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
|
- uses: ./.github/actions/upload-cuda-coredumps
|
||||||
if: always()
|
if: always()
|
||||||
with:
|
with:
|
||||||
artifact-suffix: ${{ matrix.partition }}
|
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]
|
needs: [check-changes, call-gate, wait-for-stage-a, sgl-kernel-build-wheels]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'stage-b-test-large-2-gpu') ||
|
(inputs.target_stage == 'stage-b-test-2-gpu-large') ||
|
||||||
(
|
(
|
||||||
!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())) &&
|
||||||
@@ -1101,7 +1101,7 @@ jobs:
|
|||||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
run: |
|
run: |
|
||||||
cd test/
|
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
|
- uses: ./.github/actions/upload-cuda-coredumps
|
||||||
if: always()
|
if: always()
|
||||||
@@ -1502,12 +1502,12 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
artifact-suffix: ${{ matrix.part }}
|
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]
|
needs: [check-changes, call-gate, wait-for-stage-b]
|
||||||
if: |
|
if: |
|
||||||
always() &&
|
always() &&
|
||||||
(
|
(
|
||||||
(inputs.target_stage == 'stage-c-test-deepep-4-gpu') ||
|
(inputs.target_stage == 'stage-c-test-deepep-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())) &&
|
||||||
@@ -1557,7 +1557,7 @@ jobs:
|
|||||||
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
CONTINUE_ON_ERROR_FLAG: ${{ needs.check-changes.outputs.continue_on_error == 'true' && '--continue-on-error' || '' }}
|
||||||
run: |
|
run: |
|
||||||
cd test
|
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
|
- uses: ./.github/actions/upload-cuda-coredumps
|
||||||
if: always()
|
if: always()
|
||||||
@@ -1753,16 +1753,16 @@ jobs:
|
|||||||
multimodal-gen-test-1-gpu,
|
multimodal-gen-test-1-gpu,
|
||||||
multimodal-gen-test-2-gpu,
|
multimodal-gen-test-2-gpu,
|
||||||
|
|
||||||
stage-a-test-small-1-gpu,
|
stage-a-test-1-gpu-small,
|
||||||
stage-a-cpu-only,
|
stage-a-test-cpu,
|
||||||
stage-b-test-small-1-gpu,
|
stage-b-test-1-gpu-small,
|
||||||
stage-b-test-large-1-gpu,
|
stage-b-test-1-gpu-large,
|
||||||
stage-b-test-large-2-gpu,
|
stage-b-test-2-gpu-large,
|
||||||
stage-b-test-4-gpu-b200,
|
stage-b-test-4-gpu-b200,
|
||||||
stage-c-test-4-gpu-h100,
|
stage-c-test-4-gpu-h100,
|
||||||
stage-c-test-8-gpu-h20,
|
stage-c-test-8-gpu-h20,
|
||||||
stage-c-test-8-gpu-h200,
|
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-deepep-8-gpu-h200,
|
||||||
stage-c-test-4-gpu-b200,
|
stage-c-test-4-gpu-b200,
|
||||||
# stage-c-test-4-gpu-gb200, # Temporarily disabled — no GB200 runner
|
# 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.jit_kernel.moe_lora_align import moe_lora_align_block_size
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
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):
|
def round_up(x, base):
|
||||||
|
|||||||
@@ -253,18 +253,18 @@ def handle_rerun_stage(
|
|||||||
|
|
||||||
# Valid NVIDIA stage names that support target_stage
|
# Valid NVIDIA stage names that support target_stage
|
||||||
nvidia_stages = [
|
nvidia_stages = [
|
||||||
"stage-a-test-small-1-gpu",
|
"stage-a-test-1-gpu-small",
|
||||||
"stage-a-cpu-only",
|
"stage-a-test-cpu",
|
||||||
"stage-b-test-small-1-gpu",
|
"stage-b-test-1-gpu-small",
|
||||||
"stage-b-test-large-1-gpu",
|
"stage-b-test-1-gpu-large",
|
||||||
"stage-b-test-large-2-gpu",
|
"stage-b-test-2-gpu-large",
|
||||||
"stage-b-test-4-gpu-b200",
|
"stage-b-test-4-gpu-b200",
|
||||||
"stage-c-test-4-gpu-h100",
|
"stage-c-test-4-gpu-h100",
|
||||||
"stage-c-test-8-gpu-h200",
|
"stage-c-test-8-gpu-h200",
|
||||||
"stage-c-test-8-gpu-h20",
|
"stage-c-test-8-gpu-h20",
|
||||||
"stage-c-test-4-gpu-b200",
|
"stage-c-test-4-gpu-b200",
|
||||||
"stage-c-test-4-gpu-gb200",
|
"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",
|
"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",
|
||||||
@@ -274,12 +274,12 @@ def handle_rerun_stage(
|
|||||||
amd_stages = [
|
amd_stages = [
|
||||||
"sgl-kernel-unit-test-amd",
|
"sgl-kernel-unit-test-amd",
|
||||||
"sgl-kernel-unit-test-2-gpu-amd",
|
"sgl-kernel-unit-test-2-gpu-amd",
|
||||||
"stage-a-test-small-1-gpu-amd",
|
"stage-a-test-1-gpu-small-amd",
|
||||||
"stage-b-test-small-1-gpu-amd",
|
"stage-b-test-1-gpu-small-amd",
|
||||||
"stage-b-test-small-1-gpu-amd-nondeterministic",
|
"stage-b-test-1-gpu-small-amd-nondeterministic",
|
||||||
"stage-b-test-small-1-gpu-amd-mi35x",
|
"stage-b-test-1-gpu-small-amd-mi35x",
|
||||||
"stage-b-test-large-1-gpu-amd",
|
"stage-b-test-1-gpu-large-amd",
|
||||||
"stage-b-test-large-2-gpu-amd",
|
"stage-b-test-2-gpu-large-amd",
|
||||||
"multimodal-gen-test-1-gpu-amd",
|
"multimodal-gen-test-1-gpu-amd",
|
||||||
"multimodal-gen-test-2-gpu-amd",
|
"multimodal-gen-test-2-gpu-amd",
|
||||||
"stage-c-test-large-8-gpu-amd",
|
"stage-c-test-large-8-gpu-amd",
|
||||||
@@ -412,23 +412,23 @@ def handle_rerun_stage(
|
|||||||
|
|
||||||
|
|
||||||
CUDA_SUITE_TO_RUNNER = {
|
CUDA_SUITE_TO_RUNNER = {
|
||||||
"stage-a-test-small-1-gpu": "1-gpu-5090",
|
"stage-a-test-1-gpu-small": "1-gpu-5090",
|
||||||
"stage-a-cpu-only": "ubuntu-latest",
|
"stage-a-test-cpu": "ubuntu-latest",
|
||||||
"stage-b-test-small-1-gpu": "1-gpu-5090",
|
"stage-b-test-1-gpu-small": "1-gpu-5090",
|
||||||
"stage-b-test-large-1-gpu": "1-gpu-h100",
|
"stage-b-test-1-gpu-large": "1-gpu-h100",
|
||||||
"stage-b-test-large-2-gpu": "2-gpu-h100",
|
"stage-b-test-2-gpu-large": "2-gpu-h100",
|
||||||
"stage-b-test-4-gpu-b200": "4-gpu-b200",
|
"stage-b-test-4-gpu-b200": "4-gpu-b200",
|
||||||
"stage-c-test-4-gpu-h100": "4-gpu-h100",
|
"stage-c-test-4-gpu-h100": "4-gpu-h100",
|
||||||
"stage-c-test-8-gpu-h200": "8-gpu-h200",
|
"stage-c-test-8-gpu-h200": "8-gpu-h200",
|
||||||
"stage-c-test-8-gpu-h20": "8-gpu-h20",
|
"stage-c-test-8-gpu-h20": "8-gpu-h20",
|
||||||
"stage-c-test-4-gpu-b200": "4-gpu-b200",
|
"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",
|
"stage-c-test-deepep-8-gpu-h200": "8-gpu-h200",
|
||||||
}
|
}
|
||||||
|
|
||||||
DEEPEP_SUITES = {
|
DEEPEP_SUITES = {
|
||||||
"stage-c-test-8-gpu-h20",
|
"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",
|
"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)
|
# 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)
|
# 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)
|
# 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
|
# Nightly-only test
|
||||||
register_cuda_ci(est_time=200, suite="nightly-1-gpu", nightly=True)
|
register_cuda_ci(est_time=200, suite="nightly-1-gpu", nightly=True)
|
||||||
|
|
||||||
# Multi-backend test
|
# Multi-backend test
|
||||||
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")
|
||||||
register_amd_ci(est_time=120, suite="stage-a-test-small-1-gpu-amd")
|
register_amd_ci(est_time=120, suite="stage-a-test-1-gpu-small-amd")
|
||||||
|
|
||||||
# Temporarily disabled test
|
# 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)
|
### 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 |
|
| 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-1-gpu-small` | `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-a-test-1-gpu-small-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-1-gpu-small` | `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-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)**:
|
1. **Architecture incompatibility (SM120/Blackwell)**:
|
||||||
- FA3 attention backend (requires SM≤90)
|
- 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
|
- Weight update/sync tests
|
||||||
- Certain spec decoding 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
|
### Available Suites
|
||||||
|
|
||||||
**Per-Commit (CUDA)**:
|
**Per-Commit (CUDA)**:
|
||||||
- Stage A: `stage-a-test-small-1-gpu` (5090), `stage-a-test-2`, `stage-a-test-cpu`
|
- Stage A: `stage-a-test-1-gpu-small` (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 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`
|
- 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`
|
- 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)**:
|
**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**:
|
||||||
- `nightly-1-gpu`, `nightly-2-gpu`, `nightly-4-gpu`, `nightly-8-gpu`, etc.
|
- `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
|
```bash
|
||||||
# Run per-commit tests
|
# 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
|
# Run nightly tests
|
||||||
python test/run_suite.py --hw cuda --suite nightly-1-gpu --nightly
|
python test/run_suite.py --hw cuda --suite nightly-1-gpu --nightly
|
||||||
|
|
||||||
# With auto-partitioning (for parallel CI jobs)
|
# 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
|
--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):
|
class TestDisaggregationMooncakeFailure(PDDisaggregationServerBase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
def setUpClass(cls):
|
||||||
@@ -322,7 +322,7 @@ class TestDisaggregationMooncakeFailure(PDDisaggregationServerBase):
|
|||||||
raise e from health_check_error
|
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):
|
class TestDisaggregationSimulatedRetract(PDDisaggregationServerBase):
|
||||||
@classmethod
|
@classmethod
|
||||||
def setUpClass(cls):
|
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
|
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")
|
@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
|
from sglang.test.test_utils import CustomTestCase
|
||||||
|
|
||||||
# Triton kernel unit test for KV indices creation
|
# Triton kernel unit test for KV indices creation
|
||||||
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")
|
||||||
register_amd_ci(est_time=10, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=10, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestCreateKvIndices(CustomTestCase):
|
class TestCreateKvIndices(CustomTestCase):
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
|||||||
|
|
||||||
# FlashAttention3 integration tests (requires SM 90+ / H100)
|
# FlashAttention3 integration tests (requires SM 90+ / H100)
|
||||||
# Multiple test classes: FA3, FA3+MLA, FA3+SpecDecode variants
|
# 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
|
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)
|
# Hybrid attention backend tests (FA3 prefill + FlashInfer decode, requires SM 90+ / H100)
|
||||||
# Multiple test classes: base, MLA, TorchCompile, SpecDecode variants
|
# 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
|
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.srt.layers.attention.fla.kda import fused_kda_gate, fused_recurrent_kda
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
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")
|
@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
|
from sglang.test.test_utils import CustomTestCase
|
||||||
|
|
||||||
# Register this test for CUDA CI in stage-b (fast attention/kernel tests)
|
# 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(
|
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
|
# Torch native attention backend integration test with MMLU eval
|
||||||
register_cuda_ci(est_time=169, suite="stage-b-test-small-1-gpu")
|
register_cuda_ci(est_time=169, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=150, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=150, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestTorchNativeAttnBackend(CustomTestCase):
|
class TestTorchNativeAttnBackend(CustomTestCase):
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ from sglang.test.test_utils import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Triton attention backend integration test with latency benchmark and MMLU eval
|
# 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_cuda_ci(est_time=200, suite="stage-b-test-1-gpu-large")
|
||||||
register_amd_ci(est_time=1400, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=1400, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestTritonAttnBackend(CustomTestCase):
|
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
|
from sglang.test.test_utils import CustomTestCase, is_in_amd_ci
|
||||||
|
|
||||||
# Triton attention kernel unit tests (decode, extend, prefill)
|
# Triton attention kernel unit tests (decode, extend, prefill)
|
||||||
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")
|
||||||
register_amd_ci(est_time=30, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=30, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
def extend_attention_fwd_torch(
|
def extend_attention_fwd_torch(
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ from sglang.test.test_utils import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Sliding window attention with Triton backend (Gemma-3 model)
|
# Sliding window attention with Triton backend (Gemma-3 model)
|
||||||
register_cuda_ci(est_time=100, suite="stage-b-test-large-1-gpu")
|
register_cuda_ci(est_time=100, suite="stage-b-test-1-gpu-large")
|
||||||
register_amd_ci(est_time=200, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=200, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestSlidingWindowAttentionTriton(CustomTestCase):
|
class TestSlidingWindowAttentionTriton(CustomTestCase):
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ from sglang.srt.utils import get_device
|
|||||||
from sglang.test.ci.ci_register import register_amd_ci
|
from sglang.test.ci.ci_register import register_amd_ci
|
||||||
|
|
||||||
# Wave attention kernel unit tests (AMD only - requires wave_lang)
|
# 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):
|
class TestWaveAttention(unittest.TestCase):
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=144, suite="stage-b-test-large-1-gpu")
|
register_cuda_ci(est_time=144, suite="stage-b-test-1-gpu-large")
|
||||||
register_amd_ci(est_time=1100, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=1100, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestTorchCompile(CustomTestCase):
|
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.benchmark.datasets.sharegpt import sample_sharegpt_requests
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
class _DummyTokenTensor:
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=111, suite="stage-b-test-small-1-gpu")
|
register_cuda_ci(est_time=111, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=179, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=179, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class ServerWithGrammar(CustomTestCase):
|
class ServerWithGrammar(CustomTestCase):
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ from sglang.test.test_deterministic_utils import (
|
|||||||
)
|
)
|
||||||
from sglang.test.test_utils import is_in_amd_ci
|
from sglang.test.test_utils import is_in_amd_ci
|
||||||
|
|
||||||
register_cuda_ci(est_time=278, suite="stage-b-test-large-1-gpu")
|
register_cuda_ci(est_time=278, suite="stage-b-test-1-gpu-large")
|
||||||
register_amd_ci(est_time=278, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=278, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
@unittest.skipIf(is_in_amd_ci(), "Skip for AMD CI.")
|
@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.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
from sglang.test.gpt_oss_common import BaseTestGptOss
|
from sglang.test.gpt_oss_common import BaseTestGptOss
|
||||||
|
|
||||||
register_cuda_ci(est_time=519, suite="stage-b-test-large-1-gpu")
|
register_cuda_ci(est_time=519, suite="stage-b-test-1-gpu-large")
|
||||||
register_amd_ci(est_time=750, suite="stage-b-test-small-1-gpu-amd-mi35x")
|
register_amd_ci(est_time=750, suite="stage-b-test-1-gpu-small-amd-mi35x")
|
||||||
|
|
||||||
|
|
||||||
class TestGptOss1Gpu(BaseTestGptOss):
|
class TestGptOss1Gpu(BaseTestGptOss):
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import torch
|
|||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
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=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")
|
@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.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
from sglang.test.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST, CustomTestCase
|
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_cuda_ci(est_time=55, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=55, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=55, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
_is_hip = is_hip()
|
_is_hip = is_hip()
|
||||||
if _is_hip:
|
if _is_hip:
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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")
|
||||||
register_amd_ci(est_time=60, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=60, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestPageSize(CustomTestCase):
|
class TestPageSize(CustomTestCase):
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ from sglang.test.test_utils import (
|
|||||||
send_generate_requests,
|
send_generate_requests,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=47, suite="stage-b-test-small-1-gpu")
|
register_cuda_ci(est_time=47, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=70, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=70, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestMaxQueuedRequests(CustomTestCase):
|
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.ci.ci_register import register_cuda_ci
|
||||||
from sglang.test.test_utils import DEFAULT_SMALL_MODEL_NAME_FOR_TEST, CustomTestCase
|
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
|
TEST_MODEL_NAME = DEFAULT_SMALL_MODEL_NAME_FOR_TEST
|
||||||
|
|
||||||
|
|||||||
@@ -27,8 +27,8 @@ from sglang.test.test_utils import (
|
|||||||
run_logprob_check,
|
run_logprob_check,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=127, suite="stage-b-test-small-1-gpu")
|
register_cuda_ci(est_time=127, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=130, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=130, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestSRTEndpoint(CustomTestCase):
|
class TestSRTEndpoint(CustomTestCase):
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ from sglang.test.test_utils import (
|
|||||||
CustomTestCase,
|
CustomTestCase,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=252, suite="stage-b-test-large-1-gpu")
|
register_cuda_ci(est_time=252, suite="stage-b-test-1-gpu-large")
|
||||||
register_amd_ci(est_time=261, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=261, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestSRTEngine(CustomTestCase):
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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(
|
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.srt.debug_utils.comparator.dims_spec import ParallelAxis
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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]:
|
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
|
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:
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.srt.debug_utils.comparator.output_types import ErrorLog, InfoLog
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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()
|
_sglang_plugin = _SGLangPlugin()
|
||||||
_megatron_plugin = _MegatronPlugin()
|
_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.srt.debug_utils.comparator.dims_spec import TokenLayout
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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()
|
_sglang_plugin = _SGLangPlugin()
|
||||||
_megatron_plugin = _MegatronPlugin()
|
_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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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
|
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(
|
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.srt.debug_utils.comparator.output_types import ReplicatedCheckResult
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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(
|
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.srt.debug_utils.comparator.dims_spec import ParallelAxis
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.srt.debug_utils.comparator.dims_spec import ParallelAxis, parse_dims
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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
|
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:
|
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
|
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:
|
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
|
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:
|
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
|
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:
|
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.srt.debug_utils.comparator.tensor_comparator.types import DiffInfo
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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] = [
|
_DEFAULT_PERCENTILE_LINES: list[str] = [
|
||||||
" [blue]p1 [/] -1.8000 -1.8000 [dim]+0.00e+00[/]",
|
" [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
|
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:
|
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.srt.debug_utils.dump_loader import ValueWithMeta
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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(
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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(
|
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
|
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:
|
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.srt.debug_utils.dump_loader import ValueWithMeta
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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(
|
def _make_sglang_meta(
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import torch
|
|||||||
from sglang.srt.debug_utils.dump_loader import read_tokenizer_path
|
from sglang.srt.debug_utils.dump_loader import read_tokenizer_path
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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(
|
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.srt.debug_utils.dumper import DumperConfig, _Dumper, _RecomputeStatus
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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"
|
_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.srt.debug_utils.comparator.report_sink import report_sink
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
def _make_error_log(**overrides) -> ErrorLog:
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import torch
|
|||||||
|
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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")
|
_PUBLISH_DIR: Path = Path("/tmp/comparator_manual_verify")
|
||||||
_PNG_MAGIC: bytes = b"\x89PNG"
|
_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
|
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 ─────────────────────
|
# ───────────────────── 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.srt.debug_utils.comparator.utils import Pair, _check_equal_lengths
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.srt.debug_utils.comparator.utils import Pair
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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
|
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"
|
_PNG_MAGIC: bytes = b"\x89PNG"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import pytest
|
|||||||
from sglang.srt.debug_utils.comparator.preset import PRESETS, expand_preset
|
from sglang.srt.debug_utils.comparator.preset import PRESETS, expand_preset
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
class TestExpandPreset:
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ from sglang.srt.debug_utils.comparator.utils import (
|
|||||||
)
|
)
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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
|
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:
|
class TestPreprocessTensor:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
|||||||
|
|
||||||
register_cpu_ci(
|
register_cpu_ci(
|
||||||
est_time=0,
|
est_time=0,
|
||||||
suite="stage-a-cpu-only",
|
suite="stage-a-test-cpu",
|
||||||
nightly=True,
|
nightly=True,
|
||||||
disabled="helper module, no tests",
|
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.srt.debug_utils.source_patcher.types import EditSpec, PatchSpec
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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"
|
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.srt.debug_utils.dumper import DumperConfig, _Dumper
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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"
|
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.srt.debug_utils.source_patcher.types import EditSpec, PatchApplicationError
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
class TestApplyEdits:
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ from sglang.test.ci.ci_register import register_cuda_ci
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=10,
|
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",
|
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.srt.debug_utils.dumper import DumperConfig, _Dumper
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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 -----------------------------
|
# ----------------------------- Unit tests -----------------------------
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ from sglang.srt.debug_utils.dump_loader import (
|
|||||||
)
|
)
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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:
|
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.ci.ci_register import register_cpu_ci
|
||||||
from sglang.test.test_utils import CustomTestCase
|
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 ====================
|
# ==================== Non-E2E Tests ====================
|
||||||
|
|||||||
@@ -19,12 +19,12 @@ from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
|||||||
|
|
||||||
register_cuda_ci(
|
register_cuda_ci(
|
||||||
est_time=9,
|
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",
|
disabled="Test uses pytest-style function without TestCase class - see #17145",
|
||||||
)
|
)
|
||||||
register_amd_ci(
|
register_amd_ci(
|
||||||
est_time=15,
|
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",
|
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,
|
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):
|
class TestDisaggregationAccuracy(PDDisaggregationServerBase):
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ from sglang.test.test_utils import (
|
|||||||
|
|
||||||
# Registering the test for CUDA CI with appropriate parameters
|
# Registering the test for CUDA CI with appropriate parameters
|
||||||
# Increasing estimated time since we run evaluation twice
|
# 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.")
|
@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
|
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(
|
def _make_mock_req(
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=73, suite="stage-b-test-large-2-gpu")
|
register_cuda_ci(est_time=73, suite="stage-b-test-2-gpu-large")
|
||||||
register_amd_ci(est_time=73, suite="stage-b-test-large-2-gpu-amd")
|
register_amd_ci(est_time=73, suite="stage-b-test-2-gpu-large-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestDataParallelism(CustomTestCase):
|
class TestDataParallelism(CustomTestCase):
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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(
|
class TestDPAttentionDP2TP2(
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ from sglang.utils import terminate_process
|
|||||||
|
|
||||||
mp.set_start_method("spawn", force=True)
|
mp.set_start_method("spawn", force=True)
|
||||||
|
|
||||||
register_cuda_ci(est_time=72, suite="stage-b-test-large-2-gpu")
|
register_cuda_ci(est_time=72, suite="stage-b-test-2-gpu-large")
|
||||||
register_amd_ci(est_time=72, suite="stage-b-test-large-2-gpu-amd")
|
register_amd_ci(est_time=72, suite="stage-b-test-2-gpu-large-amd")
|
||||||
|
|
||||||
|
|
||||||
def verify_params_close(params1, params2, error_msg):
|
def verify_params_close(params1, params2, error_msg):
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ import pytest
|
|||||||
|
|
||||||
from sglang.test.ci.ci_register import register_cuda_ci
|
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
|
# Import the actual parallel_state module
|
||||||
parallel_state = pytest.importorskip("sglang.srt.distributed.parallel_state")
|
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
|
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_cuda_ci(est_time=181, suite="stage-b-test-1-gpu-large")
|
||||||
register_amd_ci(est_time=330, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=330, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
from types import SimpleNamespace
|
from types import SimpleNamespace
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
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):
|
class TestLLaDA2MiniAMD(CustomTestCase):
|
||||||
|
|||||||
@@ -32,10 +32,10 @@ from sglang.test.test_utils import (
|
|||||||
# Embedding model tests
|
# Embedding model tests
|
||||||
register_amd_ci(
|
register_amd_ci(
|
||||||
est_time=73,
|
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",
|
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 = {
|
MODEL_TO_CONFIG = {
|
||||||
"Alibaba-NLP/gte-Qwen2-1.5B-instruct": (1, 1e-5),
|
"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
|
# 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)]
|
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,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=38, suite="stage-b-test-small-1-gpu")
|
register_cuda_ci(est_time=38, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=38, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=38, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestInputEmbeds(CustomTestCase):
|
class TestInputEmbeds(CustomTestCase):
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
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
|
CHUNKED_PREFILL_SIZE = 256
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ from sglang.test.test_utils import (
|
|||||||
popen_launch_server,
|
popen_launch_server,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=70, suite="stage-b-test-small-1-gpu")
|
register_cuda_ci(est_time=70, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=141, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=141, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestOpenAIEmbedding(CustomTestCase):
|
class TestOpenAIEmbedding(CustomTestCase):
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ 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")
|
register_cuda_ci(est_time=531, suite="stage-c-test-deepep-4-gpu-h100")
|
||||||
|
|
||||||
|
|
||||||
class TestPureDP(CustomTestCase):
|
class TestPureDP(CustomTestCase):
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ 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")
|
register_cuda_ci(est_time=660, suite="stage-c-test-deepep-4-gpu-h100")
|
||||||
|
|
||||||
ib_devices = get_rdma_devices_args()
|
ib_devices = get_rdma_devices_args()
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=300, suite="stage-b-test-small-1-gpu")
|
register_cuda_ci(est_time=300, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=420, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=420, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestEvalAccuracyLarge(CustomTestCase):
|
class TestEvalAccuracyLarge(CustomTestCase):
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ from sglang.test.test_utils import (
|
|||||||
write_github_step_summary,
|
write_github_step_summary,
|
||||||
)
|
)
|
||||||
|
|
||||||
register_cuda_ci(est_time=500, suite="stage-b-test-large-2-gpu")
|
register_cuda_ci(est_time=500, suite="stage-b-test-2-gpu-large")
|
||||||
register_amd_ci(est_time=500, suite="stage-b-test-large-2-gpu-amd")
|
register_amd_ci(est_time=500, suite="stage-b-test-2-gpu-large-amd")
|
||||||
|
|
||||||
|
|
||||||
class TestMoEEvalAccuracyLarge(CustomTestCase):
|
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.srt.parser.reasoning_parser import KimiK2Detector as KimiK2ReasoningDetector
|
||||||
from sglang.test.ci.ci_register import register_cpu_ci
|
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):
|
def _make_tool(name, parameters=None):
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
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_cuda_ci(est_time=96, suite="stage-b-test-1-gpu-small")
|
||||||
register_amd_ci(est_time=300, suite="stage-b-test-small-1-gpu-amd")
|
register_amd_ci(est_time=300, suite="stage-b-test-1-gpu-small-amd")
|
||||||
|
|
||||||
import time
|
import time
|
||||||
import unittest
|
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.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||||
from sglang.test.test_utils import CustomTestCase
|
from sglang.test.test_utils import CustomTestCase
|
||||||
|
|
||||||
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")
|
||||||
register_amd_ci(est_time=300, suite="stage-b-test-large-2-gpu")
|
register_amd_ci(est_time=300, suite="stage-b-test-2-gpu-large")
|
||||||
|
|
||||||
|
|
||||||
class HiCacheStorage3FSBackendBaseMixin(HiCacheStorageBaseMixin):
|
class HiCacheStorage3FSBackendBaseMixin(HiCacheStorageBaseMixin):
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ from sglang.test.test_utils import (
|
|||||||
)
|
)
|
||||||
from sglang.utils import wait_for_http_ready
|
from sglang.utils import wait_for_http_ready
|
||||||
|
|
||||||
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")
|
||||||
register_amd_ci(est_time=526, suite="stage-b-test-large-2-gpu-amd")
|
register_amd_ci(est_time=526, suite="stage-b-test-2-gpu-large-amd")
|
||||||
|
|
||||||
|
|
||||||
class HiCacheStorageBaseMixin:
|
class HiCacheStorageBaseMixin:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from sglang.test.test_utils import (
|
|||||||
is_in_ci,
|
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):
|
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