[AMD] CI - Add MI35x nightly/PR tests for kv-cache-fp8 and allreduce-fusion (DeepSeek) (#19834)
Co-authored-by: bingxche <Bingxu.Chen@amd.com>
This commit is contained in:
@@ -21,46 +21,10 @@ on:
|
||||
type: boolean
|
||||
default: true
|
||||
job_filter:
|
||||
description: 'Select which job to run (leave empty or "all" to run all jobs)'
|
||||
description: 'Comma-separated list of jobs to run (e.g. "nightly-8-gpu-grok2,nightly-8-gpu-deepseek-v31"). Leave empty or "all" to run all jobs.'
|
||||
required: false
|
||||
type: choice
|
||||
type: string
|
||||
default: 'all'
|
||||
options:
|
||||
- 'all'
|
||||
# MI30x Unit Tests
|
||||
- 'nightly-test-1-gpu-unit'
|
||||
# MI30x Accuracy Tests (GSM8K / MMMU)
|
||||
- 'nightly-accuracy-2-gpu'
|
||||
- 'nightly-accuracy-2-gpu-vlm'
|
||||
- 'nightly-perf-2-gpu-text'
|
||||
- 'nightly-perf-2-gpu-vlm'
|
||||
- 'nightly-accuracy-8-gpu'
|
||||
# MI30x Accuracy + Performance Tests (combined)
|
||||
- 'nightly-8-gpu-grok1-int4'
|
||||
- 'nightly-8-gpu-grok2'
|
||||
- 'nightly-8-gpu-deepseek-v31'
|
||||
- 'nightly-8-gpu-deepseek-v32'
|
||||
- 'nightly-8-gpu-deepseek-v32-mtp'
|
||||
- 'nightly-8-gpu-kimi-k25'
|
||||
- 'nightly-8-gpu-qwen3-235b'
|
||||
- 'nightly-8-gpu-qwen35'
|
||||
- 'nightly-8-gpu-glm5'
|
||||
- 'nightly-8-gpu-minimax-m25'
|
||||
# MI35x jobs
|
||||
- 'nightly-test-1-gpu-mi35x'
|
||||
- 'nightly-8-gpu-mi35x-qwen3-235b-mxfp4'
|
||||
- 'nightly-8-gpu-mi35x-qwen35'
|
||||
- 'nightly-8-gpu-mi35x-kimi-k25'
|
||||
- 'nightly-8-gpu-mi35x-glm5'
|
||||
- 'nightly-8-gpu-mi35x-minimax-m25'
|
||||
- 'nightly-accuracy-8-gpu-mi35x'
|
||||
- 'nightly-8-gpu-mi35x-grok1-int4'
|
||||
- 'nightly-8-gpu-mi35x-grok2'
|
||||
- 'nightly-8-gpu-mi35x-deepseek-r1-mxfp4'
|
||||
- 'nightly-accuracy-8-gpu-mi35x-deepseek-v32'
|
||||
- 'nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp'
|
||||
- 'nightly-perf-8-gpu-mi35x-deepseek-v32-basic'
|
||||
- 'nightly-perf-8-gpu-mi35x-deepseek-v32-mtp'
|
||||
workflow_call:
|
||||
inputs:
|
||||
ref:
|
||||
@@ -98,7 +62,7 @@ jobs:
|
||||
# ============================================== MI30x Unit Tests ==============================================
|
||||
# 1-GPU Unit Tests - LoRA, debug utils, scheduler, etc. (MI30x only)
|
||||
nightly-test-1-gpu-unit:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-1-gpu-unit')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-test-1-gpu-unit,'))
|
||||
runs-on: linux-mi325-1gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -128,7 +92,7 @@ jobs:
|
||||
# ============================================== MI30x Accuracy Tests ==============================================
|
||||
# 2-GPU Accuracy Tests - GSM8K eval (MI30x only)
|
||||
nightly-accuracy-2-gpu:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-accuracy-2-gpu')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-2-gpu,'))
|
||||
runs-on: linux-mi325-2gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -157,7 +121,7 @@ jobs:
|
||||
|
||||
# 2-GPU VLM Accuracy Tests - Vision-Language Models MMMU evaluation
|
||||
nightly-accuracy-2-gpu-vlm:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-accuracy-2-gpu-vlm')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-2-gpu-vlm,'))
|
||||
runs-on: linux-mi325-2gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -187,7 +151,7 @@ jobs:
|
||||
|
||||
# 2-GPU Text Models Performance Tests
|
||||
nightly-perf-2-gpu-text:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-perf-2-gpu-text')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-2-gpu-text,'))
|
||||
runs-on: linux-mi325-2gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -218,7 +182,7 @@ jobs:
|
||||
|
||||
# 2-GPU VLM Performance Tests
|
||||
nightly-perf-2-gpu-vlm:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-perf-2-gpu-vlm')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-2-gpu-vlm,'))
|
||||
runs-on: linux-mi325-2gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -249,7 +213,7 @@ jobs:
|
||||
|
||||
# 8-GPU Accuracy Tests - GPT-OSS, Grok1-FP8 (accuracy only)
|
||||
nightly-accuracy-8-gpu:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-accuracy-8-gpu')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -289,7 +253,7 @@ jobs:
|
||||
# ============================================== MI30x Combined Accuracy + Performance Tests ==============================================
|
||||
# 8-GPU Grok1-INT4 (Accuracy + Performance combined)
|
||||
nightly-8-gpu-grok1-int4:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-grok1-int4')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-grok1-int4,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -332,7 +296,7 @@ jobs:
|
||||
|
||||
# 8-GPU Grok2 (Accuracy + Performance combined)
|
||||
nightly-8-gpu-grok2:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-grok2')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-grok2,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -375,7 +339,7 @@ jobs:
|
||||
|
||||
# 8-GPU DeepSeek-V3.1 (Accuracy + Performance combined)
|
||||
nightly-8-gpu-deepseek-v31:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-deepseek-v31')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v31,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -418,7 +382,7 @@ jobs:
|
||||
|
||||
# 8-GPU DeepSeek-V3.2 (Basic Accuracy + Perf)
|
||||
nightly-8-gpu-deepseek-v32:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-deepseek-v32')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v32,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -459,7 +423,7 @@ jobs:
|
||||
|
||||
# 8-GPU DeepSeek-V3.2 MTP (MTP Accuracy + Perf)
|
||||
nightly-8-gpu-deepseek-v32-mtp:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-deepseek-v32-mtp')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v32-mtp,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -498,9 +462,39 @@ jobs:
|
||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
# 8-GPU DeepSeek-V3 KV FP8 (Basic + MTP with --kv-cache-dtype fp8_e4m3)
|
||||
nightly-8-gpu-deepseek-v3-kv-fp8:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v3-kv-fp8,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.ref || github.ref }}
|
||||
|
||||
- name: Setup docker
|
||||
run: |
|
||||
touch github_summary.md
|
||||
bash scripts/ci/amd/amd_ci_start_container.sh
|
||||
env:
|
||||
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: bash scripts/ci/amd/amd_ci_install_dependency.sh
|
||||
|
||||
- name: DeepSeek-V3 KV FP8 Test (8-GPU Basic + MTP)
|
||||
timeout-minutes: 120
|
||||
run: |
|
||||
> github_summary.md # Clear summary file
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w /sglang-checkout/test \
|
||||
-e GITHUB_STEP_SUMMARY="/sglang-checkout/github_summary.md" \
|
||||
python3 run_suite.py --hw amd --suite nightly-amd-8-gpu-deepseek-v3-kv-fp8 --nightly --timeout-per-file 3600 ${{ inputs.continue_on_error && '--continue-on-error' || '' }} || TEST_EXIT_CODE=$?
|
||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
# 8-GPU Kimi-K2.5 (Accuracy)
|
||||
nightly-8-gpu-kimi-k25:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-kimi-k25')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-kimi-k25,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -529,7 +523,7 @@ jobs:
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
nightly-8-gpu-qwen3-235b:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-qwen3-235b')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-qwen3-235b,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -559,7 +553,7 @@ jobs:
|
||||
|
||||
# 8-GPU Qwen 3.5 (Accuracy)
|
||||
nightly-8-gpu-qwen35:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-qwen35')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-qwen35,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -590,7 +584,7 @@ jobs:
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
nightly-8-gpu-glm5:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-glm5')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-glm5,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -623,7 +617,7 @@ jobs:
|
||||
|
||||
# 8-GPU MiniMax-M2.5 (Accuracy)
|
||||
nightly-8-gpu-minimax-m25:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-minimax-m25')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-minimax-m25,'))
|
||||
runs-on: linux-mi325-8gpu-sglang
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -655,7 +649,7 @@ jobs:
|
||||
# ============================================== MI35x Tests ==============================================
|
||||
# MI35x 1-GPU tests - platform-agnostic tests that may work on CDNA4 (gfx950)
|
||||
nightly-test-1-gpu-mi35x:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-1-gpu-mi35x')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-test-1-gpu-mi35x,'))
|
||||
runs-on: linux-mi35x-gpu-1
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -687,7 +681,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU Accuracy Tests - GPT-OSS (accuracy only)
|
||||
nightly-accuracy-8-gpu-mi35x:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-accuracy-8-gpu-mi35x')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -719,7 +713,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU Grok1-INT4 (Accuracy + Performance combined)
|
||||
nightly-8-gpu-mi35x-grok1-int4:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-grok1-int4')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-grok1-int4,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -765,7 +759,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU Grok2 (Accuracy + Performance combined)
|
||||
nightly-8-gpu-mi35x-grok2:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-grok2')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-grok2,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -811,7 +805,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU DeepSeek-R1-MXFP4 (Accuracy + Performance combined)
|
||||
nightly-8-gpu-mi35x-deepseek-r1-mxfp4:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-deepseek-r1-mxfp4')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -853,9 +847,97 @@ jobs:
|
||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
# MI35x 8-GPU DeepSeek-R1-MXFP4 KV FP8 (Accuracy + Performance combined)
|
||||
nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.ref || github.ref }}
|
||||
|
||||
- name: Setup docker
|
||||
run: |
|
||||
touch github_summary.md
|
||||
bash scripts/ci/amd/amd_ci_start_container.sh
|
||||
env:
|
||||
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_install_dependency.sh
|
||||
# Install tabulate for run_suite.py (missing in MI35x container)
|
||||
bash scripts/ci/amd/amd_ci_exec.sh pip install tabulate
|
||||
|
||||
- name: Accuracy Test MI35x (8-GPU DeepSeek-R1-MXFP4 KV FP8)
|
||||
timeout-minutes: 180
|
||||
run: |
|
||||
> github_summary.md # Clear summary file
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w /sglang-checkout/test \
|
||||
-e GITHUB_STEP_SUMMARY="/sglang-checkout/github_summary.md" \
|
||||
python3 run_suite.py --hw amd --suite nightly-amd-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8 --nightly --timeout-per-file 7200 ${{ inputs.continue_on_error && '--continue-on-error' || '' }} || TEST_EXIT_CODE=$?
|
||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
- name: Performance Test MI35x (8-GPU DeepSeek-R1-MXFP4 KV FP8)
|
||||
timeout-minutes: 300
|
||||
continue-on-error: true # Perf test failure doesn't fail the job if accuracy passed
|
||||
run: |
|
||||
> github_summary.md # Clear summary file
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w /sglang-checkout/test \
|
||||
-e GITHUB_STEP_SUMMARY="/sglang-checkout/github_summary.md" \
|
||||
python3 registered/amd/perf/mi35x/test_deepseek_r1_mxfp4_kv_fp8_perf_mi35x.py || TEST_EXIT_CODE=$?
|
||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
# MI35x 8-GPU DeepSeek-R1-MXFP4 AllReduce Fusion (Accuracy + Performance combined)
|
||||
nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ inputs.ref || github.ref }}
|
||||
|
||||
- name: Setup docker
|
||||
run: |
|
||||
touch github_summary.md
|
||||
bash scripts/ci/amd/amd_ci_start_container.sh
|
||||
env:
|
||||
GITHUB_WORKSPACE: ${{ github.workspace }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
bash scripts/ci/amd/amd_ci_install_dependency.sh
|
||||
# Install tabulate for run_suite.py (missing in MI35x container)
|
||||
bash scripts/ci/amd/amd_ci_exec.sh pip install tabulate
|
||||
|
||||
- name: Accuracy Test MI35x (8-GPU DeepSeek-R1-MXFP4 AllReduce Fusion)
|
||||
timeout-minutes: 180
|
||||
run: |
|
||||
> github_summary.md # Clear summary file
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w /sglang-checkout/test \
|
||||
-e GITHUB_STEP_SUMMARY="/sglang-checkout/github_summary.md" \
|
||||
python3 run_suite.py --hw amd --suite nightly-amd-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion --nightly --timeout-per-file 7200 ${{ inputs.continue_on_error && '--continue-on-error' || '' }} || TEST_EXIT_CODE=$?
|
||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
- name: Performance Test MI35x (8-GPU DeepSeek-R1-MXFP4 AllReduce Fusion)
|
||||
timeout-minutes: 300
|
||||
continue-on-error: true # Perf test failure doesn't fail the job if accuracy passed
|
||||
run: |
|
||||
> github_summary.md # Clear summary file
|
||||
bash scripts/ci/amd/amd_ci_exec.sh -w /sglang-checkout/test \
|
||||
-e GITHUB_STEP_SUMMARY="/sglang-checkout/github_summary.md" \
|
||||
python3 registered/amd/perf/mi35x/test_deepseek_r1_mxfp4_ar_fusion_perf_mi35x.py || TEST_EXIT_CODE=$?
|
||||
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
# MI35x 8-GPU DeepSeek-V3.2 Accuracy Test
|
||||
nightly-accuracy-8-gpu-mi35x-deepseek-v32:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-accuracy-8-gpu-mi35x-deepseek-v32')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -888,7 +970,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU DeepSeek-V3.2 TP+MTP Accuracy Test
|
||||
nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -921,7 +1003,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU DeepSeek-V3.2 Performance Test (Basic)
|
||||
nightly-perf-8-gpu-mi35x-deepseek-v32-basic:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-perf-8-gpu-mi35x-deepseek-v32-basic')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-8-gpu-mi35x-deepseek-v32-basic,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -954,7 +1036,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU Kimi-K2.5 (Accuracy)
|
||||
nightly-8-gpu-mi35x-kimi-k25:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-kimi-k25')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-kimi-k25,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -987,7 +1069,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU Qwen3-235B-MXFP4 (Accuracy + Performance)
|
||||
nightly-8-gpu-mi35x-qwen3-235b-mxfp4:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-qwen3-235b-mxfp4')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-qwen3-235b-mxfp4,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -1020,7 +1102,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU Qwen 3.5 (Accuracy)
|
||||
nightly-8-gpu-mi35x-qwen35:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-qwen35')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-qwen35,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -1052,7 +1134,7 @@ jobs:
|
||||
exit ${TEST_EXIT_CODE:-0}
|
||||
|
||||
nightly-8-gpu-mi35x-glm5:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-glm5')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-glm5,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -1087,7 +1169,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU MiniMax-M2.5 (Accuracy)
|
||||
nightly-8-gpu-mi35x-minimax-m25:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-8-gpu-mi35x-minimax-m25')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-minimax-m25,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -1120,7 +1202,7 @@ jobs:
|
||||
|
||||
# MI35x 8-GPU DeepSeek-V3.2 Performance Test (MTP)
|
||||
nightly-perf-8-gpu-mi35x-deepseek-v32-mtp:
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-perf-8-gpu-mi35x-deepseek-v32-mtp')
|
||||
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-8-gpu-mi35x-deepseek-v32-mtp,'))
|
||||
runs-on: linux-mi35x-gpu-8
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -1169,6 +1251,7 @@ jobs:
|
||||
- nightly-8-gpu-deepseek-v31
|
||||
- nightly-8-gpu-deepseek-v32
|
||||
- nightly-8-gpu-deepseek-v32-mtp
|
||||
- nightly-8-gpu-deepseek-v3-kv-fp8
|
||||
- nightly-8-gpu-kimi-k25
|
||||
- nightly-8-gpu-qwen3-235b
|
||||
- nightly-8-gpu-qwen35
|
||||
@@ -1180,6 +1263,8 @@ jobs:
|
||||
- nightly-8-gpu-mi35x-grok1-int4
|
||||
- nightly-8-gpu-mi35x-grok2
|
||||
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4
|
||||
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8
|
||||
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion
|
||||
- nightly-accuracy-8-gpu-mi35x-deepseek-v32
|
||||
- nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp
|
||||
- nightly-8-gpu-mi35x-kimi-k25
|
||||
|
||||
Reference in New Issue
Block a user