Repository navigation
[None][test] Migrate disaggregated E2E tests to C++ bounce buffers - #19588
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review. WalkthroughThe integration configuration enables NIXL agent bounce buffers on context and generation workers. The test helper can capture and check log markers for either worker role. Performance profiles also enable agent bounce buffers, with selected profiles increasing KV-cache bounce size from 384 MB to 512 MB. ChangesNIXL bounce-buffer coverage
Priority: ⬇️ Low Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Other Sequence Diagram(s)sequenceDiagram
participant Test as Disaggregated test
participant Workers as Context and generation workers
participant Helper as run_disaggregated_test
Test->>Workers: Run with Python NIXL KV-cache handling disabled
Workers-->>Helper: Context-worker logs
Helper->>Helper: Check for bounce path engaged for write
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The available evidence establishes no concrete regression in the bounce-buffer configurations or their test. The GPU-specific run was not performed locally, but the reported CI failures are not tied to a specific test or current-head defect. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 4 functions across 1 files. (1 skipped: 1 unsupported.)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
|
|
/bot run --stage-list "GB200-4_GPUs-PyTorch-1,GB200-4_GPUs-PyTorch-2,GB200-4_GPUs-PyTorch-3,GB200-4_GPUs-PyTorch-4,GB200-4_GPUs-PyTorch-5,GB200-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1- |
|
|
|
/bot run --stage-list "GB200-4_GPUs-PyTorch-1,GB200-4_GPUs-PyTorch-2,GB200-4_GPUs-PyTorch-3,GB200-4_GPUs-PyTorch-4,GB200-4_GPUs-PyTorch-5,GB200-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1- |
|
PR_Github #75247 [ run ] triggered by Bot. Commit: |
|
PR_Github #75247 [ run ] completed with state
|
69b4596 to
40aad9e
Compare
|
/bot run --stage-list "GB200-4_GPUs-PyTorch-1,GB200-4_GPUs-PyTorch-2,GB200-4_GPUs-PyTorch-3,GB200-4_GPUs-PyTorch-4,GB200-4_GPUs-PyTorch-5,GB200-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1- |
|
PR_Github #75252 [ run ] triggered by Bot. Commit: |
|
PR_Github #75252 [ run ] completed with state
|
ac5e177 to
9d2fcc6
Compare
|
/bot run --stage-list "GB200-4_GPUs-PyTorch-1,GB200-4_GPUs-PyTorch-2,GB200-4_GPUs-PyTorch-3,GB200-4_GPUs-PyTorch-4,GB200-4_GPUs-PyTorch-5,GB200-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1- |
|
PR_Github #76301 [ run ] triggered by Bot. Commit: |
|
PR_Github #76301 [ run ] completed with state
|
|
/bot run |
|
PR_Github #76320 [ run ] triggered by Bot. Commit: |
|
PR_Github #76320 [ run ] completed with state
|
Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
9d2fcc6 to
432c777
Compare
|
/bot run |
|
PR_Github #76656 [ run ] triggered by Bot. Commit: |
|
PR_Github #76656 [ run ] completed with state |
|
/bot run --stage-list "GB200-4_GPUs-PyTorch-1,GB200-4_GPUs-PyTorch-2,GB200-4_GPUs-PyTorch-3,GB200-4_GPUs-PyTorch-4,GB200-4_GPUs-PyTorch-5, GB200-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1- |
|
PR_Github #76694 [ run ] triggered by Bot. Commit: |
|
PR_Github #76694 [ run ] completed with state
|
|
/bot run --stage-list "GB200-4_GPUs-PyTorch-1,GB200-4_GPUs-PyTorch-2,GB200-4_GPUs-PyTorch-3,GB200-4_GPUs-PyTorch-4,GB200-4_GPUs-PyTorch-5,GB200-8_GPUs-2_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU1-GEN1-NODE1-GPU4-Post-Merge-,GB300-20_GPUs-5_Nodes-PyTorch-Disagg-PerfSanity-CTX1-NODE1-GPU4-GEN1-NODE4-GPU16-Post-Merge-" |
|
PR_Github #76701 [ run ] triggered by Bot. Commit: |
|
PR_Github #76701 [ run ] completed with state |
|
/bot skip --comment "all tests have passed" |
|
PR_Github #76749 [ skip ] triggered by Bot. Commit: |
|
PR_Github #76749 [ skip ] completed with state |
Main's NVIDIA#19896 (2681ed1) moved PyTorchModelEngine's decoder execution into DecoderRunner (engine/runners/decoder/runner.py) and the encoder-decoder fast path into EncoderDecoderRunner, so this branch's model_engine.py changes conflicted. model_engine.py is main's; the branch's changes move to where that code now lives: - DecoderRunner, from NVIDIA#19816 (U1): the step-copy gather, the staged previous batch / position indices, gather_ids written by copy_to_device_if_changed, no num_accepted_draft_tokens buffer, and the CUDA graphs' static inputs; from NVIDIA#19814 (U3): the gather of vocabulary-sharded logits for post-processors. - EncoderDecoderRunner: its previous_batch_indices_cuda write clears the staged batch indices. - The two tests that called the moved members call the runner. Main's other commits since f891b3d: NVIDIA#19484, NVIDIA#19892, NVIDIA#19409, NVIDIA#19553, NVIDIA#19957, NVIDIA#19749, NVIDIA#19585, NVIDIA#19766, NVIDIA#19963, NVIDIA#19588, NVIDIA#19600, NVIDIA#19825, NVIDIA#19821, NVIDIA#19930, NVIDIA#18485. Signed-off-by: Vasanth Sabavat <vsabavat@nvidia.com>
… bounce The Python KV bounce buffer is no longer used now that the C++ transfer-agent bounce covers the E2E paths (NVIDIA#19588). Route kv_cache_bounce_size_mb straight to the C++ agent arena: - kv_cache_bounce_size_mb > 0 enables the C++ transfer-agent bounce buffer; 0 disables it. - agent_bounce_buffer_enable becomes a deprecated no-op that warns when set to True; True with size 0 no longer raises. - agent_bounce_params now requires kv_cache_bounce_size_mb > 0. - Lift the pipelined-transfer blocker that only applied to the Python bounce, and reword the C++ transceiver, pure-Python agent and FP4-MLA bridge messages for the new semantics. After this commit the Python bounce is unreachable; the next commit deletes it. Signed-off-by: Chuang Zhu <111838961+chuangz0@users.noreply.github.com>
Description
Disaggregated E2E configurations that set
kv_cache_bounce_size_mbwithout selecting an implementation still exercise the Python bounce buffer. Select the C++ NIXL agent buffer on both context and generation workers in the TinyLlama serving test and all 20 affected perf/perf-sanity configurations (42 worker configurations total), retaining the Python transceiver runtime.Raise the 14 performance-worker capacities configured as 384 MiB to 512 MiB. The C++ buddy allocator rounds usable capacity down to a power of two, so 384 MiB provides only 256 MiB of usable space. Other capacities remain unchanged. Performance configurations use the C++ default admission gates; transfers that do not qualify use standard NIXL.
The TinyLlama correctness E2E uses dedicated descriptor admission settings so its short workload exercises C++ bounce. It verifies normal generated output and the context worker's
bounce path engaged for writemarker, with executor debug logging enabled on that worker. The shared runner now supports context-worker log assertions and retains worker logs when an assertion fails.Test Coverage
test_disaggregated_overlap_transceiver_runtime_python_bounce[TinyLlama-1.1B-Chat-v1.0]remains registered in the GB200 pre-merge and QA test lists.PR Checklist
Dev Engineer Review
The diff only reformats imports, docstrings, and a logger call in
test_disaggregated.py. It does not change runtime behavior or configuration. No current review findings were supplied, so severity counts are unavailable.QA Engineer Review
No test behavior or test-list entries changed. The TinyLlama test remains listed in the GB200 CI list and the manual-QA list. The supplied results report eight CPU-only runner checks passed and no local GPU E2E or performance runs. Three earlier CI runs failed without test-level details; a later run reported PR_Github success and the L0 pipeline unstable. Coverage verdict: needs follow-up, because the reported CI failures remain unexplained.
Per-File QA Perspective
tests/integration/defs/disaggregated/test_disaggregated.py: The diff contains formatting-only changes. The TinyLlama test remains listed intests/integration/test_lists/test-db/l0_gb200_multi_gpus.ymlandtests/integration/test_lists/qa/llm_function_core.txt.