Skip to content

[https://nvbugs/6523520][fix] Halve gb200 r1-fp4 128k8k con128 multi_round to fit perf-sanity budget - #17397

Merged
chenfeiz0326 merged 1 commit into
NVIDIA:mainfrom
chenfeiz0326:fix/ctx-only-con128-timeout-6523520
Aug 7, 2026
Merged

[https://nvbugs/6523520][fix] Halve gb200 r1-fp4 128k8k con128 multi_round to fit perf-sanity budget#17397
chenfeiz0326 merged 1 commit into
NVIDIA:mainfrom
chenfeiz0326:fix/ctx-only-con128-timeout-6523520

Conversation

@chenfeiz0326

@chenfeiz0326 chenfeiz0326 commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Dev Engineer Review

  • Reduced multi_round from 2 to 1 in the GB200 DeepSeek-R1 FP4 NIXL configuration.
  • Reduced ctx_only work from 256 to 128 prompts while preserving concurrency at 128.
  • Removed obsolete skips for the affected ctx_only and e2e cases.
  • The gen_only case remains unaffected because it uses iterations=1.
  • The configuration change is consistent with the 180-minute timeout requirement.
  • Validation passed for ctx_only and e2e on GB200 with the rc24 aarch64 wheel.

QA Engineer Review

  • No test-db/ or qa/ files were modified.
  • Removed two obsolete entries from tests/integration/test_lists/waives.txt:
    • Aggregated-upload GB200 DeepSeek-R1 case.
    • Disaggregated-upload GB200 DeepSeek-R1 case.
  • CBTS coverage data is unavailable.
  • Verdict: needs follow-up.

Description

The aggr_upload-ctx_only-gb200_deepseek-r1-fp4_128k8k_con128_ctx1_pp8_gen1_dep16_eplb0_mtp1_ccb-NIXL perf-sanity case — and its e2e / gen_only co-tenants that share the same NIXL config yaml — times out under the 180-min perf-sanity TIMEOUT.

Root cause is the second measurement round, not a functional slowdown. ctx_only forces OSL=1 and iterations = multi_round, so the run executes concurrency × multi_round = 128 × 2 = 256 sequential 131072-token (128k) prefills through a max_batch_size=1, pipeline_parallel_size=8 context server. Reducing to a single round (128 prefills) makes ctx_only finish in ~18.5 min. Notably, 4× the prefill count (32 → 128) added only ~10% wall-clock, which shows the run time is dominated by fixed server startup/warmup rather than prefill count — i.e. the original 256-prefill config was not merely large, its second round livelocked and burned the entire 180-min cap.

Fix (config-only, shared NIXL yaml): multi_round: 2 → 1. Concurrency stays at 128 (the representative workload); num-prompts drops from 256 to 128.

Also un-waive the two cases that were skipped for this now-resolved timeout — their anchors (6418510, 6426890) are closed post-merge batch bugs:

  • ctx_only (was SKIP https://nvbugs/6418510)
  • e2e (was SKIP https://nvbugs/6426890)

Test Coverage

Verified on lyris GB200 with the rc24 aarch64 wheel. Both cases sharing this config pass and finish far under the 180-min TIMEOUT:

Case Result pytest time Job elapsed
perf/test_perf_sanity.py::test_e2e[aggr_upload-ctx_only-...con128...NIXL] ✅ 1 passed 1112.18s / 18m32s 23m
perf/test_perf_sanity.py::test_e2e[disagg_upload-e2e-...con128...NIXL] ✅ 1 passed 2534.09s / 42m14s 49m

These are exactly the two cases un-waived in this PR. The gen_only co-tenant is unaffected (it uses iterations=1 regardless of multi_round).

PR Checklist

  • PR description clearly explains what and why.

…round to fit perf-sanity budget

The aggr_upload-ctx_only-gb200_deepseek-r1-fp4_128k8k_con128 case
(and its e2e / gen_only co-tenants sharing the same config) times out
under the 180-min perf-sanity budget.

Root cause is the second measurement round, not a functional slowdown.
ctx_only forces OSL=1 and iterations=multi_round, so the run is
concurrency x multi_round = 128 x 2 = 256 sequential 131072-token (128k)
prefills through a max_batch_size=1, pipeline_parallel_size=8 context
server. Reducing to a single round (128 prefills) makes ctx_only finish
in ~18.5 min -- and 4x the prefill count (32 -> 128) added only ~10%
wall-clock, confirming the run time is dominated by fixed server
startup/warmup, not prefill count. So the original 256-prefill config
was not merely large: its second round livelocked and consumed the full
180-min wall-clock cap.

Fix (config-only, shared NIXL yaml): multi_round 2 -> 1. Concurrency is
left at 128 (the representative workload); num-prompts drops 256 -> 128.

Verified on lyris GB200 (rc24 wheel), both cases sharing this config
pass far under the 180-min TIMEOUT:
  - ctx_only : PASSED, 1 passed in 1112.18s / 0:18:32 (job elapsed 23m)
  - e2e      : PASSED, 1 passed in 2534.09s / 0:42:14 (job elapsed 49m)

Un-waive both cases that were skipped for the now-resolved timeout
(the anchors 6418510 / 6426890 are closed post-merge batch bugs):
  - ctx_only  (was SKIP nvbugs/6418510)
  - e2e       (was SKIP nvbugs/6426890)

Signed-off-by: chenfeiz0326 <203214996+chenfeiz0326@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The PR changes the disaggregated GB200 DeepSeek-R1 benchmark to run one multi-round iteration and removes two obsolete skipped performance sanity test entries.

Changes

Performance sanity cleanup

Layer / File(s) Summary
Update benchmark iteration and waiver coverage
tests/scripts/perf-sanity/disaggregated/...yaml, tests/integration/test_lists/waives.txt
The benchmark changes multi_round from 2 to 1. Two obsolete aggregated-upload and disaggregated-upload waiver entries are removed.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: brnguyen2

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title follows the required ticket and type format and clearly states the main configuration fix.
Description check ✅ Passed The description explains the cause, configuration fix, affected cases, validation results, and includes the required sections.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@tests/scripts/perf-sanity/disaggregated/gb200_deepseek-r1-fp4_128k8k_con128_ctx1_pp8_gen1_dep16_eplb0_mtp1_ccb-NIXL.yaml`:
- Line 20: Add the standard NVIDIA copyright header with year 2026 at the
beginning of the modified YAML file, before the existing multi_round
configuration; leave the configuration values unchanged.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: de6f2387-035e-4ef6-b15f-997d4a4d351d

📥 Commits

Reviewing files that changed from the base of the PR and between 530ad05 and 78b8e64.

📒 Files selected for processing (2)
  • tests/integration/test_lists/waives.txt
  • tests/scripts/perf-sanity/disaggregated/gb200_deepseek-r1-fp4_128k8k_con128_ctx1_pp8_gen1_dep16_eplb0_mtp1_ccb-NIXL.yaml
💤 Files with no reviewable changes (1)
  • tests/integration/test_lists/waives.txt

@chenfeiz0326
chenfeiz0326 enabled auto-merge (squash) August 7, 2026 05:24
@chenfeiz0326

Copy link
Copy Markdown
Collaborator Author

/bot skip --comment "Only unwaive perf tests, no need to run the whole CI pipeline"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64512 [ skip ] triggered by Bot. Commit: 78b8e64 Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64512 [ skip ] completed with state SUCCESS. Commit: 78b8e64
Skipping testing for commit 78b8e64

Link to invocation

@chenfeiz0326
chenfeiz0326 merged commit 33c6270 into NVIDIA:main Aug 7, 2026
13 checks passed
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.

7 participants