Repository navigation
[Test] minimax-m3.1: Add nightly e2e tests on H200 and B300 - #46627
Conversation
|
/rerun-test test/registered/e2e/models_large/test_minimax_m31_flash_h200.py test/registered/e2e/models_large/test_minimax_m31_flash_b300.py |
|
🚀 🚀 |
|
/rerun-test test/registered/e2e/models_large/test_minimax_m31_flash_h200.py test/registered/e2e/models_large/test_minimax_m31_flash_b300.py |
|
🚀 ⛔ |
|
/rerun-test test/registered/e2e/models_large/test_minimax_m31_flash_gb300.py |
|
🚀 |
|
/rerun-test test/registered/e2e/models_large/test_minimax_m31_flash_h200.py |
|
🚀 |
Motivation
MiniMax-M3.1-Flash has unit and kernel tests but no end-to-end test, so a change to a shared path can break the served model without turning any test red. This adds two nightly tests on the cookbook recipes, and installs the MSA kernels on Blackwell CI runners, which the model imports at startup there.
Modifications
test_minimax_m31_flash_h200.py(nightly, 8-gpu-h200): the H200 balanced recipe (TP8; Marlin W4A16 experts, no MSA) with DSpark and block verification. It checks GSM8K and the DSpark accept length.test_minimax_m31_flash_gb300.py(nightly, 4-gpu-gb300): the B300 balanced recipe (TP4; TRT-LLM NVFP4 MoE, MSA, DSpark) with HiCache write-through to the file storage backend. It checks GSM8K and the DSpark accept length, then reloads a long prefix from storage after/flush_cacheand checks that the greedy output matches the GPU-cached one.ci_install_dependency.sh: on Blackwell, install MSA at theMSA_COMMITofdocker/Dockerfile.cu134, editable and with its submodules as the Dockerfile does, cached per commit under~/.cache/sglang-ci/minimax-msabehind aflock, since runner containers on one host share~/.cache.Verification
Both tests run against
MiniMaxAI/MiniMax-M3.1-Flashat main 316ff4d; sgl-eval GSM8K, 1319 examples, temperature 1.0, top_p 0.95, max_tokens 8192.The thresholds are 0.93 (both) and an accept length of 3.4 (H200) and 3.8 (GB300). The first H200 number was measured with the same flags on main with #46868 applied, before it merged; the second is this PR's CI run (https://github.com/sgl-project/sglang/actions/runs/40914892470).
On the B300 node, MSA was installed by the same steps as the new
install_msa; the script itself first runs on this PR's Blackwell CI jobs. Runs of the storage-reload case on three prompts, with and without DSpark, matched the GPU-cached output every time, and the full test including it passed (the third row). On a GB300 CI runner the Blackwell test passed with GSM8K 0.9560 and accept length 4.13 (https://github.com/sgl-project/sglang/actions/runs/40910557761).CI States
Latest PR Test (Base): 🚫 Run #40914358042
Latest PR Test (Extra): ❌ Run #40914358093
Latest PR Test (AMD ROCm 10): 🚫 Run #40914357728