Skip to content

[NVBUG-6448152][test] isolate PP rendezvous from global commit#16580

Draft
chienchunhung wants to merge 6 commits into
NVIDIA:mainfrom
chienchunhung:codex/nvbug-6448152-async-pp-global-retain
Draft

[NVBUG-6448152][test] isolate PP rendezvous from global commit#16580
chienchunhung wants to merge 6 commits into
NVIDIA:mainfrom
chienchunhung:codex/nvbug-6448152-async-pp-global-retain

Conversation

@chienchunhung

@chienchunhung chienchunhung commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

Diagnostic only — do not merge. This historical-tree experiment isolates the exposed PP rendezvous cost in NVBUG#6448152 while preserving the global terminal decision and existing resource lifetime.

Question

Does replacing #15139's synchronous CTX TP/PP outcome collectives with asynchronous point-to-point agreement recover the adjacent pre-#15139 throughput, even when request/KV resources remain retained until global commit?

Design

  • PP rank P-1 is the coordinator; [NVBUG-6448152][test] trace disagg transfer lifecycle #16567 showed it naturally reaches the terminal-status point last.
  • Each rank publishes one immutable {request, success|failure} vote without waiting.
  • The coordinator reduces the votes and broadcasts one idempotent global commit.
  • Failure has precedence once all immutable votes have arrived; this diagnostic reducer waits for the full vote set for both outcomes. A production protocol could safely short-circuit the coordinator's failure decision, provided followers buffer that commit until their own local transfer is quiescent.
  • Normal status polling progresses the protocol but never waits for the other PP ranks. Only the explicit block-all/shutdown path drains outstanding commits.
  • Final request state, response publication, and KV/resource reclamation remain gated by global commit, matching [TRTLLM-12721][feat] Add disagg transfer state consensus #15139 semantics.
  • One startup PP allgather negotiates protocol version/effective mode. There is no collective on the per-request hot path.

This preserves a common ordered decision across ranks, but application is asynchronous rather than simultaneous in wall-clock time.

Exact experiment

Targeted validation

Stage: GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1

Selector: disagg_upload-e2e-gb300_deepseek-r1-fp4_128k8k_con256_ctx1_pp4_gen1_dep8_eplb0_mtp1_ccb-NIXL

A throughput result is valid only with 512/512 successful requests. Compare with:

Risks / limitations

  • Diagnostic protocol, not a production-ready replacement: shutdown uses a bounded abort epoch for asymmetric process failure.
  • Global commit may reach ranks at different times; the result is identical and ordered, not applied simultaneously.
  • This arm deliberately retains KV until commit, so a low result does not by itself disprove rendezvous overhead; compare with [NVBUG-6448152][test] measure local-quiescence reclamation #16581, which keeps identical vote traffic and changes only safe local-success KV reclamation.

Dependency and experiment graph

flowchart LR
    C["#16565<br/>pre-#15139 + #15737<br/>1557.83 tok/s"]
    T["#16566 / #16567<br/>post-#15139 + #15737<br/>~818 tok/s before teardown"]
    A["#16580<br/>async PP agreement<br/>global KV retention"]
    B["#16581<br/>same agreement traffic<br/>local-success KV reclamation"]
    L["#16572<br/>local-only unsafe control<br/>1564.71 tok/s"]
    C -->|"#15139 only"| T
    T --> A
    A --> B
    T --> L
Loading

Interpretation: A at least 90% of #16565 means exposed rendezvous dominated. A low but B at least 90% means retained KV/admission was the remaining dominant cost. Partial recovery in both means both contribute. Any failed request censors throughput.

chienchunhung and others added 6 commits July 17, 2026 15:10
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Yanchao Lu <yanchaol@nvidia.com>
(cherry picked from commit 833ddd2)
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Apply only the CacheSender readiness synchronization portion of NVIDIA#15737 to the exact NVIDIA#15139 boundary experiment. This keeps the historical control and treatment matched while removing the known lost-wakeup confound.

Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Keep the historical experiment tree unchanged while making the diagnostic PR mergeable for the Blossom launch gate.

Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --stage-list "GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #60200 [ run ] triggered by Bot. Commit: 5e2498b Link to invocation

@chienchunhung

Copy link
Copy Markdown
Collaborator Author

/bot run --disable-fail-fast --stage-list "A30-CPP-Post-Merge-1,A30-CPP-Post-Merge-2,DGX_H100-4_GPUs-CPP-1,DGX_H100-4_GPUs-PyTorch-Others-1,DGX_H100-4_GPUs-PyTorch-Others-2"

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