Register CPU CI for 17 e2e tests and partition xeon base-c suite (#35227)
Co-authored-by: Zhang, Mingxu <mingxu.zhang@intel.com> Co-authored-by: MingxuZh <109504044+MingxuZh@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
co-authored by
Zhang, Mingxu
MingxuZh
Copilot Autofix powered by AI
Claude
parent
11b1b4c374
commit
514b997e6c
@@ -83,11 +83,35 @@ jobs:
|
||||
runs-on: ${{ matrix.runner }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# GNR runs only the TP suite (needs >=6 NUMA nodes for --tp 6),
|
||||
# full machine, no partitioning. 4 files: 3 TP + autoround.
|
||||
- runner: xeon-gnr
|
||||
suite: base-b-test-cpu
|
||||
partition_args: ""
|
||||
role: gnr
|
||||
suite: "base-b-tp-test-cpu"
|
||||
name: gnr
|
||||
|
||||
# Each SPR box (2 sockets / 2 NUMA, 32 cores each) is ONE job that
|
||||
# runs two socket-pinned containers in parallel, each taking one
|
||||
# partition of a 4-way split over the merged non-TP pool
|
||||
# (base-b non-TP + base-c). Building once per job keeps both
|
||||
# containers on the same locally-built image.
|
||||
- runner: xeon-spr
|
||||
role: spr
|
||||
suite: "base-b-test-cpu,base-c-test-cpu"
|
||||
name: spr1
|
||||
part_size: 4
|
||||
part_lo: 0 # socket0
|
||||
part_hi: 1 # socket1
|
||||
- runner: xeon-spr
|
||||
role: spr
|
||||
suite: "base-b-test-cpu,base-c-test-cpu"
|
||||
name: spr2
|
||||
part_size: 4
|
||||
part_lo: 2 # socket0
|
||||
part_hi: 3 # socket1
|
||||
steps:
|
||||
- name: Cleanup workspace
|
||||
run: |
|
||||
@@ -100,10 +124,13 @@ jobs:
|
||||
clean: false
|
||||
ref: ${{ inputs.ref || github.ref }}
|
||||
|
||||
- name: Build and Push
|
||||
- name: Build image
|
||||
run: |
|
||||
version=$(cat python/sglang/version.py | cut -d'"' -f2)
|
||||
tag=v${version}-xeon
|
||||
# Fixed tag (no SHA): a new build overwrites the previous image so a
|
||||
# self-hosted box does not accumulate multi-GB images across PRs.
|
||||
# --no-cache keeps the CPU image clean (past sgl-eval/accelerate gaps
|
||||
# came from stale layers). One build per job; on SPR both socket
|
||||
# containers reuse this locally-built image.
|
||||
PR_REPO=${{ github.event.pull_request.head.repo.clone_url }}
|
||||
PR_HEAD_REF=${{ github.head_ref }}
|
||||
|
||||
@@ -112,37 +139,89 @@ jobs:
|
||||
${PR_HEAD_REF:+--build-arg VER_SGLANG=$PR_HEAD_REF} \
|
||||
. -f docker/xeon.Dockerfile -t sglang_xeon --no-cache
|
||||
|
||||
- name: Run container
|
||||
# ==================== GNR: full machine, TP suite ==================== #
|
||||
- name: Run container (GNR)
|
||||
if: matrix.role == 'gnr'
|
||||
run: |
|
||||
docker rm -f ci_sglang_${{ matrix.name }} || true
|
||||
docker run -dt \
|
||||
-v ${{ github.workspace }}:/sglang-checkout/ --ipc=host \
|
||||
-v $HOME/.cache/huggingface:/root/.cache/huggingface \
|
||||
-e HF_TOKEN="$(cat ~/huggingface_token.txt)" \
|
||||
--name ci_sglang_${{ matrix.runner }} \
|
||||
--name ci_sglang_${{ matrix.name }} \
|
||||
sglang_xeon
|
||||
|
||||
- name: Check AMX support
|
||||
id: check_amx
|
||||
- name: Check AMX support (GNR)
|
||||
if: matrix.role == 'gnr'
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
docker exec -w /sglang-checkout/ ci_sglang_${{ matrix.runner }} \
|
||||
docker exec -w /sglang-checkout/ ci_sglang_${{ matrix.name }} \
|
||||
bash -c "source /opt/.venv/bin/activate && python3 -c 'import torch; import sgl_kernel; assert torch.cpu._is_amx_tile_supported(); assert hasattr(torch.ops.sgl_kernel, \"convert_weight_packed\"); '"
|
||||
|
||||
- name: Run unit tests
|
||||
- name: Run unit tests (GNR)
|
||||
if: matrix.role == 'gnr'
|
||||
timeout-minutes: 120
|
||||
run: |
|
||||
docker exec -w /sglang-checkout/ ci_sglang_${{ matrix.runner }} \
|
||||
bash -c "source /opt/.venv/bin/activate && cd ./test && python3 run_suite.py --hw cpu --suite ${{ matrix.suite }} ${{ matrix.partition_args }}"
|
||||
docker exec -w /sglang-checkout/ ci_sglang_${{ matrix.name }} \
|
||||
bash -c "source /opt/.venv/bin/activate && cd ./test && python3 run_suite.py --hw cpu --suite ${{ matrix.suite }} --timeout-from-est-time"
|
||||
|
||||
# ============ SPR: two socket-pinned containers in parallel ========== #
|
||||
- name: Run unit tests (SPR, two sockets in parallel)
|
||||
if: matrix.role == 'spr'
|
||||
timeout-minutes: 120
|
||||
run: |
|
||||
set -uo pipefail
|
||||
HF_TOKEN_VAL="$(cat ~/huggingface_token.txt)"
|
||||
|
||||
# $1 socket id, $2 cpuset-cpus, $3 cpuset-mems, $4 partition id
|
||||
run_socket () {
|
||||
local sid=$1 cpus=$2 mems=$3 pid=$4
|
||||
local cname=ci_sglang_${{ matrix.name }}_s${sid}
|
||||
docker rm -f "$cname" >/dev/null 2>&1 || true
|
||||
docker run -dt \
|
||||
--cpuset-cpus="$cpus" --cpuset-mems="$mems" \
|
||||
-v ${{ github.workspace }}:/sglang-checkout/ --ipc=host \
|
||||
-v $HOME/.cache/huggingface:/root/.cache/huggingface \
|
||||
-e HF_TOKEN="$HF_TOKEN_VAL" \
|
||||
-e SGLANG_CPU_OMP_THREADS_BIND="$cpus" \
|
||||
--name "$cname" \
|
||||
sglang_xeon
|
||||
# AMX sanity on this socket, then the partition it owns.
|
||||
docker exec -w /sglang-checkout/ "$cname" bash -c \
|
||||
"source /opt/.venv/bin/activate && python3 -c 'import torch; import sgl_kernel; assert torch.cpu._is_amx_tile_supported(); assert hasattr(torch.ops.sgl_kernel, \"convert_weight_packed\")' && \
|
||||
cd ./test && python3 run_suite.py --hw cpu --suite ${{ matrix.suite }} --auto-partition-id $pid --auto-partition-size ${{ matrix.part_size }} --timeout-from-est-time"
|
||||
}
|
||||
|
||||
# socket0 -> part_lo, socket1 -> part_hi; run concurrently, wait both.
|
||||
# Runners have hyper-threading OFF: 64 physical cores = CPUs 0-63,
|
||||
# NUMA0=0-31, NUMA1=32-63 (no sibling range).
|
||||
run_socket 0 "0-31" 0 ${{ matrix.part_lo }} > s0.log 2>&1 &
|
||||
P0=$!
|
||||
run_socket 1 "32-63" 1 ${{ matrix.part_hi }} > s1.log 2>&1 &
|
||||
P1=$!
|
||||
|
||||
rc=0
|
||||
wait $P0 || rc=1
|
||||
wait $P1 || rc=1
|
||||
|
||||
echo "==================== socket0 (partition ${{ matrix.part_lo }}) ===================="
|
||||
cat s0.log || true
|
||||
echo "==================== socket1 (partition ${{ matrix.part_hi }}) ===================="
|
||||
cat s1.log || true
|
||||
exit $rc
|
||||
|
||||
# ============================ Common ================================= #
|
||||
- name: Change permission
|
||||
if: always()
|
||||
timeout-minutes: 2
|
||||
run: |
|
||||
docker exec -u root ci_sglang_${{ matrix.runner }} bash -c "
|
||||
rm -rf /tmp/ci-home &&
|
||||
chown -R $(id -u):$(id -g) /sglang-checkout/ 2>/dev/null || true
|
||||
"
|
||||
for c in ci_sglang_${{ matrix.name }} ci_sglang_${{ matrix.name }}_s0 ci_sglang_${{ matrix.name }}_s1; do
|
||||
docker exec -u root "$c" bash -c "rm -rf /tmp/ci-home && chown -R $(id -u):$(id -g) /sglang-checkout/ 2>/dev/null || true" 2>/dev/null || true
|
||||
done
|
||||
|
||||
- name: Cleanup container
|
||||
if: always()
|
||||
run: |
|
||||
docker rm -f ci_sglang_${{ matrix.runner }} || true
|
||||
for c in ci_sglang_${{ matrix.name }} ci_sglang_${{ matrix.name }}_s0 ci_sglang_${{ matrix.name }}_s1; do
|
||||
docker rm -f "$c" || true
|
||||
done
|
||||
|
||||
@@ -39,7 +39,7 @@ RUN source /opt/.venv/bin/activate && \
|
||||
git checkout ${VER_SGLANG} && \
|
||||
cd python && \
|
||||
cp pyproject_cpu.toml pyproject.toml && \
|
||||
uv pip install . && \
|
||||
uv pip install ".[diffusion]" && \
|
||||
cd sglang/kernels/aot && \
|
||||
cp pyproject_cpu.toml pyproject.toml && \
|
||||
uv pip install . && \
|
||||
|
||||
@@ -60,7 +60,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=40, suite="base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=46, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class _DummyTokenTensor:
|
||||
|
||||
@@ -24,7 +24,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cpu_ci(est_time=330, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=183, suite="base-b-tp-test-cpu")
|
||||
|
||||
|
||||
class TestAutoRoundCPUConfig(CustomTestCase):
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.srt.server_args import ServerArgs, set_global_server_args_for_schedu
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import GeluAndMul, SiluAndMul, precision
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=9, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu-arm64")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
@@ -8,7 +8,7 @@ kernel = torch.ops.sgl_kernel
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-b-tp-test-cpu")
|
||||
|
||||
|
||||
class TestBinding(CustomTestCase):
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import precision
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=13, suite="base-b-test-cpu")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import parametrize, precision
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-b-test-cpu")
|
||||
|
||||
causal_conv1d_weight_pack = torch.ops.sgl_kernel.causal_conv1d_weight_pack
|
||||
causal_conv1d_fwd = torch.ops.sgl_kernel.causal_conv1d_fwd_cpu
|
||||
|
||||
@@ -13,7 +13,7 @@ import torch.multiprocessing as mp
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase, find_available_port
|
||||
|
||||
register_cpu_ci(est_time=30, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=43, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
def run_distributed_test(rank, world_size, master_port, output_writer, fn):
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=315, suite="base-b-tp-test-cpu")
|
||||
|
||||
|
||||
class TestCPUGraph(CustomTestCase):
|
||||
|
||||
@@ -7,7 +7,7 @@ from torch.nn.functional import scaled_dot_product_attention
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-b-test-cpu")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import parametrize, precision
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=54, suite="base-b-test-cpu")
|
||||
|
||||
flash_attn_varlen_func = torch.ops.sgl_kernel.flash_attn_varlen_func
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ from sglang.test.cpu_test_utils import (
|
||||
)
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=9, suite="base-b-test-cpu")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ from sglang.test.test_utils import (
|
||||
popen_launch_server,
|
||||
)
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=685, suite="base-b-tp-test-cpu")
|
||||
|
||||
|
||||
class TestIntelAMXAttnBackend(CustomTestCase):
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
||||
intel_amx_benchmark,
|
||||
)
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=47, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
class TestIntelAMXAttnBackendQuant(CustomTestCase):
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.test.test_utils import (
|
||||
intel_amx_benchmark,
|
||||
)
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=477, suite="base-b-tp-test-cpu")
|
||||
|
||||
|
||||
class TestIntelAMXAttnBackendQuant(CustomTestCase):
|
||||
|
||||
@@ -9,7 +9,7 @@ from torch.nn.functional import softplus
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import precision
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-b-test-cpu")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import precision
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-b-test-cpu")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ from sglang.test.cpu_test_utils import (
|
||||
unpack_and_dequant_awq,
|
||||
)
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
def run_fused_experts(
|
||||
|
||||
@@ -8,7 +8,7 @@ import torch
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import make_non_contiguous, precision
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu-arm64")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.test.cpu_test_utils import (
|
||||
)
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-b-test-cpu")
|
||||
|
||||
convert_weight_packed = torch.ops.sgl_kernel.convert_weight_packed
|
||||
qkv_proj_with_rope = torch.ops.sgl_kernel.qkv_proj_with_rope
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.srt.utils import is_host_cpu_arm64
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import precision
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu-arm64")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
@@ -25,7 +25,7 @@ from sglang.srt.utils.rank_consensus_checker import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase, find_available_port
|
||||
|
||||
register_cpu_ci(est_time=30, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=193, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
def run_distributed_test(
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.srt.entrypoints.http_request_decompression import (
|
||||
)
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-b-test-cpu")
|
||||
|
||||
PAYLOAD = b'{"text":"hello world","n":7}'
|
||||
COMPRESSED = zstandard.ZstdCompressor().compress(PAYLOAD)
|
||||
|
||||
@@ -7,7 +7,7 @@ from starlette.datastructures import Headers
|
||||
from sglang.srt.entrypoints.request_headers import apply_header_overrides
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=4, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
def _obj():
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import precision
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=33, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu-arm64")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
@@ -7,7 +7,7 @@ from unittest.mock import patch
|
||||
from sglang.srt.server_args import ServerArgs
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu-arm64")
|
||||
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.test.cpu_test_utils import (
|
||||
)
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-b-test-cpu")
|
||||
|
||||
torch.manual_seed(1234)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.cpu_test_utils import precision
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=20, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
def _topk1_chain_inputs(bs, num_steps):
|
||||
|
||||
@@ -6,7 +6,7 @@ import torch
|
||||
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=25, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=14, suite="base-b-test-cpu")
|
||||
|
||||
torch.manual_seed(42)
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.multimodal_gen.runtime.layers.attention.backends.subblock_sparse_att
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=9, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
class TestSubBlockSparseAttentionDispatch(CustomTestCase):
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.models.llama4 import Llama4MoE
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=30, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=10, suite="base-b-test-cpu-arm64")
|
||||
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestExecuteSubPlans:
|
||||
|
||||
@@ -26,7 +26,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _make_meta(
|
||||
|
||||
@@ -27,7 +27,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _zigzag_order(cp_size: int) -> list[int]:
|
||||
|
||||
@@ -27,7 +27,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestComputeReordererPlans:
|
||||
|
||||
@@ -18,7 +18,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestComputeAxisAlignerPlan:
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import TokenLayout
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
_sglang_plugin = _SGLangPlugin()
|
||||
_megatron_plugin = _MegatronPlugin()
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestExecuteConcat:
|
||||
|
||||
@@ -30,7 +30,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _named(tensor: torch.Tensor, names: list[str]) -> torch.Tensor:
|
||||
|
||||
@@ -24,7 +24,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=30, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestBuildTokenIndexSGLangThd:
|
||||
|
||||
@@ -31,7 +31,7 @@ from sglang.srt.debug_utils.comparator.output_types import ReplicatedCheckResult
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _name_tensors(
|
||||
|
||||
@@ -10,7 +10,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestNormalizeParallelInfo:
|
||||
|
||||
@@ -20,7 +20,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import ParallelAxis, parse_dims
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestComputeUnsharderPlan:
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestParseDim:
|
||||
|
||||
@@ -16,7 +16,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestSingletonDimUtilFilterOut:
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestFindDimIndex:
|
||||
|
||||
@@ -10,7 +10,7 @@ from sglang.srt.debug_utils.comparator.dims_spec import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestDimConstants:
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.srt.debug_utils.comparator.threshold_dsl import DiffThresholdRule
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=20, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestComputeTensorInfo:
|
||||
|
||||
@@ -22,7 +22,7 @@ from sglang.srt.debug_utils.comparator.tensor_comparator.types import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _make_stats(**overrides) -> TensorStats:
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.srt.debug_utils.comparator.report_sink import report_sink
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _make_error_log(**overrides) -> ErrorLog:
|
||||
|
||||
@@ -17,7 +17,7 @@ from sglang.srt.debug_utils.comparator.meta_overrider import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
# ───────────────────── Unit: MetaOverrideRule ─────────────────────
|
||||
|
||||
@@ -45,7 +45,7 @@ from sglang.srt.debug_utils.comparator.utils import Pair, _check_equal_lengths
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestCheckEqualLengths:
|
||||
|
||||
@@ -4,7 +4,7 @@ from sglang.srt.debug_utils.comparator.preset import PRESETS, expand_preset
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestExpandPreset:
|
||||
|
||||
@@ -18,7 +18,7 @@ from sglang.srt.debug_utils.comparator.utils import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestCalcRelDiff:
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.srt.debug_utils.source_patcher.types import EditSpec, PatchSpec
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
|
||||
SAMPLE_MODULE_NAME = "_source_patcher_test_fixtures.sample_module"
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ from sglang.srt.debug_utils.dumper import DumperConfig, _Dumper
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
SAMPLE_MODULE_NAME = "_source_patcher_test_fixtures.sample_module"
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ from sglang.srt.debug_utils.source_patcher.types import EditSpec, PatchApplicati
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=4, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestApplyEdits:
|
||||
|
||||
@@ -23,7 +23,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=70, stage="nightly", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=40, suite="nightly-amd-1-gpu", nightly=True)
|
||||
register_cpu_ci(est_time=225, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=48, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestCrashDump(CustomTestCase):
|
||||
|
||||
@@ -26,7 +26,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=120, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=338, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=357, suite="base-c-test-cpu")
|
||||
|
||||
# ==================== Non-E2E Tests ====================
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=240, stage="nightly", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=120, suite="nightly-amd-1-gpu", nightly=True)
|
||||
register_cpu_ci(est_time=622, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=237, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class BaseTestSoftWatchdog:
|
||||
|
||||
@@ -12,7 +12,7 @@ from sglang.srt.parser.reasoning_parser import KimiK2Detector as KimiK2Reasoning
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(5, "base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=4, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _make_tool(name, parameters=None):
|
||||
|
||||
@@ -7,7 +7,11 @@ import requests
|
||||
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
|
||||
from sglang.srt.utils import kill_process_tree
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||
@@ -18,6 +22,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=42, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=38, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=58, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestInputEmbeds(CustomTestCase):
|
||||
|
||||
@@ -21,7 +21,11 @@ from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||
|
||||
from sglang.srt.environ import envs
|
||||
from sglang.srt.utils import kill_process_tree
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||
@@ -32,6 +36,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=43, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=43, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=54, suite="base-c-test-cpu")
|
||||
|
||||
CHUNKED_PREFILL_SIZE = 256
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.test.kv_canary.e2e_base import (
|
||||
)
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=1, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestCanaryE2EBase(CustomTestCase):
|
||||
|
||||
@@ -8,7 +8,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.kv_canary.e2e_base import CanaryE2EBase
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
_GOOD_LINE: str = SwaDivergenceLog(
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.srt.server_args import ServerArgs
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cpu_ci
|
||||
|
||||
register_amd_ci(est_time=30, suite="nightly-amd-1-gpu", nightly=True)
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class MockTokenizerManager:
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cuda_ci(est_time=29, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=45, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=203, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=32, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestExternalModels(CustomTestCase):
|
||||
|
||||
@@ -13,7 +13,7 @@ from sglang.test.server_fixtures.default_fixture import DefaultServerBase
|
||||
|
||||
register_cuda_ci(est_time=48, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=48, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=320, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=206, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestTransformersBackendEval(DefaultServerBase):
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.runtime_context import get_parallel
|
||||
from sglang.srt.server_args import ServerArgs, set_global_server_args_for_scheduler
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
|
||||
@@ -26,7 +26,7 @@ register_cuda_ci(
|
||||
runner_config="1-gpu-small",
|
||||
)
|
||||
register_amd_ci(est_time=60, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=179, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=49, suite="base-c-test-cpu")
|
||||
|
||||
_MODEL_NAME = "Qwen/Qwen3-0.6B"
|
||||
|
||||
|
||||
@@ -16,7 +16,11 @@ import unittest
|
||||
import requests
|
||||
|
||||
from sglang.srt.utils import kill_process_tree
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||
@@ -27,6 +31,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=50, stage="base-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=140, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=54, suite="base-c-test-cpu")
|
||||
|
||||
# System message to guide Llama3.2 to produce proper tool call format
|
||||
SYSTEM_MESSAGE = (
|
||||
|
||||
@@ -11,7 +11,11 @@ import openai
|
||||
|
||||
from sglang.srt.utils import kill_process_tree
|
||||
from sglang.srt.utils.hf_transformers_utils import get_tokenizer
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||
@@ -24,6 +28,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=58, stage="base-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=41, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=101, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestLargeMaxNewTokens(CustomTestCase):
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import unittest
|
||||
|
||||
from sglang.srt.utils import kill_process_tree
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.kits.matched_stop_kit import MatchedStopMixin
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_MODEL_NAME_FOR_TEST,
|
||||
@@ -12,6 +16,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=52, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=60, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=83, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestMatchedStop(CustomTestCase, MatchedStopMixin):
|
||||
|
||||
@@ -4,7 +4,11 @@ import unittest
|
||||
import openai
|
||||
|
||||
from sglang.srt.utils import kill_process_tree
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_SMALL_EMBEDDING_MODEL_NAME_FOR_TEST,
|
||||
DEFAULT_TIMEOUT_FOR_SERVER_LAUNCH,
|
||||
@@ -15,6 +19,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=91, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=141, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=91, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestOpenAIEmbedding(CustomTestCase):
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import unittest
|
||||
|
||||
from sglang.srt.environ import envs
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.kits.radix_cache_server_kit import run_radix_attention_test
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||
@@ -16,6 +20,7 @@ from sglang.test.test_utils import (
|
||||
# RadixAttention server integration tests
|
||||
register_cuda_ci(est_time=100, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=100, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=405, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestRadixCacheFCFS(CustomTestCase):
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
import unittest
|
||||
|
||||
from sglang.srt.utils import kill_process_tree
|
||||
from sglang.test.ci.ci_register import register_amd_ci, register_cuda_ci
|
||||
from sglang.test.ci.ci_register import (
|
||||
register_amd_ci,
|
||||
register_cpu_ci,
|
||||
register_cuda_ci,
|
||||
)
|
||||
from sglang.test.kits.cache_hit_kit import run_multiturn_cache_hit_test
|
||||
from sglang.test.test_utils import (
|
||||
DEFAULT_SMALL_MODEL_NAME_FOR_TEST,
|
||||
@@ -13,6 +17,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=55, stage="base-b", runner_config="1-gpu-small")
|
||||
register_amd_ci(est_time=55, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=113, suite="base-c-test-cpu")
|
||||
|
||||
MODEL = DEFAULT_SMALL_MODEL_NAME_FOR_TEST
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import unittest
|
||||
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.ci.ci_register import register_cpu_ci, register_cuda_ci
|
||||
from sglang.test.kits.kl_divergence_kit import KLDivergenceMixin
|
||||
from sglang.test.server_fixtures.default_fixture import DefaultServerBase
|
||||
|
||||
MODEL = "openai/gpt-oss-20b"
|
||||
|
||||
register_cuda_ci(est_time=151, stage="base-b", runner_config="1-gpu-large")
|
||||
register_cpu_ci(est_time=1602, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestSWARadixCacheKL(KLDivergenceMixin, DefaultServerBase):
|
||||
|
||||
@@ -10,7 +10,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=7, suite="base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@@ -19,7 +19,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=7, suite="base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
_HTTP_SCOPE = {
|
||||
"type": "http",
|
||||
|
||||
@@ -22,7 +22,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=50, stage="nightly", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=120, suite="nightly-amd-1-gpu", nightly=True)
|
||||
register_cpu_ci(est_time=184, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=55, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestRoutingKeyScheduling(CustomTestCase):
|
||||
|
||||
@@ -5,7 +5,7 @@ CUDA-only: gpt-oss-20b is not part of the AMD streaming-session coverage.
|
||||
|
||||
import unittest
|
||||
|
||||
from sglang.test.ci.ci_register import register_cuda_ci
|
||||
from sglang.test.ci.ci_register import register_cpu_ci, register_cuda_ci
|
||||
from sglang.test.kits.streaming_session_kit import StreamingSessionKitMixin
|
||||
from sglang.test.server_fixtures.streaming_session_fixture import (
|
||||
SWA_COMMON_ARGS,
|
||||
@@ -14,6 +14,7 @@ from sglang.test.server_fixtures.streaming_session_fixture import (
|
||||
)
|
||||
|
||||
register_cuda_ci(est_time=130, stage="extra-a", runner_config="1-gpu-large")
|
||||
register_cpu_ci(est_time=449, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestStreamingSessionSWARetractMixedChunk(
|
||||
|
||||
@@ -11,7 +11,7 @@ from sglang.test.simple_eval_mixed_prefix_gsm8k import (
|
||||
)
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _write_synthetic_dataset(path: str, n: int) -> None:
|
||||
|
||||
@@ -10,7 +10,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.run_eval import _run_sgl_eval
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
def _write_fake_metrics(out_parent: Path, eval_name: str, payload: dict) -> None:
|
||||
|
||||
@@ -31,7 +31,7 @@ from sglang.test.ci.ci_register import register_cpu_ci
|
||||
register_cpu_ci(2.0, "base-a-test-cpu")
|
||||
|
||||
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _make_scheduler(grammar_backend_name="none", skip_tokenizer=False):
|
||||
|
||||
@@ -18,7 +18,7 @@ from sglang.srt.parser.reasoning_parser import KimiK3Detector as KimiK3Reasoning
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(2.0, "base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class _DummyTokenizer:
|
||||
|
||||
@@ -15,7 +15,7 @@ from sglang.srt.constrained.utils import is_legacy_structural_tag
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(1.0, "base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestIsLegacyStructuralTag(unittest.TestCase):
|
||||
|
||||
@@ -59,7 +59,7 @@ from sglang.srt.managers.io_struct import EmbeddingReqInput
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-a-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
# Mock TokenizerManager for embedding tests
|
||||
|
||||
@@ -34,7 +34,7 @@ from sglang.srt.function_call.qwen3_coder_detector import Qwen3CoderDetector
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu")
|
||||
register_cpu_ci(est_time=61, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=70, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestInklingDetector(unittest.TestCase):
|
||||
|
||||
@@ -19,7 +19,7 @@ from sglang.srt.function_call.utils import (
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(5, "base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestJsonSchemaConstraint(unittest.TestCase):
|
||||
|
||||
@@ -24,7 +24,7 @@ from sglang.srt.function_call.json_array_parser import JsonArrayParser
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(5, "base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=4, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestParallelToolCalls(unittest.TestCase):
|
||||
|
||||
@@ -10,7 +10,7 @@ from sglang.srt.function_call.core_types import StreamingParseResult
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(5, "base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class DummyDetector(BaseFormatDetector):
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.srt.layers.moe.moe_runner.aiter import (
|
||||
from sglang.srt.layers.moe.moe_runner.base import MoeRunnerConfig
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _runner_input():
|
||||
|
||||
@@ -14,7 +14,7 @@ from sglang.srt.layers.moe.utils import MoeRunnerBackend
|
||||
from sglang.srt.runtime_context import get_flags
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
@@ -37,7 +37,7 @@ from sglang.test.test_utils import (
|
||||
|
||||
register_cuda_ci(est_time=8, stage="base-b", runner_config="1-gpu-large")
|
||||
register_amd_ci(est_time=8, suite="stage-b-test-1-gpu-small-amd")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=6, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestTokenizedReqInputMsgpack(unittest.TestCase):
|
||||
|
||||
@@ -7,7 +7,7 @@ from sglang.srt.environ import envs
|
||||
from sglang.srt.managers import mm_schedule as mm_utils
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=5, suite="base-b-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-b-test-cpu")
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
||||
@@ -40,7 +40,7 @@ from sglang.srt.utils.weight_checker import ParallelismInfo as PydanticParalleli
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
from sglang.test.test_utils import CustomTestCase
|
||||
|
||||
register_cpu_ci(est_time=10, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
def _round_trip(obj):
|
||||
|
||||
@@ -24,7 +24,7 @@ from sglang.srt.runtime_context import publish, reset_context
|
||||
from sglang.srt.sampling.sampling_params import SamplingParams
|
||||
|
||||
register_cpu_ci(est_time=15, suite="base-a-test-cpu")
|
||||
register_cpu_ci(est_time=9, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=8, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestSchedulerPauseGeneration(unittest.TestCase):
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=6, suite="base-a-test-cpu")
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
|
||||
import unittest
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
@@ -7,7 +7,7 @@ from unittest.mock import MagicMock, patch
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
register_cpu_ci(est_time=60, suite="base-a-test-cpu", nightly=True)
|
||||
register_cpu_ci(est_time=7, suite="base-c-test-cpu")
|
||||
register_cpu_ci(est_time=5, suite="base-c-test-cpu")
|
||||
|
||||
|
||||
class TestCpuMonitor(unittest.TestCase):
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user