[NVBUG-6448152][test] measure local-quiescence reclamation#16581
[NVBUG-6448152][test] measure local-quiescence reclamation#16581chienchunhung wants to merge 12 commits into
Conversation
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>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
|
/bot run --disable-fail-fast --stage-list "GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1" |
|
PR_Github #60201 [ run ] triggered by Bot. Commit: |
|
PR_Github #60201 [ run ] completed with state
|
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
|
/bot run --disable-fail-fast --stage-list "GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1" |
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
|
PR_Github #60209 [ run ] triggered by Bot. Commit: |
|
PR_Github #60209 [ run ] completed with state
|
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
|
/bot run --disable-fail-fast --stage-list "GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1" |
|
PR_Github #60255 [ run ] triggered by Bot. Commit: |
|
PR_Github #60255 [ run ] completed with state |
|
/bot run --disable-fail-fast |
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
|
/bot run --disable-fail-fast |
|
PR_Github #60387 [ run ] triggered by Bot. Commit: |
|
PR_Github #60387 [ run ] completed with state
|
Question
After removing the synchronous PP barrier from the scheduler path, does retaining CTX KV until global commit still limit throughput?
Design delta from #16580
DISAGG_CONTEXT_TRANS_IN_PROGRESS; final state, error publication, response publication, and removal from global transfer bookkeeping still require the coordinator's global commit.check_context_transfer_statuscontract remains unchanged; the diagnostic uses a separate opt-in status method.Fail-closed scope
The experiment activates only for the exact qualified shape: C++ transceiver + asynchronous coordinator, NIXL, TP1/CP1/PP>1, attention DP off, primary V1 non-Mamba/non-VSWA KV manager, CTX max batch size 1, block reuse off, no connector, no separate draft KV manager, and exactly one transfer producer. The request must still be in the transfer-in-progress state.
Early release temporarily creates PP-local capacity skew. Rank 0 remains the sole scheduling authority and propagates one schedule; follower stages already gate execution with
can_schedule()and poll for local transfer completion. This prevents different batches from executing, but may produce pipeline bubbles or retry exhaustion. Any such stall is a safety result, not a usable throughput result. A production design should make the propagated schedule depend on an explicit request/epoch reclaim credit rather than polling for any completion.Exact experiment
dc06e82a182671a0d9626243d660a44a3b73bd1d([NVBUG-6448152][test] isolate PP rendezvous from global commit #16580)c108fde7a37094430256c2f449ee453e3e5192103b3256d1d846b4521ddc99b12ec5136c4784113d5a4e3b29b7a7d0120a9533d18390c4b71817c655176041ba15f25fda876ccfa209d04896a003dc68dataTransceiver.cppblob preserved:b3eb1c0f984394e798993708bebcabe885ea1644TRTLLM_NVBUG_6448152_CTX_LOCAL_KV_RECLAIM=1while retainingTRTLLM_NVBUG_6448152_CTX_COORDINATOR_CONSENSUS=1NVBUG6448152_RECLAIM; early-release checkpoints are bounded to counts 1/128/256/384/512 per rank. The coordinator/last PP rank may legitimately have near-zero pre-commit releases.Targeted validation
Stage:
GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1Selector:
disagg_upload-e2e-gb300_deepseek-r1-fp4_128k8k_con256_ctx1_pp4_gen1_dep8_eplb0_mtp1_ccb-NIXLValidity requires 512/512 successful requests, no PP retry exhaustion, expected coordinator markers, substantial pre-commit early releases on early PP stages, and normal eventual global cleanup on every rank. Any failed request censors throughput.
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 --> LInterpretation: #16580 at least 90% of #16565 means exposed rendezvous dominated and this arm should be similar. #16580 low but this arm at least 90% means retained KV/admission was the remaining dominant cost. Partial recovery means both contribute. Both low means another #15139 mechanism or a protocol implementation issue remains.