[NVBUG-6448152][test] TEST ONLY: legacy GEN selection and blocking discriminator - #17042
[NVBUG-6448152][test] TEST ONLY: legacy GEN selection and blocking discriminator#17042chienchunhung 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 #62689 [ run ] triggered by Bot. Commit: |
|
PR_Github #62689 [ run ] completed with state
|
|
Terminal result for the legacy GEN transfer-polling discriminator at the exact diagnostic head:
Interpretation: restoring the legacy GEN selection and blocking bundle did not recover throughput: 798.63 is effectively unchanged from the matched exact-admission result of 799.73 output tok/s. This rules that bundle down as the dominant cause for this exact workload; the absent marker means this run does not measure the cost of the blocking branch when that condition is actually exercised. Closing this TEST ONLY diagnostic unmerged; the branch remains preserved. |
TEST ONLY — do not review or merge
This is the next one-function discriminator for the C++ throughput regression localized to the admission and bounded-polling change.
The adjacent native source evidence is categorical:
Frozen baseline
dd4a7ac2992f2b02dce381ce4e630c4ba4199436899bdb3449199c821d157c9690f7d9aae9551e66b6eacd1f725d0fbeb888e09ff2585e5ab23b085671e40682331ef098853e9c0224ad60ae6900e8dc41ff39b455aab9ffa97cf218661bdf1c772eb2151b3b314924174fbe741c6614c6dabb95ea603b249cd001cb170b6d8ad975d7f58ee34f9f546136c29d597690ef588bc1565aaa9a0a277fa1d07db51e44c4976c6e4138f26379ddd6The final commit is a signed CI-only no-tree merge with current
maincommitc0eac26d4a4d874bf23829dd68415dc3fdabb7beas its second parent. Its tree is byte-identical to the treatment commit, so it changes ancestry and mergeability only.Runtime image, NIXL/runtime requirements, Jenkins and Slurm harnesses, exact workload and selector, physical buffers, admission controller and call sites, active-transfer accounting, context-side polling, asynchronous consensus, encoded protocol mode 2, cancellation-disabled setting, topology, and request count are unchanged from the valid exact-admission baseline.
Only treatment
The only changed tracked file relative to the frozen baseline is
cpp/tensorrt_llm/batch_manager/cacheTransceiver.cpp.Inside
CacheTransceiver::checkGenTransferStatus, this draft restores the pre-admission generation-side selection and completion bundle:atLeastRequestNum;future.get()for selected requests instead of boundedwait_forwith keep-queued behavior.Admission control itself, its
checkGenTransferStatus(1)call cadence, accounting, transfer traffic, compute, context-side bounded polling, and consensus remain at the frozen admission baseline.This is intentionally described as the legacy GEN selection plus blocking-wait bundle. A recovery cannot distinguish selection order from blocking backpressure within this function.
Execution marker
A one-shot, process-local, ID-free INFO marker fires only when an
atLeastRequestNum > 0call has selected a request whose future is still non-ready immediately before the restoredfuture.get():DIAGNOSTIC OBSERVED: legacy generation transfer polling selected a non-ready request immediately before future.get()The marker uses a relaxed atomic only for duplicate suppression. It adds one zero-time readiness query until first observation and at most one INFO line per process. It proves entry into the treated non-ready path, not measurable blocking duration.
Required valid evidence
GB300-12_GPUs-3_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE2-GPU8-Post-Merge-1disagg_upload-e2e-gb300_deepseek-r1-fp4_128k8k_con256_ctx1_pp4_gen1_dep8_eplb0_mtp1_ccb-NIXL--no-container-mount-homeBuild/import failure, timeout, deadlock, cancellation, protocol mismatch, failed request, missing execution marker, unclean shutdown, or invalid metric censors the result.
Interpretation
This is a hybrid treatment: admission-control scheduling and call cadence remain active while the generation-side function is restored. It cannot establish that admission control is universally irrelevant.
Pre-run validation
71e40682331ef098853e9c0224ad60ae6900e8dcandc0eac26d4a4d874bf23829dd68415dc3fdabb7be; its tree exactly matches its first parent.git diff --check, clang-format, codespell, and all applicable changed-file hooks passed.str | Noneannotation.transformers; no test execution is claimed.main.