Skip to content

[SGLANG] Standalone test workflow with per family suites on PVC and BMG - #7725

Open
dev-tomek wants to merge 15 commits into
mainfrom
tkuczynski/7640
Open

[SGLANG] Standalone test workflow with per family suites on PVC and BMG#7725
dev-tomek wants to merge 15 commits into
mainfrom
tkuczynski/7640

Conversation

@dev-tomek

@dev-tomek dev-tomek commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Gives sglang its own test CI instead of a single job inside third-party-tests, mirroring the vLLM setup.

  • reusable workflow builds the triton wheel once then runs the suites as a matrix and reports pass rates
  • splits the sglang tests into per kernel family suites like attention quant moe mamba and gdn
  • runs manually, on a schedule for PVC and BMG, and on PRs via the run-sglang-tests label
  • adds BMG support with a build parallelism cap and xe2 skiplists for known B580 failures
  • drops the sglang job from third-party-tests

Closes #7640
Closes #7641
Closes #7643
Closes #7652

Splits the single --sglang suite into one suite per kernel family and wires
them into the SGLang matrix workflow: attention, quant, moe, mamba, gdn, kda,
spec. --sglang keeps running all of them.

Test files come from the list agreed in #7655. The kernel/test mapping and the
files that cannot be wired in yet are documented in scripts/sglang/README.md.

Skip lists are populated from a local Max 1100 run. Nothing fails because of
Triton codegen: the skips are tests hardcoding device="cuda", SGLang fla
kernels still using tl.make_block_ptr (removed in favour of TensorDescriptor),
and one torch reference that does not fit in 48 GB. Five agreed files are not
wired in at all because they import sgl_kernel, which is not installed on XPU.

The suites run without -n, like the vLLM ones: under -n 4 the attention tests
take down an xdist worker with a GPU page fault on a single-GPU runner.

Signed-off-by: Witold Dziurdz <witold.dziurdz@intel.com>
setup.py builds with -j(2 * cores) by default. On b580 that OOM-killed cc1plus
while compiling ConvertWarpSpecializeToLLVM.cpp, so the BMG setup job failed and
the whole test matrix was skipped.

Add a max_jobs input to the reusable workflow and pass 8 from both b580 callers.
PVC keeps the default.

Also add two quant test files that already pass on XPU: test_triton_scaled_mm.py
covers triton_scaled_mm from fp8_kernel.py, the kernel module srt imports most
often, and test_awq_dequant.py covers awq_dequantize and awq_gemm. Both pick the
device with sglang.srt.utils.get_device(), so no patching is needed. The suite
goes from 2 passed in 7s to 5 passed in 43s on Max 1100.

Signed-off-by: Witold Dziurdz <witold.dziurdz@intel.com>
@dev-tomek dev-tomek changed the title [SGLANG] Add own test workflow with PVC/BMG scheduled wrappers [SGLANG] Standalone test workflow with per family suites on PVC and BMG Aug 19, 2026
@dev-tomek
dev-tomek marked this pull request as ready for review August 19, 2026 07:58
@dev-tomek
dev-tomek requested review from mieshkiwrk, quinnlp and whitneywhtsang and a lite review from Copilot August 19, 2026 07:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR moves SGLang testing out of the monolithic third-party-tests workflow into a dedicated, vLLM-style CI setup, with a reusable workflow that builds a Triton wheel once and then runs SGLang test suites as a matrix across PVC and BMG runners.

Changes:

  • Split run_sglang_tests into per-kernel-family suites (attention/quant/moe/mamba/gdn/kda/spec) and add corresponding scripts/test-triton.sh flags.
  • Add new SGLang GitHub Actions workflows (manual dispatcher, reusable workflow, and scheduled PVC/BMG wrappers), plus on-label triggers via run-sglang-tests.
  • Introduce default + xe2 (BMG) skiplist entries for SGLang suites, and remove the SGLang job from third-party-tests.yml.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/test-triton.sh Adds per-family SGLang suite flags and implements suite-specific pytest invocations.
scripts/sglang/README.md Documents SGLang install/test scripts, suite mapping, and CI usage.
.github/workflows/sglang-tests-reusable.yml New reusable workflow to build Triton wheel once and run SGLang suite matrix with reporting.
.github/workflows/sglang-tests.yml Manual dispatcher workflow to invoke the reusable SGLang test workflow with overrides.
.github/workflows/sglang-tests-pvc.yml Scheduled PVC wrapper for SGLang tests.
.github/workflows/sglang-tests-bmg.yml Scheduled BMG wrapper for SGLang tests (xe2 skiplist + capped MAX_JOBS).
.github/workflows/on-label.yml Adds run-sglang-tests label trigger to run SGLang tests on PVC and BMG.
.github/workflows/third-party-tests.yml Removes the SGLang job and updates workflow naming/inputs accordingly.
scripts/skiplist/default/sglang_{attention,moe,gdn,spec}.txt Adds default-suite skip entries for known incompatibilities/OOMs.
scripts/skiplist/xe2/sglang_{attention,quant,moe,gdn,spec}.txt Adds xe2 (BMG) skip entries for known B580-specific or xe2-specific failures.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/sglang-tests-reusable.yml
Comment thread scripts/sglang/README.md
@dev-tomek

Copy link
Copy Markdown
Contributor Author

Failing liger kernel check unrelated to this PR (fails on main as well), tracked here: #7796

Comment thread .github/workflows/sglang-tests-bmg.yml
Comment thread .github/workflows/sglang-tests-bmg.yml Outdated
Comment thread .github/workflows/on-label.yml Outdated
Comment thread .github/workflows/on-label.yml Outdated
Comment thread .github/workflows/sglang-tests-reusable.yml Outdated
Comment thread .github/workflows/sglang-tests-reusable.yml Outdated
fi
if [[ -n "$max_jobs" ]]; then
export MAX_JOBS="$max_jobs"
fi

@quinnlp quinnlp Aug 24, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

5 participants