Skip to content

[TRTLLM-12183][chore] Move bf16/auto precision variants from pre-merge to post-merge - #13366

Merged
QiJune merged 2 commits into
NVIDIA:mainfrom
QiJune:remove_more
Apr 23, 2026
Merged

[TRTLLM-12183][chore] Move bf16/auto precision variants from pre-merge to post-merge#13366
QiJune merged 2 commits into
NVIDIA:mainfrom
QiJune:remove_more

Conversation

@QiJune

@QiJune QiJune commented Apr 23, 2026

Copy link
Copy Markdown
Collaborator

Motivation

For test groups covering the same model / config across multiple precisions, the low-precision variants (fp8, nvfp4, w4, etc.) carry most of the pre-merge signal — accuracy and perf regressions tend to surface there first. The higher-precision variants (bfloat16, auto) are more stable and mainly serve as a secondary safety net, which fits post-merge coverage well.

This PR applies that principle across four test-db files: keep the low-precision variants in pre-merge; move the corresponding bf16/auto variants to post-merge.

Pre-merge impact

Measured on the last 7 days of L0_MergeRequest[_PR] runs (PASSED only): ~3,100 GPU-seconds (~52 min) of test work removed per pre-merge run.

  • GB200-4_GPUs-PyTorch-1: ~861 s saved
  • GB200-4_GPUs-PyTorch-2: ~705 s saved
  • DGX_B200-PyTorch-1/2/3 (sharded): ~613 s total
  • DGX_H100-4_GPUs-PyTorch-GptOss-1: ~375 s saved
  • DGX_H100-PyTorch-1/2/3/4 (sharded): ~234 s total
  • H100_PCIe-PyTorch-Ray-1: ~144 s saved
  • DGX_H100-4_GPUs-PyTorch-Others-1/2: ~170 s saved

Risk Evaluation

Pass rates on pre-merge over the last 7 days — and the failures when present turn out to be infra noise, not real product regressions:

