[NVBUG-6448152][test] isolate GNE transfer slot accounting - #17094
[NVBUG-6448152][test] isolate GNE transfer slot accounting#17094chienchunhung wants to merge 12 commits into
Conversation
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: Yihan Wang <yihwang@nvidia.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com> (cherry picked from commit 6fc7f33)
…sensus factor Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com> (cherry picked from commit 9c8bf59)
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com> (cherry picked from commit 4b182f1)
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>
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 #62911 [ run ] triggered by Bot. Commit: |
|
PR_Github #62911 [ run ] completed with state
|
Terminal native-slot-only diagnosticThe single frozen targeted run completed on exact head
The CI headline is a performance-regression assertion against the fast reference after the valid benchmark record was produced; it is not a request, protocol, crash, or infrastructure failure. Conclusion: no recovery was observed, but this run cannot implicate or rule out PR #15356's transfer-in-progress logical-slot accounting because that treatment never changed a scheduling decision in the measured window. It does show that the retained transport gate's decision effect did not mask the treatment here. A follow-up must first prove transfer-active old-versus-treatment divergence before its throughput can answer the native-slot question. Closing this TEST ONLY draft unmerged and preserving the diagnostic branch. |
TEST ONLY — DO NOT MERGE
This draft isolates one semantic change from PR #15356 on the exact frozen slow-child baseline. The adjacent matched evidence is 1515.84 output tok/s at the immediate parent and 799.73 output tok/s at the native child; see the published baseline record.
Question
Does restoring the pre-PR logical request-slot treatment recover throughput while retaining the PR #15356 transport-budget gate at its normal 1× setting?
Single treatment
For
GUARANTEED_NO_EVICTonly:DISAGG_GENERATION_TRANS_IN_PROGRESSno longer increments the logicalmaxNumRequestscount;STATIC_BATCHandMAX_UTILIZATIONremain unchanged.The Python transport-budget admission behavior remains enabled and unchanged:
max_tokens_in_buffer: 131104on CTX and GEN;Observer-only Python counters report whether that unchanged gate admits or defers the candidates exposed by the native treatment. They do not change its return value or side effects.
Runtime, image, model, physical buffers, compute cap, async consensus, harness, workload, selector, and three-node/twelve-GPU topology remain frozen.
Required causal evidence
The native scheduler emits ID-free startup, exact-decision-divergence, and shutdown-summary records. Divergence is separated into:
path=ready_generation: a ready request is returned only because transfer-only requests no longer consume logical slots;path=disagg_init: an init request passes the unchanged KV/PEFT checks and is returned only under the treatment.The observer reports the unchanged 4097-block transport budget and admitted/deferred totals. For this 128K workload, an active transfer is approximately 4096 blocks and a new 128K candidate is another 4096 blocks. Therefore an init-only native divergence may be immediately masked by the retained 1× transport gate; that outcome is an interaction result, not evidence against native slot accounting.
A valid run additionally requires 512/512 successful requests, zero failures,
b_is_valid=true, async consensus mode 2 with cancellation disabled on CTX ranks 0–3, and clean CTX/GEN/disaggregated shutdown.Interpretation:
Frozen identities and checks
dd4a7ac2992f2b02dce381ce4e630c4ba41994366eaf334e827120f0d951c64631bbc17a70c18540fc86d178d2f8562cec440ae5cc4a60d3a301b82f6227dfcf14a808628cbb47e2b566ef8cb64ea21784bfc903f46d49103cd4a39082de6ac48582ffb80a1ea3c204785690fa763322a3b0ae574423132dfda391c23c5155ad03be888eFull configured changed-file hooks, formatting, YAML validation, test-list AST validation under Python 3.13, diff checks, and DCO passed. Python unit-test collection is locally blocked only by the absent
transformersdependency; the C++ unit binary is not available in the local checkout.