[AMD] Add GLM-4.7-FP8 accuracy CI test for MI35x (#21534)

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jacob0226
2026-03-28 00:28:56 -07:00
committed by GitHub
co-authored by Claude Opus 4.6
parent 6ef4318ec0
commit 7078e385ea
2 changed files with 96 additions and 0 deletions
@@ -61,6 +61,7 @@ on:
- nightly-8-gpu-mi35x-qwen3-235b-mxfp4-rocm720
- nightly-8-gpu-mi35x-qwen35-rocm720
- nightly-8-gpu-mi35x-glm5-rocm720
- nightly-8-gpu-mi35x-glm47-fp8-rocm720
- nightly-8-gpu-mi35x-minimax-m25-rocm720
job_filter:
description: 'Or type comma-separated job names (overrides dropdown if non-empty)'
@@ -1272,6 +1273,39 @@ jobs:
echo "$(<github_summary.md )" >> $GITHUB_STEP_SUMMARY || true
exit ${TEST_EXIT_CODE:-0}
# MI35x 8-GPU GLM-4.7-FP8 (Accuracy) ROCm 7.2
nightly-8-gpu-mi35x-glm47-fp8-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-glm47-fp8-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ inputs.ref || github.ref }}
- name: Setup docker (ROCm 7.2)
run: |
touch github_summary.md
bash scripts/ci/amd/amd_ci_start_container.sh --rocm-version rocm720
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 ROCm 7.2 (8-GPU GLM-4.7-FP8)
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-mi35x-glm47-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}
# MI35x 8-GPU MiniMax-M2.5 (Accuracy) ROCm 7.2
nightly-8-gpu-mi35x-minimax-m25-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-minimax-m25-rocm720,'))
@@ -1382,6 +1416,7 @@ jobs:
- nightly-8-gpu-mi35x-qwen3-235b-mxfp4-rocm720
- nightly-8-gpu-mi35x-qwen35-rocm720
- nightly-8-gpu-mi35x-glm5-rocm720
- nightly-8-gpu-mi35x-glm47-fp8-rocm720
- nightly-8-gpu-mi35x-minimax-m25-rocm720
runs-on: ubuntu-latest
steps:
@@ -0,0 +1,61 @@
"""MI35x GLM-4.7-FP8 GSM8K Accuracy Evaluation Test (8-GPU)
Tests GLM-4.7-FP8 accuracy using GSM8K benchmark on MI35x.
Registry: nightly-amd-8-gpu-mi35x-glm47-fp8 suite
"""
import os
# Set HF cache for MI35x
os.environ.setdefault("HF_HOME", "/data2/models/huggingface")
os.environ.setdefault("HF_HUB_CACHE", "/data2/models/huggingface/hub")
import unittest
from sglang.test.accuracy_test_runner import AccuracyTestParams
from sglang.test.ci.ci_register import register_amd_ci
from sglang.test.run_combined_tests import run_combined_tests
from sglang.test.test_utils import ModelLaunchSettings
# Register for AMD CI - MI35x GLM-4.7-FP8 accuracy test (~30 min)
register_amd_ci(
est_time=1800,
suite="nightly-amd-8-gpu-mi35x-glm47-fp8",
nightly=True,
)
GLM_4_7_FP8_MODEL_PATH = "zai-org/GLM-4.7-FP8"
class TestGLM47FP8EvalMI35x(unittest.TestCase):
"""GLM-4.7-FP8 GSM8K Accuracy Evaluation Test for MI35x."""
def test_glm_47_fp8(self):
"""Run accuracy test for GLM-4.7-FP8."""
base_args = [
"--trust-remote-code",
"--tool-call-parser=glm47",
"--reasoning-parser=glm45",
]
variants = [
ModelLaunchSettings(
GLM_4_7_FP8_MODEL_PATH,
tp_size=8,
extra_args=base_args,
variant="TP8",
),
]
run_combined_tests(
models=variants,
test_name="GLM-4.7-FP8",
accuracy_params=AccuracyTestParams(
dataset="gsm8k", baseline_accuracy=0.92
),
)
if __name__ == "__main__":
unittest.main()