1
Test: test_bfloat16[TRTLLM-compile=True]
Total: 296
Pass: 296
Fail: 0
Skip: 0
Pass rate (exec'd): 100%
Notes: —
────────────────────────────────────────
2
Test: test_bfloat16_4gpus[tp4-FLASHINFER-compile=False]
Total: 125
Pass: 125
Fail: 0
Skip: 0
Pass rate (exec'd): 100%
Notes: —
────────────────────────────────────────
3
Test: test_bfloat16_4gpus[tp4-TRTLLM-compile=True]
Total: 99
Pass: 99
Fail: 0
Skip: 0
Pass rate (exec'd): 100%
Notes: —
────────────────────────────────────────
4
Test: test_w4a16[dp4-auto]
Total: 234
Pass: 131
Fail: 0
Skip: 103
Pass rate (exec'd): 100%
Notes: 103 skipped (conditional)
────────────────────────────────────────
5
Test: test_w4_1gpu[v1_kv_cache-trtllm-auto]
Total: 298
Pass: 296
Fail: 2
Skip: 0
Pass rate (exec'd): 99.3%
Notes: —
────────────────────────────────────────
6
Test: test_w4_1gpu[v2_kv_cache-trtllm-auto]
Total: 297
Pass: 295
Fail: 2
Skip: 0
Pass rate (exec'd): 99.3%
Notes: —
────────────────────────────────────────
7
Test: test_bfloat16_4gpus[tp2pp2-TRTLLM-compile=True]
Total: 128
Pass: 127
Fail: 1
Skip: 0
Pass rate (exec'd): 99.2%
Notes: —
────────────────────────────────────────
8
Test: test_bfloat16_4gpus[tp2pp2-TRTLLM-compile=False]
Total: 126
Pass: 125
Fail: 1
Skip: 0
Pass rate (exec'd): 99.2%
Notes: —
────────────────────────────────────────
9
Test: TestQwen3_5_35B_A3B::test_bf16
Total: 292
Pass: 289
Fail: 3
Skip: 0
Pass rate (exec'd): 99.0%
Notes: —
────────────────────────────────────────
10
Test: test_bfloat16[TRTLLM-compile=False]
Total: 643
Pass: 618
Fail: 25
Skip: 0
Pass rate (exec'd): 96.1%
Notes: All 25 failures = Ray ImportError: PlacementGroupSch... —
Ray-library infra issue, not product signal
────────────────────────────────────────
11
Test: test_w4_4gpus[v1_kv_cache-dp4-trtllm-auto]
Total: 113
Pass: 106
Fail: 7
Skip: 0
Pass rate (exec'd): 93.8%
Notes: All 7 failures = "Test terminated unexpectedly" on GB200 —
node instability, not product signal
────────────────────────────────────────
12
Test: test_w4_4gpus[v2_kv_cache-dp4-trtllm-auto]
Total: 121
Pass: 110
Fail: 11
Skip: 0
Pass rate (exec'd): 90.9%
Notes: All 11 failures = "Test terminated unexpectedly" on GB200 —
same GB200 infra pattern
────────────────────────────────────────
13
Test: test_bfloat16_4gpus[tp4-TRTLLM-compile=False]
Total: 125
Pass: 0
Fail: 0
Skip: 125
Pass rate (exec'd): n/a
Notes: Already 100% skipped in pre-merge (dead entry, safe to
relocate)
────────────────────────────────────────
14
Test: test_bfloat16_4gpus[pp4-TRTLLM-compile=False]
Total: 108
Pass: 0
Fail: 0
Skip: 108
Pass rate (exec'd): n/a
Notes: Already 100% skipped in pre-merge (dead entry, safe to
relocate)

Conclusion

All 14 tests are safe to move to post-merge. Two cuts strongly support this:

  • Tests 1–9 (99–100% real pass rate): no product failures caught in pre-merge in the last week.
  • Tests 10–12 (90–96% raw pass rate, but 100% product pass rate): every single failure is infra/environment noise, Ray import error or GB200 node crash. These tests have caught zero actual regressions; they've been adding CI-latency without adding signal.
  • Tests 13–14: already always-skipped in pre-merge, so "moving them" is essentially cleanup.

Summary by CodeRabbit

  • Tests
    • Reorganized GPU accuracy test configurations across multiple device types (H100, H200, GB200).
    • Shifted Llama 3.1 and GPT-OSS test cases between pre-merge and post-merge orchestration phases.
    • Updated test distribution across attention backend and compilation variants.

Description

Test Coverage

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)

  • 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.

QiJune added 2 commits April 23, 2026 14:00
Signed-off-by: junq <22017000+QiJune@users.noreply.github.com>
Signed-off-by: junq <22017000+QiJune@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

Test configuration YAML files are reorganized to shift GPU-specific test cases between pre-merge and post-merge phases. Tests for models like Llama 3.1, GPT-OSS, and Qwen are repositioned across H100, H200, GB200, and B200 hardware configurations to adjust test scheduling and distribution across execution phases.

Changes

Cohort / File(s) Summary
B200 Test Repositioning
tests/integration/test_lists/test-db/l0_b200.yml
Relocates three PyTorch test variants (TestGPTOSS::test_w4_1gpu with trtllm-auto for both KV cache versions and TestQwen3_5_35B_A3B::test_bf16) to a later section of the test configuration without functional changes.
H100/H200 Test Adjustments
tests/integration/test_lists/test-db/l0_dgx_h100.yml, tests/integration/test_lists/test-db/l0_dgx_h200.yml
Removes Llama 3.1 8B Instruct bfloat16 tests from H100 4-GPU suite (tp4 and tp2pp2 with TRTLLM backend) and adds corresponding test variants to H200 configuration with different torch_compile settings.
GB200 Multi-GPU Phase Shift
tests/integration/test_lists/test-db/l0_gb200_multi_gpus.yml
Moves 4-GPU accuracy tests from pre_merge to post_merge phase: Llama 3.1 bfloat16 TP/PP variants (TRTLLM/FLASHINFER) and GPTOSS w4_4gpus cases with distributed training configurations.
H100 Pre/Post-Merge Reorganization
tests/integration/test_lists/test-db/l0_h100.yml
Shifts Llama 3.1 8B Instruct bfloat16 TRTLLM tests from pre_merge MPI/PyTorch and Ray/PyTorch phases to post_merge MPI/PyTorch phase, adjusting torch_compile variant coverage.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely summarizes the main change: moving bf16/auto precision variants from pre-merge to post-merge test configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed PR description clearly explains motivation, includes detailed risk evaluation with pass rate statistics, and provides measured pre-merge impact across multiple clusters.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@QiJune

QiJune commented Apr 23, 2026

Copy link
Copy Markdown
Collaborator Author

/bot skip --comment "trivial changes"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #45139 [ skip ] triggered by Bot. Commit: 5479371 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #45139 [ skip ] completed with state SUCCESS. Commit: 5479371
Skipping testing for commit 5479371

Link to invocation

@QiJune
QiJune enabled auto-merge (squash) April 23, 2026 07:04
@QiJune
QiJune merged commit 95d707f into NVIDIA:main Apr 23, 2026
10 of 12 checks passed
ziyixiong-nv pushed a commit to ziyixiong-nv/TensorRT-LLM that referenced this pull request Apr 24, 2026
…e to post-merge (NVIDIA#13366)

Signed-off-by: junq <22017000+QiJune@users.noreply.github.com>
zheyuf added a commit to zheyuf/TensorRT-LLM that referenced this pull request Apr 28, 2026
…1 PR #1)

Moves 95 pre-merge + post-merge pytorch 4-GPU tests from l0_dgx_b200.yml to
l0_gb200_multi_gpus.yml, and reshards the affected GB200 stages to keep
wall-clock under the 4h cluster ceiling.

Test moves (test-list YAML edits only):
  * pre-merge  pytorch: 25 tests appended to l0_gb200_multi_gpus.yml
  * post-merge pytorch: 70 tests appended to l0_gb200_multi_gpus.yml

13 tests intentionally kept on BOTH B200 and GB200 (conservative
cross-platform coverage; pre-existing duplication, ~90 GPU-hrs/wk):
  * 4 pre-merge:  TestDeepSeekV3Lite::test_bfloat16_4gpus_python_scheduler[*]
  * 9 post-merge: TestLlama3_1_8BInstruct::test_bfloat16_4gpus[tp4-FLASHINFER-False],
                  TestLlama3_1_8BInstruct::test_fp8_4gpus[pp4-...-TRTLLM-False],
                  7 × TestDeepSeekV3Lite::test_nvfp4_4gpus[CUTLASS|TRTLLM-mtp_nextn=*-...]
  These tests were originally added to both YAMLs (commits NVIDIA#11884, NVIDIA#7073/NVIDIA#7074,
  NVIDIA#11844, NVIDIA#13366) and have no platform-specific decorators. We could dedup, but
  keeping the duplication is safer if there's any latent host-CPU or NVLink
  topology-specific behavior.

Sharding adjustments (jenkins/L0_Test.groovy):
  * GB200-4_GPUs-PyTorch-{1,2}        2-shard → 4-shard split (add -3, -4)
  * GB200-4_GPUs-PyTorch-Post-Merge-1 1-shard → 3-shard split (add -2, -3)
  Mirrors DGX_B200-4_GPUs-PyTorch-{1,2,3} + DGX_B200-4_GPUs-PyTorch-Post-Merge-{1,2}.
  Without resharding, projected wall-clocks hit ~4.75h pre-merge / ~7h post-merge,
  both over the 4h cluster ceiling. After resharding, projected wall-clock per
  shard: ~2.9h pre-merge / ~3.0h post-merge — within budget with margin.

Going-forward capacity reclaimed on B200: ~2,030 GPU-hrs/wk (from the 95
moves; the 13 kept-duplicate tests continue running on B200).

Out of scope for this PR (Wave 1 PR NVIDIA#2 will handle):
  * 1-GPU tests (156 tests)     - needs new GB200-PyTorch-{1,Post-Merge-1,AutoDeploy-1} stages
  * 4-GPU autodeploy tests (11) - needs new GB200-4_GPUs-AutoDeploy-1 stage
  * Perf (41), legacy TRT/Triton (14), 8-GPU, Ray, fabric-dep, aarch64-LOW

Verified with scripts/test_to_stage_mapping.py that moved samples route to
GB200-4_GPUs-PyTorch-{1,2,3,4} (pre-merge) and
GB200-4_GPUs-PyTorch-Post-Merge-{1,2,3} (post-merge), not DGX_B200-PyTorch-*.
Verified l0_gb200_multi_gpus.yml has zero duplicate test entries
(trt-test-db rejects same-test-same-conditions duplicates).

Ground-truth verification recipe (per Tyler's guidance): compare tests run
in L0_PostMerge/<latest_job> vs L0_MergeRequest/<this_pr_job> via OpenSearch.
Every B200-removed test should appear in GB200 stages; the 13 intentionally
kept tests will appear on both.

Signed-off-by: Zheyu Fu <zheyuf@NVIDIA.com>
zheyuf added a commit to zheyuf/TensorRT-LLM that referenced this pull request Apr 28, 2026
…1 PR #1)

Moves 95 pre-merge + post-merge pytorch 4-GPU tests from l0_dgx_b200.yml to
l0_gb200_multi_gpus.yml, and reshards the affected GB200 stages to keep
wall-clock under the 4h cluster ceiling.

Test moves (test-list YAML edits only):
  * pre-merge  pytorch: 25 tests appended to l0_gb200_multi_gpus.yml
  * post-merge pytorch: 70 tests appended to l0_gb200_multi_gpus.yml

13 tests intentionally kept on BOTH B200 and GB200 (conservative
cross-platform coverage; pre-existing duplication, ~90 GPU-hrs/wk):
  * 4 pre-merge:  TestDeepSeekV3Lite::test_bfloat16_4gpus_python_scheduler[*]
  * 9 post-merge: TestLlama3_1_8BInstruct::test_bfloat16_4gpus[tp4-FLASHINFER-False],
                  TestLlama3_1_8BInstruct::test_fp8_4gpus[pp4-...-TRTLLM-False],
                  7 × TestDeepSeekV3Lite::test_nvfp4_4gpus[CUTLASS|TRTLLM-mtp_nextn=*-...]
  These tests were originally added to both YAMLs (commits NVIDIA#11884, NVIDIA#7073/NVIDIA#7074,
  NVIDIA#11844, NVIDIA#13366) and have no platform-specific decorators. We could dedup, but
  keeping the duplication is safer if there's any latent host-CPU or NVLink
  topology-specific behavior.

Sharding adjustments (jenkins/L0_Test.groovy):
  * GB200-4_GPUs-PyTorch-{1,2}        2-shard → 4-shard split (add -3, -4)
  * GB200-4_GPUs-PyTorch-Post-Merge-1 1-shard → 3-shard split (add -2, -3)
  Mirrors DGX_B200-4_GPUs-PyTorch-{1,2,3} + DGX_B200-4_GPUs-PyTorch-Post-Merge-{1,2}.
  Without resharding, projected wall-clocks hit ~4.75h pre-merge / ~7h post-merge,
  both over the 4h cluster ceiling. After resharding, projected wall-clock per
  shard: ~2.9h pre-merge / ~3.0h post-merge — within budget with margin.

Going-forward capacity reclaimed on B200: ~2,030 GPU-hrs/wk (from the 95
moves; the 13 kept-duplicate tests continue running on B200).

Out of scope for this PR (Wave 1 PR NVIDIA#2 will handle):
  * 1-GPU tests (156 tests)     - needs new GB200-PyTorch-{1,Post-Merge-1,AutoDeploy-1} stages
  * 4-GPU autodeploy tests (11) - needs new GB200-4_GPUs-AutoDeploy-1 stage
  * Perf (41), legacy TRT/Triton (14), 8-GPU, Ray, fabric-dep, aarch64-LOW

Verified with scripts/test_to_stage_mapping.py that moved samples route to
GB200-4_GPUs-PyTorch-{1,2,3,4} (pre-merge) and
GB200-4_GPUs-PyTorch-Post-Merge-{1,2,3} (post-merge), not DGX_B200-PyTorch-*.
Verified l0_gb200_multi_gpus.yml has zero duplicate test entries
(trt-test-db rejects same-test-same-conditions duplicates).

Ground-truth verification recipe (per Tyler's guidance): compare tests run
in L0_PostMerge/<latest_job> vs L0_MergeRequest/<this_pr_job> via OpenSearch.
Every B200-removed test should appear in GB200 stages; the 13 intentionally
kept tests will appear on both.

Signed-off-by: Zheyu Fu <zheyuf@NVIDIA.com>
zheyuf added a commit to zheyuf/TensorRT-LLM that referenced this pull request Apr 30, 2026
…1 PR #1)

Moves 95 pre-merge + post-merge pytorch 4-GPU tests from l0_dgx_b200.yml to
l0_gb200_multi_gpus.yml, and reshards the affected GB200 stages to keep
wall-clock under the 4h cluster ceiling.

Test moves (test-list YAML edits only):
  * pre-merge  pytorch: 25 tests appended to l0_gb200_multi_gpus.yml
  * post-merge pytorch: 70 tests appended to l0_gb200_multi_gpus.yml

13 tests intentionally kept on BOTH B200 and GB200 (conservative
cross-platform coverage; pre-existing duplication, ~90 GPU-hrs/wk):
  * 4 pre-merge:  TestDeepSeekV3Lite::test_bfloat16_4gpus_python_scheduler[*]
  * 9 post-merge: TestLlama3_1_8BInstruct::test_bfloat16_4gpus[tp4-FLASHINFER-False],
                  TestLlama3_1_8BInstruct::test_fp8_4gpus[pp4-...-TRTLLM-False],
                  7 × TestDeepSeekV3Lite::test_nvfp4_4gpus[CUTLASS|TRTLLM-mtp_nextn=*-...]
  These tests were originally added to both YAMLs (commits NVIDIA#11884, NVIDIA#7073/NVIDIA#7074,
  NVIDIA#11844, NVIDIA#13366) and have no platform-specific decorators. We could dedup, but
  keeping the duplication is safer if there's any latent host-CPU or NVLink
  topology-specific behavior.

Sharding adjustments (jenkins/L0_Test.groovy):
  * GB200-4_GPUs-PyTorch-{1,2}        2-shard → 4-shard split (add -3, -4)
  * GB200-4_GPUs-PyTorch-Post-Merge-1 1-shard → 3-shard split (add -2, -3)
  Mirrors DGX_B200-4_GPUs-PyTorch-{1,2,3} + DGX_B200-4_GPUs-PyTorch-Post-Merge-{1,2}.
  Without resharding, projected wall-clocks hit ~4.75h pre-merge / ~7h post-merge,
  both over the 4h cluster ceiling. After resharding, projected wall-clock per
  shard: ~2.9h pre-merge / ~3.0h post-merge — within budget with margin.

Going-forward capacity reclaimed on B200: ~2,030 GPU-hrs/wk (from the 95
moves; the 13 kept-duplicate tests continue running on B200).

Out of scope for this PR (Wave 1 PR NVIDIA#2 will handle):
  * 1-GPU tests (156 tests)     - needs new GB200-PyTorch-{1,Post-Merge-1,AutoDeploy-1} stages
  * 4-GPU autodeploy tests (11) - needs new GB200-4_GPUs-AutoDeploy-1 stage
  * Perf (41), legacy TRT/Triton (14), 8-GPU, Ray, fabric-dep, aarch64-LOW

Verified with scripts/test_to_stage_mapping.py that moved samples route to
GB200-4_GPUs-PyTorch-{1,2,3,4} (pre-merge) and
GB200-4_GPUs-PyTorch-Post-Merge-{1,2,3} (post-merge), not DGX_B200-PyTorch-*.
Verified l0_gb200_multi_gpus.yml has zero duplicate test entries
(trt-test-db rejects same-test-same-conditions duplicates).

Ground-truth verification recipe (per Tyler's guidance): compare tests run
in L0_PostMerge/<latest_job> vs L0_MergeRequest/<this_pr_job> via OpenSearch.
Every B200-removed test should appear in GB200 stages; the 13 intentionally
kept tests will appear on both.

Signed-off-by: Zheyu Fu <zheyuf@NVIDIA.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants