Skip to content

[TRTLLM-13948][feat] Clean up DeepSeek tests using CPP Transceiver v1 - #17090

Merged
asfiyab-nvidia merged 3 commits into
NVIDIA:mainfrom
asfiyab-nvidia:asfiyab/ds-remove-cpp-transceiver-tests
Aug 11, 2026
Merged

[TRTLLM-13948][feat] Clean up DeepSeek tests using CPP Transceiver v1#17090
asfiyab-nvidia merged 3 commits into
NVIDIA:mainfrom
asfiyab-nvidia:asfiyab/ds-remove-cpp-transceiver-tests

Conversation

@asfiyab-nvidia

@asfiyab-nvidia asfiyab-nvidia commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Description

This PR removes the DeepSeek tests that use the CPP Transceiver V1. Summary of changes:

Test Changes in test_disaggregated_serving.py

All tests that are not removed have been updated to use the NIXL backend with the Python Transceiver runtime if they weren't already.

TestDeepSeekV32Exp

  • Removed test_kv_cache_v2_nixl_python - redundant with test_auto_dtype (besides TP settings)

TestDeepSeekV3Lite

Retained tests:

  • test_gen_only_sync - Updated test and corresponding test-lists to be non-parametrized over the Transceiver runtime
  • test_gen_only_spec_dec
  • test_auto_dtype
  • test_guided_decoding
  • test_gen_first
  • test_auto_dtype_with_helix - Uses UCX backend with CPP runtime and does not support Python transceiver execution path. This test has been left unchaned

Removed tests:

  • test_nixl_backend - redundant with test_auto_dtype
  • test_kv_cache_v2_nixl_python - shares redundancies with test_auto_dtype and test_guided_decoding

The tests that were removed were also deleted from corresponding test lists

Test Changes in tests/integration/defs/disaggregated/test_configs/

  • Migrated all relevant configs in to use the Python transceiver
  • Deleted disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python.yaml as it doesn't test anything uniquely anymore post the transceiver migration
  • Added disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml to test test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu which was using a config that has been migrated to PYTHON backend
  • left disagg_config_ctxtp2_gentp1cp2_deepseek_v3_lite_bf16_tllm_gen.yaml, disagg_config_ctxtp2_gentp2_deepseek_v3_lite_mpi.yaml, disagg_config_ctxtp2_gentp2_deepseek_v3_lite_ucx.yaml unchanged

Test Coverage

PR Checklist

Please review the following before submitting your PR:

  • PR description clearly explains what and why. If using CodeRabbit's summary, please make sure it makes sense.

  • PR Follows TRT-LLM CODING GUIDELINES to the best of your knowledge.

  • Test cases are provided for new code paths (see test instructions)

  • If PR introduces API changes, an appropriate PR label is added - either api-compatible or api-breaking. For api-breaking, include BREAKING in the PR title.

  • Any new dependencies have been scanned for license and vulnerabilities

  • CODEOWNERS updated if ownership changes

  • Documentation updated as needed

  • Update tava architecture diagram if there is a significant design change in PR.

  • The reviewers assigned automatically/manually are appropriate for the PR.

  • Please check this after reviewing the above items as appropriate for this PR.

GitHub Bot Help

To see a list of available CI bot commands, please comment /bot help.

Dev Engineer Review

  • Migrated DeepSeek disaggregated-serving configurations from CPP Transceiver V1 to the Python transceiver with NIXL.
  • Added a TP1 UCX configuration and aligned UCX tests with the correct configurations.
  • Removed obsolete tests, test-list entries, duration records, and the redundant Python-transceiver configuration.
  • Removed the broken FP8 Python-transceiver test.
  • Corrected the test_gen_only_sync entry to use the non-parameterized node ID.
  • Retained unaffected UCX, MPI, and generation configurations.
  • Configuration values are consistent. No production-code or API changes were identified.

QA Engineer Review

Modified or removed test functions:

  • Modified TestDeepSeekV3Lite.test_gen_only_sync; covered by QA and CI test lists.
  • Removed TestDeepSeekV3Lite.test_nixl_backend; no test-list entries remain.
  • Removed TestDeepSeekV3Lite.test_auto_dtype; no test-list entries remain.
  • Modified TestDeepSeekV32Exp.test_guided_decoding; covered by existing test-list coverage.
  • Removed TestDeepSeekV32Exp.test_kv_cache_v2_nixl_python; no test-list entries remain.
  • Removed test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python; no test-list entries remain.

Retained DeepSeek R1 KV-cache v2 NIXL Python and DeepSeek V3.2 auto-dtype coverage in qa/llm_function_core.txt.

Verdict: sufficient.

@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

DeepSeek disaggregated-serving tests now use NIXL with the Python transceiver runtime across accuracy scenarios and YAML configurations. UCX coverage is split by tensor parallel size. Test lists and duration records remove obsolete entries.

Changes

Disaggregated-serving test coverage

