[TRTLLM-15264][test] Wire KDA disagg transfer tests into CI (cpu_only CPU stage + l0_b200 GPU) - #17484
Conversation
…only The l0_cpu stage collects unittest/disaggregated but runs pytest with -m cpu_only, so tests in test_kda_mamba_transfer.py without the marker are never selected by the CPU sweep. Mark the two logic-only tests that use the synthetic rank-info/page-table builders and MambaPolicy.validate_peer_compatible (no CUDA cache manager): test_kda_peer_validation_synthetic_cpu and test_kda_peer_validation_allows_pipeline_parallel_layer_split. The manager-backed and NIXL-transfer tests in the same file stay GPU-only. Signed-off-by: Brian Nguyen <brnguyen@nvidia.com>
|
/bot run |
WalkthroughTwo disaggregated validation tests are marked as CPU-only. The KDA Mamba transfer test module is added to the B200 pre-merge test list. ChangesTest execution
Estimated code review effort: 1 (Trivial) | ~2 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
PR_Github #65166 [ run ] triggered by Bot. Commit: |
test_kda_mamba_transfer.py was in no GPU test list, so its GPU tests (test_kda_transfer NIXL loopback and the manager-backed peer-validation cases) ran nowhere in CI. Add the file to the Kimi K3 block of l0_b200 alongside the other single-GPU K3 KDA suites; the tests build simulated tp ranks in one process on a single device, so a single-GPU Blackwell stage is sufficient. The GPU stage's 'not cpu_only' markexpr selects only the GPU cases, leaving the two cpu_only peer-validation tests to the CPU-Generic stage. Signed-off-by: Brian Nguyen <brnguyen@nvidia.com>
|
/bot run |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/integration/test_lists/test-db/l0_b200.yml`:
- Around line 102-104: Add the standard NVIDIA copyright header at the beginning
of l0_b200.yml, preserving the existing test-list entries and formatting.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: cccb855e-f124-4aed-9f56-08ca5a5b469e
📒 Files selected for processing (1)
tests/integration/test_lists/test-db/l0_b200.yml
|
PR_Github #65170 [ run ] triggered by Bot. Commit: |
|
PR_Github #65166 [ run ] completed with state |
|
PR_Github #65170 [ run ] completed with state |
Description
Follow-up to review feedback on #17334, wiring
tests/unittest/disaggregated/test_kda_mamba_transfer.pyinto CI. Before this change the file was in no test list except the dir-levelunittest/disaggregatedentry that only the CPU stage consumes — and it was silently dropped there too, so none of its tests ran anywhere.Two commits:
1. Mark the CPU-runnable tests
cpu_only(T3 of TRTLLM-15264).The
CPU-Generic-*stages run pytest with-m cpu_only, andconftest.py'spytest_ignore_collectskips any file inunittest/disaggregatedthat contains nopytest.mark.cpu_onlytext. The two GPU-free tests —test_kda_peer_validation_synthetic_cpuandtest_kda_peer_validation_allows_pipeline_parallel_layer_split(synthetic rank-info / page-table builders +MambaPolicy.validate_peer_compatible, no CUDA manager) — now carry the marker and run on the CPU stage.2. Wire the GPU tests into
l0_b200.The remaining tests (
test_kda_transferNIXL loopback + the manager-backed peer-validation cases) build simulated TP ranks in one process on a single device, so a single-GPU Blackwell stage suffices; added to the Kimi K3 block ofl0_b200alongside the other single-GPU K3 KDA suites. The GPU stage's-m "not cpu_only"markexpr selects exactly these and skips the twocpu_onlytests.Net: the CPU subset runs on
CPU-Generic-*, the GPU subset onl0_b200, with the singlecpu_onlymarker partitioning them.Test Coverage
No product code and no test logic changed — marker + test-list wiring only. Not run locally (dev box has no torch/CUDA stack); CI now executes the tests it previously skipped. If the GPU cases show a B200-specific issue (cf.
test_kda_prefill_op.py, which NaNs on B200 but passes on GB300 — TRTLLM-15204), the file can move tol0_gb300_multi_gpus.PR Checklist
[TRTLLM-15264][test]conventionDev Engineer Review
pytest.mark.cpu_onlyto:test_kda_peer_validation_synthetic_cputest_kda_peer_validation_allows_pipeline_parallel_layer_splitunittest/disaggregated/test_kda_mamba_transfer.pytotests/integration/test_lists/test-db/l0_b200.yml.l0_cpuCI filter.QA Engineer Review
test_kda_peer_validation_synthetic_cputest_kda_peer_validation_allows_pipeline_parallel_layer_splitunittest/disaggregated/test_kda_mamba_transfer.pytotests/integration/test_lists/test-db/l0_b200.yml.l0_cpuCI sweep.