Repository navigation
[None][test] Add DeepSeek-V4.1-Flash and GLM-5.3-Flash perf-sanity cases - #21080
chenfeiz0326 wants to merge 2 commits into
Conversation
tests/scripts/perf-sanity/aggregated/deepseek_v41_flash_grace_blackwell.yaml came in with DeepSeek-V4.1-Flash support (NVIDIA#19727) but no test list ever named it, so CI never ran it. Add its three server configs (TEP4 con8, DEP4 con128, TEP4 + embedded DSpark con8; all 8k/1k on one 4xGB300 tray) to the GB300 4-GPU post-merge perf-sanity list. - l0_gb300_multi_gpus_perf_sanity.yml: the three cases, TIMEOUT from the validation runs (slowest + 25%, at least +15 min, rounded up to 5, floor 30). - .test_durations: seed the three cases with their measured pytest time so the post-merge shards stay balanced. - deepseek_v41_flash_grace_blackwell.yaml: write kv_cache_config.dtype as auto, its default; the harness records a missing dtype as fp8 in the perf DB. Signed-off-by: chenfeiz0326 <203214996+chenfeiz0326@users.noreply.github.com>
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Configure and register DeepSeek cases tests/scripts/perf-sanity/aggregated/deepseek_v41_flash_grace_blackwell.yaml, tests/integration/test_lists/test-db/l0_gb300_multi_gpus_perf_sanity.yml |
The TEP4, DEP4, and TEP4 DSpark configurations explicitly set kv_cache_config.dtype to auto. The test list adds the three cases. |
Add aggregated GLM cases tests/scripts/perf-sanity/aggregated/gb300_glm53_flash_fp8_grace_blackwell.yaml, tests/scripts/perf-sanity/aggregated/gb300_glm53_flash_nvfp4_grace_blackwell.yaml, tests/integration/test_lists/test-db/l0_gb300_multi_gpus_perf_sanity.yml, tests/integration/defs/perf/_model_paths.py, tests/integration/defs/.test_durations |
The change adds GLM-5.3-Flash FP8 attention-DP4 and long-prompt configurations, an NVFP4 configuration, their aggregated test entries, an NVFP4 checkpoint mapping, and timing records. |
Add disaggregated GLM case tests/scripts/perf-sanity/disaggregated/gb300_glm53-flash-fp8_8k1k_con16_ctx1_tep4_gen1_tep4_eplb0_mtp3_ccb-NIXL.yaml, tests/integration/test_lists/test-db/l0_gb300_multi_nodes_perf_sanity_ctx1_node1_gpu4_gen1_node1_gpu4.yml, tests/integration/defs/.test_durations |
The change adds a disaggregated GLM-5.3-Flash FP8 benchmark configuration and test entry, and records its timing. |
Update Jenkins shard coverage jenkins/L0_Test.groovy |
The GB300 4-GPU stage increases from four shards to five. The two-node disaggregated stage adds GLM-5.3-Flash and increases from one shard to two. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Other
Suggested reviewers: juney-nvidia
Merge Risk: 
Minimal · up to 58ef3
-
The added performance-sanity cases have no identified merge-blocking issue. The long-input GLM case fits its configured sequence limit.
Pre-merge checks: 
5
-
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 1 files. (7 skipped: 7 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
…ty cases Four GLM-5.3-Flash cases for the GB300 post-merge perf-sanity lists, on the shapes the GLM-5.3-Flash deployment guide and perf PRs measure: - FP8, attention DP4 / EP4 + MTP3 + FP8 KV, 8k/1k at concurrency 256 (64 per rank): the high-concurrency frontier shape. - FP8, TP4 / EP4 + MTP3, ISL 13312 / OSL 33 at concurrency 8 and 1: the long-prompt, short-answer workload the prefill optimizations target. - NVFP4 checkpoint, TP4 / EP4 + MTP3, FP8 KV, TRTLLM MoE, 8k/1k at concurrency 16 and 1 (new model-path key glm_5.3_flash_nvfp4). - FP8 disaggregated E2E, 1 ctx + 1 gen worker, each TP4 / EP4, MTP3, Python NIXL transceiver, 8k/1k at concurrency 16 (the guide's disaggregated recipe), in the existing GB300 CTX1-GPU4 / GEN1-GPU4 stage, whose split count goes from 1 to 2. In the two multi-client cases the larger client runs first: aggregated clients send no warmup request, and the first requests a fresh server sees are slow, which would otherwise dominate the short concurrency-1 window. TIMEOUT follows the README rule from the validation runs (8-10 min of pytest each, so 30), and .test_durations is seeded with those pytest times. The GB300 4-GPU post-merge stage goes from 4 to 5 shards so that no shard holds more than six tests (longest shard ~96 min). Signed-off-by: chenfeiz0326 <203214996+chenfeiz0326@users.noreply.github.com>
Dev Engineer Review
The change adds three DeepSeek-V4.1-Flash aggregated performance-sanity cases to the GB300 4-GPU post-merge list: TEP4, DEP4 with attention DP, and TEP4 with embedded DSpark. It adds measured duration entries and sets
kv_cache_config.dtype: autoin the DeepSeek configuration.The supplied change summary also reports GLM-5.3-Flash FP8 and NVFP4 aggregated workloads, a disaggregated GLM-5.3-Flash workload, a multi-node test-list entry, and a model-path mapping. It reports changes to Jenkins shard configuration. This conflicts with the PR objective’s statement that no Jenkins changes are needed, so confirm the actual Jenkins diff before merging. No engine-code changes are reported.
The author reports successful GB300 runs using CI’s wheel and GenPostMergeBuilds 3244. Reported pytest times are 636, 624, and 702 seconds for the three DeepSeek cases. These results were not independently verified here.
QA Engineer Review
The GB300 4-GPU CI list adds the three DeepSeek cases. Other reported test-list additions cover GLM-5.3-Flash cases in the GB300 4-GPU and multi-node lists. The author reports that all three DeepSeek cases passed, but the results were not independently verified. Coverage verdict: needs follow-up until the reported Jenkins changes are reconciled with the stated scope and the CI results are confirmed.
Per-File QA Perspective
tests/integration/defs/.test_durations: Adds runtime records for DeepSeek and GLM cases. QA should check that the durations match the corresponding test selectors and observed CI runtimes.tests/integration/test_lists/test-db/l0_gb300_multi_gpus_perf_sanity.yml: Adds DeepSeek and GLM performance-sanity entries. Verify that each selector resolves to the intended workload and remains within the expected post-merge runtime.tests/scripts/perf-sanity/aggregated/deepseek_v41_flash_grace_blackwell.yaml: Sets the KV-cache dtype toautoin three server configurations. QA should confirm that the harness records the intended dtype.jenkins/L0_Test.groovy: The supplied change summary reports changes to the GB300 4-GPU and 8-GPU shard configuration. Confirm this change and its consistency with the stated no-Jenkins-change objective.tests/integration/defs/perf/_model_paths.py: Adds a model-path mapping for GLM-5.3-Flash NVFP4. Verify that the path resolves to the expected checkpoint.tests/integration/test_lists/test-db/l0_gb300_multi_nodes_perf_sanity_ctx1_node1_gpu4_gen1_node1_gpu4.yml: Adds a GLM-5.3-Flash multi-node test entry. Verify that its selector maps to the disaggregated workload.tests/scripts/perf-sanity/aggregated/gb300_glm53_flash_fp8_grace_blackwell.yaml: Adds FP8 attention-DP and long-prompt workload configurations. QA should verify their client parameters, KV-cache settings, and runtime behavior.tests/scripts/perf-sanity/aggregated/gb300_glm53_flash_nvfp4_grace_blackwell.yaml: Adds a GLM-5.3-Flash NVFP4 aggregated workload. QA should verify model resolution and the configured serving and client options.tests/scripts/perf-sanity/disaggregated/gb300_glm53-flash-fp8_8k1k_con16_ctx1_tep4_gen1_tep4_eplb0_mtp3_ccb-NIXL.yaml: Adds a disaggregated GLM-5.3-Flash workload. QA should verify context/generation worker settings and NIXL KV transfer.Description
Adds DeepSeek-V4.1-Flash and GLM-5.3-Flash cases to the GB300 post-merge perf-sanity lists. Every case passed on GB300 with CI's own wheel (see Test Coverage). Only perf configs, test lists, the model-path map,
.test_durationsand Jenkins shard counts change; no library or harness code.DeepSeek-V4.1-Flash, base checkpoint (aggregated)
tests/scripts/perf-sanity/aggregated/deepseek_v41_flash_grace_blackwell.yamlcame in with DeepSeek-V4.1-Flash support (#19727), but no test list ever named it, so CI has never run it. Its three cases join the GB300 4-GPU post-merge list next to the NVFP4 DSpark cases from #20680:test_e2e[...])aggr_upload-deepseek_v41_flash_grace_blackwell-v41_flash_tep4_8k1kaggr_upload-deepseek_v41_flash_grace_blackwell-v41_flash_dep4_8k1kaggr_upload-deepseek_v41_flash_grace_blackwell-v41_flash_tep4_dspark_8k1kThe yaml now writes out
kv_cache_config.dtype: auto. That is the default, so the engine runs the same; without it, the harness records the case's KV dtype asfp8in the perf DB.GLM-5.3-Flash (aggregated and disaggregated)
Four cases on the shapes the GLM-5.3-Flash deployment guide and its perf PRs (#19136, #20251, #20389, #20390, #20454, #20755) measure. They add to the existing
glm53_flash_fp8_tp4_mtp3_8k1kcase:test_e2e[...])aggr_upload-gb300_glm53_flash_fp8_grace_blackwell-glm53_flash_fp8_dep4_mtp3_fp8kv_8k1ktest_attention_dp_mtp_and_fp8_kvaccuracy gateaggr_upload-gb300_glm53_flash_fp8_grace_blackwell-glm53_flash_fp8_tp4_mtp3_isl13312_osl33aggr_upload-gb300_glm53_flash_nvfp4_grace_blackwell-glm53_flash_nvfp4_tp4_mtp3_8k1kAUTOresolves it to CUTLASS on main, so TRTLLM is set explicitly, as in #20454disagg_upload-e2e-gb300_glm53-flash-fp8_8k1k_con16_ctx1_tep4_gen1_tep4_eplb0_mtp3_ccb-NIXLtp4_mtp3caseglm_5.3_flash_nvfp4→GLM-5.3-Flash-NVFP4.TIMEOUTs, durations and shards
.test_durationsis seeded with the measured pytest times.GB300-4_GPUs-PyTorch-PerfSanity-Post-Mergegoes from 4 to 5 shards. With the six new aggregated cases it holds 23 tests, and 4 shards would put 7 tests (~120 min) into two of them; with 5 shards the longest is ~96 min and 6 tests.GB300-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE1-GPU4-Post-Mergegoes from 1 to 2 shards (one test per shard, assubmit.pyrequires).Cost per post-merge run: about +60 min of pytest on single 4-GPU nodes (~4 GPU-hours) plus one more shard's setup, and about +8.5 min on the 2-node stage (~1.1 GPU-hours).
Test Coverage
Every case passed on GB300 (oci-aga) with CI's own wheel, GenPostMergeBuilds 3244 (= main 7587cc8, this branch's base), and this branch's tree, run through
jenkins/scripts/perf/local/submit.py:v41_flash_tep4_8k1kv41_flash_dep4_8k1kv41_flash_tep4_dspark_8k1kglm53_flash_fp8_dep4_mtp3_fp8kv_8k1kglm53_flash_fp8_tp4_mtp3_isl13312_osl33glm53_flash_nvfp4_tp4_mtp3_8k1kSpecWorkerBase.sample_and_accept_draft_tokens, which appliesTLLM_SPEC_DECODE_FORCE_NUM_ACCEPTED_TOKENS. The case tracks DSpark as it is.tensorrt_llm/schemas/trtllm-serve-config.schema.json(a misspelled control is rejected).test_disagg_e2e_configs.py(253 passed, one more than main: the new disagg yaml),test_perf_submit.py(97),test_test_to_stage_mapping.py,test_infra_dry_run_pipeline.pyand the CBTS tests pass;scripts/check_test_list.py --validatevalidates 2,037 entries (7 more than main). The remaining local failures are identical on main's tree (missing local modules).GB300-4_GPUs-PyTorch-PerfSanity-Post-Merge-2to-5, and the disaggregated one inGB300-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE1-GPU4-Post-Merge-2.PR Checklist
Please review the following before submitting your PR:
PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.
PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.
Test cases are provided for new code paths (see test instructions)
If PR introduces API changes, an appropriate PR label is added - either
api-compatibleorapi-breaking. Forapi-breaking, includeBREAKINGin the PR title.Any new dependencies have been scanned for license and vulnerabilities
CODEOWNERS updated if ownership changes
Documentation updated as needed
Update tava architecture diagram if there is a significant design change in PR.
The reviewers assigned automatically/manually are appropriate for the PR.
Please check this after reviewing the above items as appropriate for this PR.
GitHub Bot Help
To see a list of available CI bot commands, please comment
/bot help.🤖 Generated with Claude Code