Layer / File(s) Summary
Accuracy coverage adjustments
tests/integration/defs/accuracy/test_disaggregated_serving.py
DeepSeek V3 Lite and V3.2-Exp tests use Python/NIXL transfers. Guided decoding adds MTP coverage and uses JsonModeEval. Obsolete tests are removed.
Python and NIXL configuration
tests/integration/defs/disaggregated/test_configs/*
DeepSeek cache transceiver configurations select the NIXL backend and Python runtime. A DeepSeek V3 Lite UCX configuration is added.
UCX configuration wiring
tests/integration/defs/disaggregated/test_disaggregated.py
UCX mappings are split for TP1 and TP2. The corresponding tests use the new configurations, and the obsolete Python runtime test is removed.
Configured test inventory updates
tests/integration/test_lists/*, tests/integration/defs/.test_durations
QA and platform test lists, plus duration records, are synchronized with the revised test coverage.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested reviewers: bowenfu, niukuo, mzweilz, ruodil

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description explains the changes and rationale, but the required Test Coverage section is empty and provides no execution results. Add the relevant test commands, test cases, and execution results to the Test Coverage section.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly describes the removal of DeepSeek tests that use CPP Transceiver V1.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/defs/accuracy/test_disaggregated_serving.py`:
- Line 1056: Update the test_gen_only_sync method with the required return type
annotation, using the appropriate annotation for its test method behavior.
🪄 Autofix (Beta)

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: 69392dbb-874d-41f6-9c44-e37bd47fcebe

📥 Commits

Reviewing files that changed from the base of the PR and between 5c5ef98 and 36f4732.

📒 Files selected for processing (8)
  • tests/integration/defs/accuracy/test_disaggregated_serving.py
  • tests/integration/test_lists/qa/llm_function_core.txt
  • tests/integration/test_lists/qa/llm_function_rtx6k.txt
  • tests/integration/test_lists/test-db/l0_dgx_b200.yml
  • tests/integration/test_lists/test-db/l0_dgx_b300.yml
  • tests/integration/test_lists/test-db/l0_dgx_h100.yml
  • tests/integration/test_lists/test-db/l0_dgx_h200.yml
  • tests/integration/test_lists/waives.txt
💤 Files with no reviewable changes (7)
  • tests/integration/test_lists/test-db/l0_dgx_b300.yml
  • tests/integration/test_lists/qa/llm_function_rtx6k.txt
  • tests/integration/test_lists/test-db/l0_dgx_h100.yml
  • tests/integration/test_lists/test-db/l0_dgx_h200.yml
  • tests/integration/test_lists/test-db/l0_dgx_b200.yml
  • tests/integration/test_lists/waives.txt
  • tests/integration/test_lists/qa/llm_function_core.txt

Comment thread tests/integration/defs/accuracy/test_disaggregated_serving.py
@asfiyab-nvidia
asfiyab-nvidia marked this pull request as draft July 30, 2026 23:51

@chienchunhung chienchunhung left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test_gen_only_sync is no longer parametrized, so pytest no longer generates the [python] node ID. Please update this test-list entry to ...::test_gen_only_sync; otherwise the QA selection references a nonexistent test and the retained synchronous-transfer coverage will not run.

Comment thread tests/integration/defs/accuracy/test_disaggregated_serving.py Outdated
@Shixiaowei02

Copy link
Copy Markdown
Collaborator

Thanks for the effort! Please note, test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python still asks for the config key you removed, so get_test_config will raise and that H100 stage will fail. fp8_ucx_tp1_single_gpu sets TRTLLM_USE_UCX_KVCACHE=1 but loads a yaml you just pinned to NIXL, so it quietly runs Python now.

@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

test_gen_only_sync is no longer parametrized, so pytest no longer generates the [python] node ID. Please update this test-list entry to ...::test_gen_only_sync; otherwise the QA selection references a nonexistent test and the retained synchronous-transfer coverage will not run.

Thanks for the catch! Updated the test lists

@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

Thanks for the effort! Please note, test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python still asks for the config key you removed, so get_test_config will raise and that H100 stage will fail. fp8_ucx_tp1_single_gpu sets TRTLLM_USE_UCX_KVCACHE=1 but loads a yaml you just pinned to NIXL, so it quietly runs Python now.

Thanks for the input! I have removed test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python and added a new TP1 UCX config to keep the fp8_ucx_tp1_single_gpu test coverage.

@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

CI Report analyses:

  1. All impacted tests that ran passed as per test report
  2. The extra stage DGX_H100-4_GPUs-PyTorch-DeepSeek-1 requires pre-merge approved label

@chienchunhung
chienchunhung self-requested a review August 6, 2026 20:22

@chienchunhung chienchunhung left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM; thanks!

@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

/bot run

1 similar comment
@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64400 [ run ] triggered by Bot. Commit: e6e7f0b Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64400 [ run ] completed with state ABORTED. Commit: e6e7f0b

Link to invocation

@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64640 [ run ] triggered by Bot. Commit: e6e7f0b Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #64640 [ run ] completed with state SUCCESS. Commit: e6e7f0b
/LLM/main/L0_MergeRequest_PR pipeline #52500 completed with status: 'SUCCESS'

CI Report

Link to invocation

@brnguyen2 brnguyen2 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving — the comments below are optional touch-ups, not blockers.

Solid cleanup and the sweep is thorough — I grepped for the deleted node IDs and the deleted YAML and found no dangling references. Three things worth a look before merge, none blocking.

Description gaps. The description says the UCX configs were "left unchanged," but the PR also adds disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml and renames the config keys to deepseek_v3_lite_fp8_tp1_ucx / ..._tp2_ucx. That's the most interesting change here and deserves a line: once the shared TP1 config is pinned to backend: NIXL, TRTLLM_USE_UCX_KVCACHE=1 no longer steers test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu to UCX, so it would have silently become a second NIXL test. Good catch; please say so in the description so the next reader understands why the file exists.

Coverage question on the removed V3Lite test_kv_cache_v2_nixl_python. The V32Exp one was parametrized [False]/cache_mgr_v1, so it genuinely tested nothing unique — agreed. But the TestDeepSeekV3Lite variant hardcoded use_kv_cache_manager_v2: True with enable_block_reuse: False, and neither test_auto_dtype nor test_guided_decoding sets those. Is DeepSeek KV-cache-manager-v2 disagg still covered somewhere (the disagg_config_conditional_deepseek_v3_v2.yaml path), or does this drop it? Worth stating explicitly in the description either way.

Loss of the auto path. Every DeepSeek config now pins NIXL + PYTHON explicitly, which is fine for determinism but means nothing exercises _resolve_default_backend()get_preferred_transceiver_runtime() for DeepSeek anymore — the hook that also has to return CPP for GLM checkpoints. Consider leaving one config on backend: DEFAULT with the runtime unset so a regression in that resolution still shows up.

Comment thread tests/integration/test_lists/test-db/l0_dgx_b200.yml Outdated
Comment thread tests/integration/defs/disaggregated/test_disaggregated.py
@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

/bot run --add-multi-gpu-test --disable-fail-fast --extra-stage "DGX_H100-4_GPUs-PyTorch-DeepSeek-1"

@asfiyab-nvidia
asfiyab-nvidia force-pushed the asfiyab/ds-remove-cpp-transceiver-tests branch from e6e7f0b to 9b6085c Compare August 10, 2026 22:48
Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>
… coverage of DSV3.2

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

remove TestDeepSeekV3Lite::test_auto_dtype_with_helix as helix can't run with Python transceiver

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

Update DSV3-Lite to retain test_auto_dtype and remove test_kv_cache_v2_nixl_python

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

TestDeepSeekV3Lite::test_auto_dtype_with_helix to use CPP transceiver

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

minor rearrange

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

migrate deepseek configs to Python transceiver for tests/integration/defs/disaggregated/test_configs

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

migrate deepseek configs to Python transceiver for tests/integration/defs/disaggregated/test_configs

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

remove disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python config from test

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

remove test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python and associated test list entries

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

remove test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu and associated test list entries

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

Revert "remove test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu and associated test list entries"

This reverts commit d1eb996.

Add config for TP1 UCX test

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

fix rebase bugs

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>

fix rebase bugs

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>
@asfiyab-nvidia
asfiyab-nvidia force-pushed the asfiyab/ds-remove-cpp-transceiver-tests branch from 9b6085c to 0a4b65b Compare August 10, 2026 22:53
@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

/bot run --add-multi-gpu-test --disable-fail-fast --extra-stage "DGX_H100-4_GPUs-PyTorch-DeepSeek-1"

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65140 [ run ] triggered by Bot. Commit: 0a4b65b Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65140 [ run ] completed with state FAILURE. Commit: 0a4b65b
/LLM/main/L0_MergeRequest_PR pipeline #52936 completed with status: 'FAILURE'

CI Report

⚠️ Action Required:

  • Please check the failed tests and fix your PR
  • If you cannot view the failures, ask the CI triggerer to share details
  • Once fixed, request an NVIDIA team member to trigger CI again

CI Agent Failure Analysis

Link to invocation

@BowenFu BowenFu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test-only migration preserves product behavior; the explicit NIXL/Python pins and test inventory removals are internally consistent. The open TP1 UCX resource thread is non-blocking because its author approved that reviewed head; the other open threads are bot/style or optional coverage notes. Current CI failed on pod-launch infrastructure and an unrelated Harmony test.

Signed-off-by: Asfiya Baig <asfiyab@nvidia.com>
@asfiyab-nvidia

Copy link
Copy Markdown
Contributor Author

/bot run

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65350 [ run ] triggered by Bot. Commit: 6bfac7e Link to invocation

@tensorrt-cicd

Copy link
Copy Markdown
Collaborator

PR_Github #65350 [ run ] completed with state SUCCESS. Commit: 6bfac7e
/LLM/main/L0_MergeRequest_PR pipeline #53117 completed with status: 'SUCCESS'

CI Report

Link to invocation

@asfiyab-nvidia asfiyab-nvidia changed the title [[TRTLLM-13948][feat] Clean up DeepSeek tests using CPP Transceiver v1 [TRTLLM-13948][feat] Clean up DeepSeek tests using CPP Transceiver v1 Aug 11, 2026
@asfiyab-nvidia
asfiyab-nvidia merged commit 6930568 into NVIDIA:main Aug 11, 2026
10 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants