From 803fa524aeca7961b228c85cdb856aac5f9cfbd6 Mon Sep 17 00:00:00 2001 From: Asfiya Baig Date: Thu, 30 Jul 2026 16:37:02 -0700 Subject: [PATCH 1/3] [[TRTLLM-13948][feat] Clean up DeepSeek tests using CPP Transceiver v1 Signed-off-by: Asfiya Baig --- .../accuracy/test_disaggregated_serving.py | 174 ++---------------- .../test_lists/qa/llm_function_core.txt | 6 - .../test_lists/qa/llm_function_rtx6k.txt | 4 - .../test_lists/test-db/l0_dgx_b200.yml | 2 - .../test_lists/test-db/l0_dgx_b300.yml | 1 - .../test_lists/test-db/l0_dgx_h100.yml | 2 - .../test_lists/test-db/l0_dgx_h200.yml | 4 - tests/integration/test_lists/waives.txt | 4 - 8 files changed, 17 insertions(+), 180 deletions(-) diff --git a/tests/integration/defs/accuracy/test_disaggregated_serving.py b/tests/integration/defs/accuracy/test_disaggregated_serving.py index 749ed07f50a0..0bd3fc76d724 100644 --- a/tests/integration/defs/accuracy/test_disaggregated_serving.py +++ b/tests/integration/defs/accuracy/test_disaggregated_serving.py @@ -1044,54 +1044,17 @@ class TestDeepSeekV3Lite(LlmapiAccuracyTestHarness): @pytest.mark.skip_less_device(2) @pytest.mark.skip_less_device_memory(60000) @skip_no_hopper - def test_nixl_backend(self): - ctx_server_config = { - "disable_overlap_scheduler": True, - "cache_transceiver_config": { - "backend": "NIXL", - "max_tokens_in_buffer": 4096 - } - } - gen_server_config = { - "disable_overlap_scheduler": True, - "cache_transceiver_config": { - "backend": "NIXL", - "max_tokens_in_buffer": 4096 - } - } - disaggregated_server_config = { - "hostname": "localhost", - "backend": "pytorch", - "context_servers": { - "num_instances": 1 - }, - "generation_servers": { - "num_instances": 1 - } - } - with launch_disaggregated_llm(disaggregated_server_config, - ctx_server_config, gen_server_config, - self.MODEL_PATH) as llm: - run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) - - @pytest.mark.skip_less_device(2) - @pytest.mark.skip_less_device_memory(60000) - @skip_no_hopper - @pytest.mark.parametrize("transceiver_runtime", ["PYTHON", "CPP"], - ids=["python", "cpp"]) - def test_gen_only_sync(self, transceiver_runtime): - """Test gen-only synchronous KV transfer with each NIXL runtime. + def test_gen_only_sync(self): + """Test gen-only synchronous KV transfer with PYTHON NIXL runtime. Sets TRTLLM_DISABLE_KV_CACHE_TRANSFER_OVERLAP=1 so the gen worker calls - the blocking request_and_receive_sync path. The C++ variant uses a - bounded client timeout so a stuck transfer fails this test instead of - waiting for its outer one-hour timeout. + the blocking request_and_receive_sync path. """ ctx_server_config = { "disable_overlap_scheduler": True, "cache_transceiver_config": { "backend": "NIXL", - "transceiver_runtime": transceiver_runtime, + "transceiver_runtime": "PYTHON", "max_tokens_in_buffer": 4096, }, } @@ -1099,7 +1062,7 @@ def test_gen_only_sync(self, transceiver_runtime): "disable_overlap_scheduler": True, "cache_transceiver_config": { "backend": "NIXL", - "transceiver_runtime": transceiver_runtime, + "transceiver_runtime": "PYTHON", "max_tokens_in_buffer": 4096, }, } @@ -1120,10 +1083,8 @@ def test_gen_only_sync(self, transceiver_runtime): self.MODEL_PATH, # Apply to both servers: gen worker uses sync receive path. extra_env={"TRTLLM_DISABLE_KV_CACHE_TRANSFER_OVERLAP": "1"}, - request_timeout_s=(120 if transceiver_runtime == "CPP" else - DEFAULT_REQUEST_TIMEOUT_S), - request_max_retries=(0 - if transceiver_runtime == "CPP" else None), + request_timeout_s=DEFAULT_REQUEST_TIMEOUT_S, + request_max_retries=None, ) as llm: run_accuracy_test(llm, self.MODEL_NAME, ["GSM8K"]) @@ -1160,47 +1121,6 @@ def test_gen_only_spec_dec(self): tensor_parallel_size=4) as llm: run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) - @pytest.mark.skip_less_device(8) - @parametrize_with_ids("overlap_scheduler", [True, False]) - @parametrize_with_ids("mtp_nextn", [0, 2]) - @pytest.mark.skip_less_device(8) - def test_auto_dtype(self, overlap_scheduler, mtp_nextn): - ctx_server_config = {"disable_overlap_scheduler": True} - gen_server_config = {"disable_overlap_scheduler": not overlap_scheduler} - ctx_server_config["cache_transceiver_config"] = { - "backend": "DEFAULT", - "max_tokens_in_buffer": 4096 - } - gen_server_config["cache_transceiver_config"] = { - "backend": "DEFAULT", - "max_tokens_in_buffer": 4096 - } - if mtp_nextn > 0: - ctx_server_config["speculative_config"] = { - "decoding_type": "MTP", - "max_draft_len": mtp_nextn - } - gen_server_config["speculative_config"] = { - "decoding_type": "MTP", - "max_draft_len": mtp_nextn - } - disaggregated_server_config = { - "hostname": "localhost", - "backend": "pytorch", - "context_servers": { - "num_instances": 1 - }, - "generation_servers": { - "num_instances": 1 - } - } - with launch_disaggregated_llm(disaggregated_server_config, - ctx_server_config, - gen_server_config, - self.MODEL_PATH, - tensor_parallel_size=4) as llm: - run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) - @skip_pre_blackwell @pytest.mark.skip_less_device(8) @pytest.mark.parametrize("gen_pp,gen_tp,gen_cp,enable_attention_dp", [ @@ -1246,7 +1166,8 @@ def test_auto_dtype_with_helix(self, comms_medium, cuda_graph_config, "enable_chunked_prefill": False, "cuda_graph_config": None, "cache_transceiver_config": { - "backend": "UCX", + "backend": "NIXL", + "transceiver_runtime": "PYTHON", "max_tokens_in_buffer": 8192, }, } @@ -1266,7 +1187,8 @@ def test_auto_dtype_with_helix(self, comms_medium, cuda_graph_config, "enable_chunked_prefill": False, "cuda_graph_config": cuda_graph_config, "cache_transceiver_config": { - "backend": "UCX", + "backend": "NIXL", + "transceiver_runtime": "PYTHON", "max_tokens_in_buffer": 8192, }, "enable_attention_dp": enable_attention_dp, @@ -1299,7 +1221,8 @@ def test_guided_decoding(self, backend: str, mtp_nextn: int, mocker): }, "guided_decoding_backend": backend, "cache_transceiver_config": { - "backend": "DEFAULT", + "backend": "NIXL", + "transceiver_runtime": "PYTHON", "max_tokens_in_buffer": 4096 } } @@ -1310,7 +1233,8 @@ def test_guided_decoding(self, backend: str, mtp_nextn: int, mocker): }, "guided_decoding_backend": backend, "cache_transceiver_config": { - "backend": "DEFAULT", + "backend": "NIXL", + "transceiver_runtime": "PYTHON", "max_tokens_in_buffer": 4096 } } @@ -1378,7 +1302,7 @@ def test_kv_cache_v2_nixl_python(self): with launch_disaggregated_llm(disaggregated_server_config, ctx_server_config, gen_server_config, self.MODEL_PATH) as llm: - run_accuracy_test(llm, self.MODEL_NAME, ["GSM8K"]) + run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) @pytest.mark.skip_less_device(4) @pytest.mark.skip_less_device_memory(60000) @@ -1676,70 +1600,6 @@ class TestDeepSeekV32Exp(LlmapiAccuracyTestHarness): MODEL_NAME = "deepseek-ai/DeepSeek-V3.2-Exp" MODEL_PATH = f"{llm_models_root()}/DeepSeek-V3.2-Exp-FP4-v2" - @pytest.mark.skip_less_device(8) - @pytest.mark.parametrize("overlap_scheduler", [False]) - def test_auto_dtype(self, overlap_scheduler): - cache_transceiver_config = { - "backend": "DEFAULT", - "max_tokens_in_buffer": 4096 - } - max_num_tokens = 8192 - ctx_kv_cache_config = { - "free_gpu_memory_fraction": 0.3, - "tokens_per_block": 64, - "dtype": "fp8", - } - moe_config = {"backend": "TRTLLM", "max_num_tokens": max_num_tokens} - ctx_server_config = { - "disable_overlap_scheduler": True, - "cuda_graph_config": None, - "cache_transceiver_config": cache_transceiver_config, - "kv_cache_config": ctx_kv_cache_config, - "tensor_parallel_size": 4, - "pipeline_parallel_size": 1, - "max_batch_size": 16, - "max_num_tokens": max_num_tokens, - "enable_autotuner": False, - } - gen_kv_cache_config = { - "free_gpu_memory_fraction": 0.5, - "tokens_per_block": 64, - "dtype": "fp8", - } - gen_server_config = { - "disable_overlap_scheduler": overlap_scheduler, - "cuda_graph_config": None, - "cache_transceiver_config": cache_transceiver_config, - "kv_cache_config": gen_kv_cache_config, - "moe_config": moe_config, - "max_batch_size": 128, - "max_num_tokens": 1024, - "cuda_graph_config": None, - "tensor_parallel_size": 4, - "pipeline_parallel_size": 1, - "moe_expert_parallel_size": 4, - "enable_attention_dp": True, - "enable_autotuner": False, - } - disaggregated_server_config = { - "hostname": "localhost", - "backend": "pytorch", - "context_servers": { - "num_instances": 1 - }, - "generation_servers": { - "num_instances": 1 - } - } - with launch_disaggregated_llm(disaggregated_server_config, - ctx_server_config=ctx_server_config, - gen_server_config=gen_server_config, - model_name=self.MODEL_PATH, - max_workers=128) as llm: - run_accuracy_test(llm, - model_name=self.MODEL_NAME, - test_sets=["MMLU", "GSM8K"]) - @pytest.mark.skip_less_device(4) @pytest.mark.skip_less_device_memory(200000) @pytest.mark.parametrize("use_kv_cache_manager_v2", [False], @@ -1794,7 +1654,7 @@ def test_kv_cache_v2_nixl_python(self, use_kv_cache_manager_v2): with launch_disaggregated_llm(disaggregated_server_config, ctx_server_config, gen_server_config, self.MODEL_PATH) as llm: - run_accuracy_test(llm, self.MODEL_NAME, ["GSM8K"]) + run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) @pytest.mark.timeout(DEFAULT_TEST_TIMEOUT) diff --git a/tests/integration/test_lists/qa/llm_function_core.txt b/tests/integration/test_lists/qa/llm_function_core.txt index 765ad10586f3..25fa2d8598d8 100644 --- a/tests/integration/test_lists/qa/llm_function_core.txt +++ b/tests/integration/test_lists/qa/llm_function_core.txt @@ -1,10 +1,5 @@ accuracy/test_disaggregated_serving.py::TestDeepSeekR1::test_kv_cache_v2_nixl_python[cache_mgr_v1] -accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_auto_dtype[False] accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_kv_cache_v2_nixl_python[cache_mgr_v1] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype_with_helix[fifo_v2-cudagraph:with_padding-pp1dp2cp2] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype_with_helix[fifo_v2-cudagraph:with_padding-pp1tp2cp2] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync[python] @@ -13,7 +8,6 @@ accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=0] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=2] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_kv_cache_v2_nixl_python -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_nixl_backend accuracy/test_disaggregated_serving.py::TestGemma3_1BInstruct::test_auto_dtype[False] accuracy/test_disaggregated_serving.py::TestGemma3_1BInstruct::test_auto_dtype[True] accuracy/test_disaggregated_serving.py::TestGemma3_1BInstruct::test_kv_cache_v2_nixl_python[cache_mgr_v1] diff --git a/tests/integration/test_lists/qa/llm_function_rtx6k.txt b/tests/integration/test_lists/qa/llm_function_rtx6k.txt index a354d3a9a1a6..e226f637c6aa 100644 --- a/tests/integration/test_lists/qa/llm_function_rtx6k.txt +++ b/tests/integration/test_lists/qa/llm_function_rtx6k.txt @@ -1,7 +1,3 @@ -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=0] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=2] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=0] diff --git a/tests/integration/test_lists/test-db/l0_dgx_b200.yml b/tests/integration/test_lists/test-db/l0_dgx_b200.yml index 74d7936cab15..f90550a9d9f0 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_b200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_b200.yml @@ -17,7 +17,6 @@ l0_dgx_b200: tests: - unittest/_torch/misc/test_autotuner.py::test_autotuner_distributed_strategy - accuracy/test_llm_api_pytorch.py::TestQwen3_5_35B_A3B::test_bf16[tp2-TRTLLM] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync[cpp] # ------------- KV Cache V2 Scheduler IT (multi-GPU) --------------- - kv_cache/test_kv_cache_v2_scheduler.py::TestKVCacheV2DSv3Lite::test_mtp_draft_tokens - kv_cache/test_kv_cache_v2_scheduler.py::TestKVCacheV2DSv3Lite::test_mtp_chunked_draft_tokens @@ -183,7 +182,6 @@ l0_dgx_b200: - accuracy/test_llm_api_pytorch.py::TestGLM52::test_nvfp4_mtp_index_share[tp_size=8-ep_size=8] TIMEOUT (60) - accuracy/test_llm_api_pytorch.py::TestDeepSeekV4Pro::test_gsm8k_full_accuracy TIMEOUT (240) - examples/test_deepseek_v4_pro.py::test_short_token_boundary_smoke TIMEOUT (120) - - accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_auto_dtype[False] TIMEOUT (60) - accuracy/test_disaggregated_serving.py::TestKimiK25::test_nvfp4 TIMEOUT (180) - accuracy/test_llm_api_pytorch.py::TestKimiK25::test_nvfp4[tp8] TIMEOUT (60) - accuracy/test_llm_api_pytorch.py::TestDeepSeekV4ProDSpark::test_gsm8k_dep8_megamoe_deepgemm TIMEOUT (240) diff --git a/tests/integration/test_lists/test-db/l0_dgx_b300.yml b/tests/integration/test_lists/test-db/l0_dgx_b300.yml index 736319d8409f..0d2a254c67af 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_b300.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_b300.yml @@ -69,7 +69,6 @@ l0_dgx_b300: - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_nixl_backend - accuracy/test_disaggregated_serving.py::TestDeepSeekR1::test_kv_cache_v2_nixl_python[cache_mgr_v1] - accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_kv_cache_v2_nixl_python[cache_mgr_v1] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_nixl_backend - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_kv_cache_v2_nixl_python - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_kv_cache_v2_nixl_python - accuracy/test_disaggregated_serving.py::TestGPTOSS::test_kv_cache_v2_nixl_python[cache_mgr_v1] diff --git a/tests/integration/test_lists/test-db/l0_dgx_h100.yml b/tests/integration/test_lists/test-db/l0_dgx_h100.yml index c867ea2503a5..61dc0d8cbe44 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_h100.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_h100.yml @@ -35,8 +35,6 @@ l0_dgx_h100: - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_auto_dtype[False-False] - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_chunked_prefill - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_nixl_backend - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_nixl_backend - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync[python] - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_kv_cache_v2_nixl_python - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ngram - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_kv_cache_v2_nixl_python diff --git a/tests/integration/test_lists/test-db/l0_dgx_h200.yml b/tests/integration/test_lists/test-db/l0_dgx_h200.yml index 3b40b905220b..2590c7f90b12 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_h200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_h200.yml @@ -27,10 +27,6 @@ l0_dgx_h200: - accuracy/test_llm_api_pytorch.py::TestNemotronV3Super::test_nvfp4_marlin_multi_gpus[tp_size=8] - accuracy/test_llm_api_pytorch.py::TestNemotronV3Super::test_nvfp4_marlin_adp_4gpus[mtp_nextn=3] - accuracy/test_llm_api_pytorch.py::TestNemotronV3Ultra::test_nvfp4_marlin_8gpus - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[GSM8K-tp2pp2] - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[MMLU-tp2pp2] - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ctx_pp_gen_tp_asymmetric[GSM8K-gen_tp=1-ctx_pp=4] diff --git a/tests/integration/test_lists/waives.txt b/tests/integration/test_lists/waives.txt index 10ae45ef3147..45d946d4a64d 100644 --- a/tests/integration/test_lists/waives.txt +++ b/tests/integration/test_lists/waives.txt @@ -256,8 +256,6 @@ full:GB300/accuracy/test_llm_api_pytorch_multimodal.py::TestGemma3_27BInstruct:: full:GB300/accuracy/test_llm_api_pytorch_multimodal.py::TestQwen3_5_35B_A3B_VL::test_fp8_prequantized SKIP (https://nvbugs/6526429) full:GB300/perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb300_kimi-k25-thinking-fp4_8k1k_con4_ctx1_dep4_gen1_tep8_eplb0_mtp3_ccb-NIXL] SKIP (https://nvbugs/6572464) full:GB300/test_e2e.py::test_qwen_e2e_cpprunner_large_new_tokens[DeepSeek-R1-Distill-Qwen-1.5B-DeepSeek-R1-Distill-Qwen-1.5B] SKIP (https://nvbugs/6414760) -full:H100/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] SKIP (https://nvbugs/6313072) -full:H100/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] SKIP (https://nvbugs/6313072) full:H100/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=False] SKIP (https://nvbugs/6422343) full:H100/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=True] SKIP (https://nvbugs/6422343) full:H100/accuracy/test_llm_api_pytorch.py::TestGPTOSS::test_dummy_load_format SKIP (https://nvbugs/6528834) @@ -272,8 +270,6 @@ full:H100/disaggregated/test_disaggregated.py::test_disaggregated_mixed_stress_t full:H100/disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] SKIP (https://nvbugs/6312828) full:H100/test_e2e.py::test_qwen_e2e_cpprunner_large_new_tokens[DeepSeek-R1-Distill-Qwen-1.5B-DeepSeek-R1-Distill-Qwen-1.5B] SKIP (https://nvbugs/6414760) full:H100_PCIe/unittest/llmapi/test_llm_pytorch.py::test_llama_7b_multi_lora_evict_and_reload_lora_gpu_cache SKIP (https://nvbugs/5682551) -full:H20/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] SKIP (https://nvbugs/6345827) -full:H20/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] SKIP (https://nvbugs/6345827) full:H20/accuracy/test_epd_disagg_multimodal.py::TestVideoMMEEPD::test_disaggregated_videomme[nemotron_nano_v3_omni_fp8] SKIP (https://nvbugs/6327718) full:H20/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=False] SKIP (https://nvbugs/6422343) full:H20/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=True] SKIP (https://nvbugs/6422343) From 0a4b65b680e1a2c9a27ef8533ffd4053ed21855f Mon Sep 17 00:00:00 2001 From: Asfiya Baig Date: Mon, 3 Aug 2026 14:52:17 -0700 Subject: [PATCH 2/3] remove test_kv_cache_v2_nixl_python and keep test_auto_dtype for more coverage of DSV3.2 Signed-off-by: Asfiya Baig remove TestDeepSeekV3Lite::test_auto_dtype_with_helix as helix can't run with Python transceiver Signed-off-by: Asfiya Baig Update DSV3-Lite to retain test_auto_dtype and remove test_kv_cache_v2_nixl_python Signed-off-by: Asfiya Baig TestDeepSeekV3Lite::test_auto_dtype_with_helix to use CPP transceiver Signed-off-by: Asfiya Baig minor rearrange Signed-off-by: Asfiya Baig migrate deepseek configs to Python transceiver for tests/integration/defs/disaggregated/test_configs Signed-off-by: Asfiya Baig migrate deepseek configs to Python transceiver for tests/integration/defs/disaggregated/test_configs Signed-off-by: Asfiya Baig remove disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python config from test Signed-off-by: Asfiya Baig remove test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python and associated test list entries Signed-off-by: Asfiya Baig remove test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu and associated test list entries Signed-off-by: Asfiya Baig Revert "remove test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu and associated test list entries" This reverts commit d1eb9965c85a31a1cbecd4a378f16710c2906ef1. Add config for TP1 UCX test Signed-off-by: Asfiya Baig fix rebase bugs Signed-off-by: Asfiya Baig fix rebase bugs Signed-off-by: Asfiya Baig --- tests/integration/defs/.test_durations | 5 - .../accuracy/test_disaggregated_serving.py | 170 +++++++++--------- ...onfig_cache_aware_balance_deepseek_v3.yaml | 6 +- ...disagg_config_cache_reuse_deepseek_v3.yaml | 6 +- ...disagg_config_conditional_deepseek_v3.yaml | 6 +- ...config_ctxtp1_gentp1_deepseek_v3_lite.yaml | 6 +- ...txtp1_gentp1_deepseek_v3_lite_one_mtp.yaml | 6 +- ..._v3_lite_one_mtp_attention_dp_overlap.yaml | 6 +- ...eepseek_v3_lite_one_mtp_ctxpp2_gentp2.yaml | 6 +- ...txtp1_gentp1_deepseek_v3_lite_two_mtp.yaml | 6 +- ...ig_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml | 17 ++ ...config_ctxtp2_gentp2_deepseek_v3_lite.yaml | 6 +- ..._gentp2_deepseek_v3_lite_attention_dp.yaml | 6 +- ...tp2_deepseek_v3_lite_attention_dp_one.yaml | 6 +- ...deepseek_v3_lite_attention_dp_one_mtp.yaml | 6 +- ..._lite_attention_dp_overlap_cuda_graph.yaml | 6 +- ...g_ctxtp2_gentp2_deepseek_v3_lite_nixl.yaml | 2 + ...2_deepseek_v3_lite_overlap_cuda_graph.yaml | 6 +- ...ek_v3_lite_transceiver_runtime_python.yaml | 24 --- ..._deepseek_v3_lite_one_mtp_block_reuse.yaml | 6 +- ...k_v3_lite_one_mtp_block_reuse_chunked.yaml | 6 +- ...ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm.yaml | 6 +- ...p4_gentp4_deepseek_r1_v2_fp4_tllm_mtp.yaml | 6 +- ...g_config_deepseek_v3_lite_empty_batch.yaml | 6 +- ...eepseek_v3_lite_attention_dp_gen_only.yaml | 3 +- .../defs/disaggregated/test_disaggregated.py | 28 +-- .../test_lists/qa/llm_function_core.txt | 11 +- .../test_lists/qa/llm_function_rtx6k.txt | 4 + .../test_lists/test-db/l0_dgx_b200.yml | 2 + .../test_lists/test-db/l0_dgx_b300.yml | 2 - .../test_lists/test-db/l0_dgx_h100.yml | 3 +- .../test_lists/test-db/l0_dgx_h200.yml | 4 + tests/integration/test_lists/waives.txt | 4 + 33 files changed, 212 insertions(+), 181 deletions(-) create mode 100644 tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml delete mode 100644 tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python.yaml diff --git a/tests/integration/defs/.test_durations b/tests/integration/defs/.test_durations index d4bc602ad8ec..f5ee0118e613 100644 --- a/tests/integration/defs/.test_durations +++ b/tests/integration/defs/.test_durations @@ -1,7 +1,6 @@ { "accuracy/test_disaggregated_serving.py::TestDeepSeekR1::test_kv_cache_v2_nixl_python[cache_mgr_v1]": 585.7382, "accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_auto_dtype[False]": 618.2120759493671, - "accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_kv_cache_v2_nixl_python[cache_mgr_v1]": 669.1686, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False]": 278.947, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True]": 155.35775, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False]": 211.017, @@ -10,13 +9,10 @@ "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_first[adp-mtp2]": 320.45259493670886, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_first[noadp-mtp0]": 467.45696296296296, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_spec_dec": 174.1415, - "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync[python]": 272.31831645569616, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=0]": 144.22060000000002, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=2]": 142.88979999999998, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=0]": 276.96827272727273, "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=2]": 178.90498823529413, - "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_kv_cache_v2_nixl_python": 285.9667195121951, - "accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_nixl_backend": 274.9563766233766, "accuracy/test_disaggregated_serving.py::TestDeepSeekV4Flash::test_auto_dtype": 681.8583145161291, "accuracy/test_disaggregated_serving.py::TestGLM52NVFP4::test_nvfp4_nixl[cache_mgr_v1]": 992.9112333333333, "accuracy/test_disaggregated_serving.py::TestGPTOSS::test_kv_cache_v2_nixl_python[cache_mgr_v1]": 333.1872, @@ -630,7 +626,6 @@ "disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_attention_dp[DeepSeek-V3-Lite-fp8]": 144.85461842105263, "disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_attention_dp_overlap[DeepSeek-V3-Lite-fp8]": 120.784, "disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_nixl[DeepSeek-V3-Lite-fp8]": 138.068, - "disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python[DeepSeek-V3-Lite-fp8]": 119.97518421052632, "disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_ucx[DeepSeek-V3-Lite-fp8]": 95.34589473684211, "disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu[DeepSeek-V3-Lite-fp8]": 135.01195707070707, "disaggregated/test_disaggregated.py::test_disaggregated_diff_max_tokens[TinyLlama-1.1B-Chat-v1.0]": 71.34835714285714, diff --git a/tests/integration/defs/accuracy/test_disaggregated_serving.py b/tests/integration/defs/accuracy/test_disaggregated_serving.py index 0bd3fc76d724..b52bc7feeae3 100644 --- a/tests/integration/defs/accuracy/test_disaggregated_serving.py +++ b/tests/integration/defs/accuracy/test_disaggregated_serving.py @@ -1166,8 +1166,7 @@ def test_auto_dtype_with_helix(self, comms_medium, cuda_graph_config, "enable_chunked_prefill": False, "cuda_graph_config": None, "cache_transceiver_config": { - "backend": "NIXL", - "transceiver_runtime": "PYTHON", + "backend": "UCX", "max_tokens_in_buffer": 8192, }, } @@ -1187,8 +1186,7 @@ def test_auto_dtype_with_helix(self, comms_medium, cuda_graph_config, "enable_chunked_prefill": False, "cuda_graph_config": cuda_graph_config, "cache_transceiver_config": { - "backend": "NIXL", - "transceiver_runtime": "PYTHON", + "backend": "UCX", "max_tokens_in_buffer": 8192, }, "enable_attention_dp": enable_attention_dp, @@ -1208,35 +1206,22 @@ def test_auto_dtype_with_helix(self, comms_medium, cuda_graph_config, self.MODEL_PATH) as llm: run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) - @pytest.mark.skip_less_device(2) - @pytest.mark.skip_less_device_memory(60000) + @pytest.mark.skip_less_device(8) + @parametrize_with_ids("overlap_scheduler", [True, False]) @parametrize_with_ids("mtp_nextn", [0, 2]) - @pytest.mark.parametrize("backend", ["xgrammar", "llguidance"]) - def test_guided_decoding(self, backend: str, mtp_nextn: int, mocker): - mocker.patch.dict(os.environ, {"TRTLLM_XGUIDANCE_LENIENT": "1"}) - ctx_server_config = { - "disable_overlap_scheduler": True, - "kv_cache_config": { - "free_gpu_memory_fraction": 0.8, - }, - "guided_decoding_backend": backend, - "cache_transceiver_config": { - "backend": "NIXL", - "transceiver_runtime": "PYTHON", - "max_tokens_in_buffer": 4096 - } + @pytest.mark.skip_less_device(8) + def test_auto_dtype(self, overlap_scheduler, mtp_nextn): + ctx_server_config = {"disable_overlap_scheduler": True} + gen_server_config = {"disable_overlap_scheduler": not overlap_scheduler} + ctx_server_config["cache_transceiver_config"] = { + "backend": "NIXL", + "transceiver_runtime": "PYTHON", + "max_tokens_in_buffer": 4096 } - gen_server_config = { - "disable_overlap_scheduler": False, - "kv_cache_config": { - "free_gpu_memory_fraction": 0.8, - }, - "guided_decoding_backend": backend, - "cache_transceiver_config": { - "backend": "NIXL", - "transceiver_runtime": "PYTHON", - "max_tokens_in_buffer": 4096 - } + gen_server_config["cache_transceiver_config"] = { + "backend": "NIXL", + "transceiver_runtime": "PYTHON", + "max_tokens_in_buffer": 4096 } if mtp_nextn > 0: ctx_server_config["speculative_config"] = { @@ -1258,37 +1243,51 @@ def test_guided_decoding(self, backend: str, mtp_nextn: int, mocker): } } with launch_disaggregated_llm(disaggregated_server_config, - ctx_server_config, gen_server_config, - self.MODEL_PATH) as llm: - run_accuracy_test(llm, self.MODEL_NAME, ["JsonModeEval"]) + ctx_server_config, + gen_server_config, + self.MODEL_PATH, + tensor_parallel_size=4) as llm: + run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) @pytest.mark.skip_less_device(2) @pytest.mark.skip_less_device_memory(60000) - @skip_pre_hopper - def test_kv_cache_v2_nixl_python(self): - """Test with use_kv_cache_manager_v2=True, block_reuse=False, backend=NIXL, transceiver_runtime=PYTHON.""" + @parametrize_with_ids("mtp_nextn", [0, 2]) + @pytest.mark.parametrize("backend", ["xgrammar", "llguidance"]) + def test_guided_decoding(self, backend: str, mtp_nextn: int, mocker): + mocker.patch.dict(os.environ, {"TRTLLM_XGUIDANCE_LENIENT": "1"}) ctx_server_config = { "disable_overlap_scheduler": True, "kv_cache_config": { - "enable_block_reuse": False, - "use_kv_cache_manager_v2": True + "free_gpu_memory_fraction": 0.8, }, + "guided_decoding_backend": backend, "cache_transceiver_config": { "backend": "NIXL", - "transceiver_runtime": "PYTHON" + "transceiver_runtime": "PYTHON", + "max_tokens_in_buffer": 4096 } } gen_server_config = { - "disable_overlap_scheduler": True, + "disable_overlap_scheduler": False, "kv_cache_config": { - "enable_block_reuse": False, - "use_kv_cache_manager_v2": True + "free_gpu_memory_fraction": 0.8, }, + "guided_decoding_backend": backend, "cache_transceiver_config": { "backend": "NIXL", - "transceiver_runtime": "PYTHON" + "transceiver_runtime": "PYTHON", + "max_tokens_in_buffer": 4096 } } + if mtp_nextn > 0: + ctx_server_config["speculative_config"] = { + "decoding_type": "MTP", + "max_draft_len": mtp_nextn + } + gen_server_config["speculative_config"] = { + "decoding_type": "MTP", + "max_draft_len": mtp_nextn + } disaggregated_server_config = { "hostname": "localhost", "backend": "pytorch", @@ -1302,7 +1301,7 @@ def test_kv_cache_v2_nixl_python(self): with launch_disaggregated_llm(disaggregated_server_config, ctx_server_config, gen_server_config, self.MODEL_PATH) as llm: - run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) + run_accuracy_test(llm, self.MODEL_NAME, ["JsonModeEval"]) @pytest.mark.skip_less_device(4) @pytest.mark.skip_less_device_memory(60000) @@ -1600,61 +1599,70 @@ class TestDeepSeekV32Exp(LlmapiAccuracyTestHarness): MODEL_NAME = "deepseek-ai/DeepSeek-V3.2-Exp" MODEL_PATH = f"{llm_models_root()}/DeepSeek-V3.2-Exp-FP4-v2" - @pytest.mark.skip_less_device(4) - @pytest.mark.skip_less_device_memory(200000) - @pytest.mark.parametrize("use_kv_cache_manager_v2", [False], - ids=["cache_mgr_v1"]) - def test_kv_cache_v2_nixl_python(self, use_kv_cache_manager_v2): - """Test with KV cache manager v1, block_reuse=False, backend=NIXL, transceiver_runtime=PYTHON.""" + @pytest.mark.skip_less_device(8) + @pytest.mark.parametrize("overlap_scheduler", [False]) + def test_auto_dtype(self, overlap_scheduler): + cache_transceiver_config = { + "backend": "NIXL", + "transceiver_runtime": "PYTHON", + "max_tokens_in_buffer": 4096 + } max_num_tokens = 8192 + ctx_kv_cache_config = { + "free_gpu_memory_fraction": 0.3, + "tokens_per_block": 64, + "dtype": "fp8", + } moe_config = {"backend": "TRTLLM", "max_num_tokens": max_num_tokens} ctx_server_config = { "disable_overlap_scheduler": True, - "kv_cache_config": { - "free_gpu_memory_fraction": 0.5, - "enable_block_reuse": False, - "use_kv_cache_manager_v2": use_kv_cache_manager_v2 - }, - "cache_transceiver_config": { - "backend": "NIXL", - "transceiver_runtime": "PYTHON", - "max_tokens_in_buffer": 4096 - }, - "tensor_parallel_size": 2, - "moe_expert_parallel_size": 2, + "cuda_graph_config": None, + "cache_transceiver_config": cache_transceiver_config, + "kv_cache_config": ctx_kv_cache_config, + "tensor_parallel_size": 4, + "pipeline_parallel_size": 1, + "max_batch_size": 16, + "max_num_tokens": max_num_tokens, "enable_autotuner": False, } + gen_kv_cache_config = { + "free_gpu_memory_fraction": 0.5, + "tokens_per_block": 64, + "dtype": "fp8", + } gen_server_config = { - "disable_overlap_scheduler": False, + "disable_overlap_scheduler": overlap_scheduler, + "cuda_graph_config": None, + "cache_transceiver_config": cache_transceiver_config, + "kv_cache_config": gen_kv_cache_config, "moe_config": moe_config, - "kv_cache_config": { - "free_gpu_memory_fraction": 0.5, - "enable_block_reuse": False, - "use_kv_cache_manager_v2": use_kv_cache_manager_v2 - }, - "cache_transceiver_config": { - "backend": "NIXL", - "transceiver_runtime": "PYTHON", - "max_tokens_in_buffer": 4096 - }, - "tensor_parallel_size": 2, - "moe_expert_parallel_size": 2, + "max_batch_size": 128, + "max_num_tokens": 1024, + "cuda_graph_config": None, + "tensor_parallel_size": 4, + "pipeline_parallel_size": 1, + "moe_expert_parallel_size": 4, + "enable_attention_dp": True, "enable_autotuner": False, } disaggregated_server_config = { "hostname": "localhost", "backend": "pytorch", "context_servers": { - "num_instances": 1, + "num_instances": 1 }, "generation_servers": { - "num_instances": 1, + "num_instances": 1 } } with launch_disaggregated_llm(disaggregated_server_config, - ctx_server_config, gen_server_config, - self.MODEL_PATH) as llm: - run_accuracy_test(llm, self.MODEL_NAME, ["MMLU", "GSM8K"]) + ctx_server_config=ctx_server_config, + gen_server_config=gen_server_config, + model_name=self.MODEL_PATH, + max_workers=128) as llm: + run_accuracy_test(llm, + model_name=self.MODEL_NAME, + test_sets=["MMLU", "GSM8K"]) @pytest.mark.timeout(DEFAULT_TEST_TIMEOUT) diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance_deepseek_v3.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance_deepseek_v3.yaml index 615bf8b74d41..282b9a352ff1 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance_deepseek_v3.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_aware_balance_deepseek_v3.yaml @@ -16,7 +16,8 @@ context_servers: event_buffer_max_size: 1024 free_gpu_memory_fraction: 0.1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 2 router: @@ -29,4 +30,5 @@ generation_servers: event_buffer_max_size: 1024 free_gpu_memory_fraction: 0.1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse_deepseek_v3.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse_deepseek_v3.yaml index 9a51a0f5903d..3e908bcf2ab6 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse_deepseek_v3.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_cache_reuse_deepseek_v3.yaml @@ -17,7 +17,8 @@ context_servers: enable_partial_reuse: true event_buffer_max_size: 1024 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 1 @@ -30,4 +31,5 @@ generation_servers: event_buffer_max_size: 1024 free_gpu_memory_fraction: 0.05 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional_deepseek_v3.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional_deepseek_v3.yaml index 7887fd2725fb..b554f840e302 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional_deepseek_v3.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_conditional_deepseek_v3.yaml @@ -17,7 +17,8 @@ context_servers: event_buffer_max_size: 1024 free_gpu_memory_fraction: 0.15 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 1 @@ -30,4 +31,5 @@ generation_servers: event_buffer_max_size: 1024 free_gpu_memory_fraction: 0.15 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite.yaml index ce4c9b3917bf..ca673a58cf22 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite.yaml @@ -9,10 +9,12 @@ context_servers: tensor_parallel_size: 1 pipeline_parallel_size: 1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 1 pipeline_parallel_size: 1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp.yaml index 43081ce00a83..66bb02035726 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp.yaml @@ -13,11 +13,13 @@ context_servers: pipeline_parallel_size: 1 enable_attention_dp: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 1 pipeline_parallel_size: 1 enable_attention_dp: false cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_attention_dp_overlap.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_attention_dp_overlap.yaml index 77ebcc6a0585..1f33e3e7201a 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_attention_dp_overlap.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_attention_dp_overlap.yaml @@ -13,7 +13,8 @@ context_servers: enable_attention_dp: true disable_overlap_scheduler: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 1 @@ -21,4 +22,5 @@ generation_servers: enable_attention_dp: true disable_overlap_scheduler: false cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_ctxpp2_gentp2.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_ctxpp2_gentp2.yaml index efbdc97c4f38..81e3c5d73baf 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_ctxpp2_gentp2.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_one_mtp_ctxpp2_gentp2.yaml @@ -13,7 +13,8 @@ context_servers: decoding_type: MTP max_draft_len: 1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 @@ -23,4 +24,5 @@ generation_servers: decoding_type: MTP max_draft_len: 1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_two_mtp.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_two_mtp.yaml index 18cb600debcd..b69aaafc53a9 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_two_mtp.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_two_mtp.yaml @@ -13,11 +13,13 @@ context_servers: pipeline_parallel_size: 1 enable_attention_dp: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 1 pipeline_parallel_size: 1 enable_attention_dp: false cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml new file mode 100644 index 000000000000..2ee6d65e5e0d --- /dev/null +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml @@ -0,0 +1,17 @@ +hostname: localhost +model: DeepSeek-V3-Lite/fp8 +free_gpu_memory_fraction: 0.25 +backend: pytorch +disable_overlap_scheduler: true +context_servers: + num_instances: 1 + tensor_parallel_size: 1 + pipeline_parallel_size: 1 + cache_transceiver_config: + backend: UCX +generation_servers: + num_instances: 1 + tensor_parallel_size: 1 + pipeline_parallel_size: 1 + cache_transceiver_config: + backend: UCX diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite.yaml index 0d50737cc267..8fb03e4b5d7f 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite.yaml @@ -9,10 +9,12 @@ context_servers: tensor_parallel_size: 2 pipeline_parallel_size: 1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 pipeline_parallel_size: 1 cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp.yaml index bfec04d70572..698f2542a202 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp.yaml @@ -10,11 +10,13 @@ context_servers: pipeline_parallel_size: 1 enable_attention_dp: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 pipeline_parallel_size: 1 enable_attention_dp: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one.yaml index 4aa309cf6cf1..3cf3225a30bc 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one.yaml @@ -10,11 +10,13 @@ context_servers: pipeline_parallel_size: 1 enable_attention_dp: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 pipeline_parallel_size: 1 enable_attention_dp: false cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one_mtp.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one_mtp.yaml index 3aa588aaa79a..1a72b6649db8 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one_mtp.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_one_mtp.yaml @@ -13,11 +13,13 @@ context_servers: pipeline_parallel_size: 1 enable_attention_dp: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 pipeline_parallel_size: 1 enable_attention_dp: false cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_overlap_cuda_graph.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_overlap_cuda_graph.yaml index acc41bc2dc89..08e340d31cdc 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_overlap_cuda_graph.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_attention_dp_overlap_cuda_graph.yaml @@ -9,7 +9,8 @@ context_servers: enable_attention_dp: true disable_overlap_scheduler: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 @@ -19,4 +20,5 @@ generation_servers: enable_padding: false disable_overlap_scheduler: false cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_nixl.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_nixl.yaml index e1628021af57..aa5e722d1963 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_nixl.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_nixl.yaml @@ -9,9 +9,11 @@ context_servers: pipeline_parallel_size: 1 cache_transceiver_config: backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 pipeline_parallel_size: 1 cache_transceiver_config: backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_overlap_cuda_graph.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_overlap_cuda_graph.yaml index b9d3f29b40b0..b2ed973ab018 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_overlap_cuda_graph.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_overlap_cuda_graph.yaml @@ -8,7 +8,8 @@ context_servers: pipeline_parallel_size: 1 disable_overlap_scheduler: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 2 @@ -17,4 +18,5 @@ generation_servers: enable_padding: false disable_overlap_scheduler: false cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python.yaml deleted file mode 100644 index 21856aabb69f..000000000000 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python.yaml +++ /dev/null @@ -1,24 +0,0 @@ -hostname: localhost -port: 8000 -model: DeepSeek-V3-Lite/fp8 -free_gpu_memory_fraction: 0.25 -backend: "pytorch" -disable_overlap_scheduler: True -context_servers: - num_instances: 1 - tensor_parallel_size: 2 - pipeline_parallel_size: 1 - cache_transceiver_config: - backend: "NIXL" - transceiver_runtime: "PYTHON" - urls: - - "localhost:8001" -generation_servers: - num_instances: 1 - tensor_parallel_size: 2 - pipeline_parallel_size: 1 - cache_transceiver_config: - backend: "NIXL" - transceiver_runtime: "PYTHON" - urls: - - "localhost:8002" diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse.yaml index 18eeab37fb73..8573f6e5477b 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse.yaml @@ -16,7 +16,8 @@ context_servers: kv_cache_config: enable_block_reuse: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 4 @@ -29,4 +30,5 @@ generation_servers: kv_cache_config: enable_block_reuse: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse_chunked.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse_chunked.yaml index ee58fbfd55a7..f6a6a058fe8e 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse_chunked.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp2ep2pp2_gentp4_deepseek_v3_lite_one_mtp_block_reuse_chunked.yaml @@ -18,7 +18,8 @@ context_servers: kv_cache_config: enable_block_reuse: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 4 @@ -31,4 +32,5 @@ generation_servers: kv_cache_config: enable_block_reuse: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm.yaml index 189c85a55ec0..c5c13f39c022 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm.yaml @@ -21,7 +21,8 @@ context_servers: cuda_graph_config: null print_iter_log: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON max_tokens_in_buffer: 16384 generation_servers: num_instances: 1 @@ -57,5 +58,6 @@ generation_servers: - 1024 print_iter_log: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON max_tokens_in_buffer: 16384 diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm_mtp.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm_mtp.yaml index 82902fa21f6b..724c56661b9b 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm_mtp.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp4_gentp4_deepseek_r1_v2_fp4_tllm_mtp.yaml @@ -25,7 +25,8 @@ context_servers: cuda_graph_config: null print_iter_log: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON max_tokens_in_buffer: 16384 generation_servers: num_instances: 1 @@ -64,5 +65,6 @@ generation_servers: - 1024 print_iter_log: true cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON max_tokens_in_buffer: 16384 diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_deepseek_v3_lite_empty_batch.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_deepseek_v3_lite_empty_batch.yaml index abf05da97d9d..7e2522cbf717 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_deepseek_v3_lite_empty_batch.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_deepseek_v3_lite_empty_batch.yaml @@ -17,7 +17,8 @@ context_servers: max_tokens: 512 cache_transceiver_config: max_tokens_in_buffer: 8448 - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON generation_servers: num_instances: 1 tensor_parallel_size: 1 @@ -38,6 +39,7 @@ generation_servers: max_tokens: 2560 cache_transceiver_config: max_tokens_in_buffer: 8448 - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON stream_interval: 1 num_postprocess_workers: 1 diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_gentp2_deepseek_v3_lite_attention_dp_gen_only.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_gentp2_deepseek_v3_lite_attention_dp_gen_only.yaml index 308afac71126..1ce1132e9446 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_gentp2_deepseek_v3_lite_attention_dp_gen_only.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_gentp2_deepseek_v3_lite_attention_dp_gen_only.yaml @@ -14,7 +14,8 @@ generation_servers: pipeline_parallel_size: 1 enable_attention_dp: True cache_transceiver_config: - backend: DEFAULT + backend: NIXL + transceiver_runtime: PYTHON urls: - "localhost:8002" - "localhost:8003" diff --git a/tests/integration/defs/disaggregated/test_disaggregated.py b/tests/integration/defs/disaggregated/test_disaggregated.py index 60bac5aa1700..87de97a51930 100644 --- a/tests/integration/defs/disaggregated/test_disaggregated.py +++ b/tests/integration/defs/disaggregated/test_disaggregated.py @@ -287,12 +287,12 @@ def get_test_config(test_desc, example_dir, test_root): f"{test_configs_root}/disagg_config_ctxpp4_gentp4.yaml", "deepseek_v3_lite_fp8_mpi": f"{test_configs_root}/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_mpi.yaml", - "deepseek_v3_lite_fp8_ucx": + "deepseek_v3_lite_fp8_tp1_ucx": + f"{test_configs_root}/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml", + "deepseek_v3_lite_fp8_tp2_ucx": f"{test_configs_root}/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_ucx.yaml", "deepseek_v3_lite_fp8_nixl": f"{test_configs_root}/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_nixl.yaml", - "deepseek_v3_lite_fp8_transceiver_runtime_python": - f"{test_configs_root}/disagg_config_ctxtp2_gentp2_deepseek_v3_lite_transceiver_runtime_python.yaml", "deepseek_v3_lite_fp8_tp1": f"{test_configs_root}/disagg_config_ctxtp1_gentp1_deepseek_v3_lite.yaml", "deepseek_v3_lite_fp8_tp1_mtp": @@ -1878,7 +1878,7 @@ def test_disaggregated_deepseek_v3_lite_fp8_ucx(disaggregated_test_root, env["TRTLLM_USE_UCX_KVCACHE"] = "1" env["UCX_TLS"] = get_ucx_tls() run_disaggregated_test(disaggregated_example_root, - "deepseek_v3_lite_fp8_ucx", + "deepseek_v3_lite_fp8_tp2_ucx", env=env, model_path=deepseek_v3_model_root, cwd=llm_venv.get_working_directory()) @@ -1906,24 +1906,6 @@ def test_disaggregated_deepseek_v3_lite_fp8_nixl(disaggregated_test_root, cwd=llm_venv.get_working_directory()) -@skip_no_hopper -@skip_arm -@pytest.mark.parametrize("deepseek_v3_model_root", ['DeepSeek-V3-Lite-fp8'], - indirect=True) -def test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python( - disaggregated_test_root, disaggregated_example_root, llm_venv, - deepseek_v3_model_root): - setup_model_symlink(llm_venv, deepseek_v3_model_root, - "DeepSeek-V3-Lite/fp8") - env = llm_venv._new_env.copy() - env["UCX_TLS"] = get_ucx_tls() - run_disaggregated_test(disaggregated_example_root, - "deepseek_v3_lite_fp8_transceiver_runtime_python", - env=env, - model_path=deepseek_v3_model_root, - cwd=llm_venv.get_working_directory()) - - @skip_no_hopper @skip_arm @pytest.mark.parametrize("deepseek_v3_model_root", ['DeepSeek-V3-Lite-fp8'], @@ -1938,7 +1920,7 @@ def test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu( env["UCX_TLS"] = get_ucx_tls() run_disaggregated_test(disaggregated_example_root, - "deepseek_v3_lite_fp8_tp1", + "deepseek_v3_lite_fp8_tp1_ucx", env=env, model_path=deepseek_v3_model_root, cwd=llm_venv.get_working_directory()) diff --git a/tests/integration/test_lists/qa/llm_function_core.txt b/tests/integration/test_lists/qa/llm_function_core.txt index 25fa2d8598d8..dea92c049a4f 100644 --- a/tests/integration/test_lists/qa/llm_function_core.txt +++ b/tests/integration/test_lists/qa/llm_function_core.txt @@ -1,13 +1,16 @@ accuracy/test_disaggregated_serving.py::TestDeepSeekR1::test_kv_cache_v2_nixl_python[cache_mgr_v1] -accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_kv_cache_v2_nixl_python[cache_mgr_v1] +accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_auto_dtype[False] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype_with_helix[fifo_v2-cudagraph:with_padding-pp1dp2cp2] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype_with_helix[fifo_v2-cudagraph:with_padding-pp1tp2cp2] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync[python] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=0] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=2] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=0] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=2] -accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_kv_cache_v2_nixl_python accuracy/test_disaggregated_serving.py::TestGemma3_1BInstruct::test_auto_dtype[False] accuracy/test_disaggregated_serving.py::TestGemma3_1BInstruct::test_auto_dtype[True] accuracy/test_disaggregated_serving.py::TestGemma3_1BInstruct::test_kv_cache_v2_nixl_python[cache_mgr_v1] @@ -864,7 +867,6 @@ disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1 disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_single_gpu_mtp[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1_two_mtp[DeepSeek-V3-Lite-fp8] -disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_ucx[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_ucx_tp1_single_gpu[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_diff_max_tokens[TinyLlama-1.1B-Chat-v1.0] @@ -939,7 +941,6 @@ disaggregated/test_auto_scaling.py::test_worker_restart[http-kv_cache_aware] disaggregated/test_auto_scaling.py::test_disagg_server_restart[etcd-round_robin] disaggregated/test_auto_scaling.py::test_disagg_server_restart[http-round_robin] disaggregated/test_disaggregated.py::test_disaggregated_overlap_transceiver_runtime_python[TinyLlama-1.1B-Chat-v1.0] -disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python[DeepSeek-V3-Lite-fp8] disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp1-TinyLlama-1.1B-Chat-v1.0] disaggregated/test_disaggregated.py::test_disaggregated_overlap_gen_first[ctx_pp4-TinyLlama-1.1B-Chat-v1.0] test_e2e.py::test_ptp_quickstart_advanced[Llama3.1-8B-BF16-llama-3.1-model/Meta-Llama-3.1-8B] diff --git a/tests/integration/test_lists/qa/llm_function_rtx6k.txt b/tests/integration/test_lists/qa/llm_function_rtx6k.txt index e226f637c6aa..a354d3a9a1a6 100644 --- a/tests/integration/test_lists/qa/llm_function_rtx6k.txt +++ b/tests/integration/test_lists/qa/llm_function_rtx6k.txt @@ -1,3 +1,7 @@ +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] +accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=0] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[llguidance-mtp_nextn=2] accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=0] diff --git a/tests/integration/test_lists/test-db/l0_dgx_b200.yml b/tests/integration/test_lists/test-db/l0_dgx_b200.yml index f90550a9d9f0..9f4a974e2a2b 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_b200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_b200.yml @@ -17,6 +17,7 @@ l0_dgx_b200: tests: - unittest/_torch/misc/test_autotuner.py::test_autotuner_distributed_strategy - accuracy/test_llm_api_pytorch.py::TestQwen3_5_35B_A3B::test_bf16[tp2-TRTLLM] + - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync # ------------- KV Cache V2 Scheduler IT (multi-GPU) --------------- - kv_cache/test_kv_cache_v2_scheduler.py::TestKVCacheV2DSv3Lite::test_mtp_draft_tokens - kv_cache/test_kv_cache_v2_scheduler.py::TestKVCacheV2DSv3Lite::test_mtp_chunked_draft_tokens @@ -182,6 +183,7 @@ l0_dgx_b200: - accuracy/test_llm_api_pytorch.py::TestGLM52::test_nvfp4_mtp_index_share[tp_size=8-ep_size=8] TIMEOUT (60) - accuracy/test_llm_api_pytorch.py::TestDeepSeekV4Pro::test_gsm8k_full_accuracy TIMEOUT (240) - examples/test_deepseek_v4_pro.py::test_short_token_boundary_smoke TIMEOUT (120) + - accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_auto_dtype[False] TIMEOUT (60) - accuracy/test_disaggregated_serving.py::TestKimiK25::test_nvfp4 TIMEOUT (180) - accuracy/test_llm_api_pytorch.py::TestKimiK25::test_nvfp4[tp8] TIMEOUT (60) - accuracy/test_llm_api_pytorch.py::TestDeepSeekV4ProDSpark::test_gsm8k_dep8_megamoe_deepgemm TIMEOUT (240) diff --git a/tests/integration/test_lists/test-db/l0_dgx_b300.yml b/tests/integration/test_lists/test-db/l0_dgx_b300.yml index 0d2a254c67af..5394ee8bc016 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_b300.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_b300.yml @@ -68,8 +68,6 @@ l0_dgx_b300: - accuracy/test_llm_api_pytorch.py::TestGPTOSS::test_w4a16[dp4-fp8] - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_nixl_backend - accuracy/test_disaggregated_serving.py::TestDeepSeekR1::test_kv_cache_v2_nixl_python[cache_mgr_v1] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV32Exp::test_kv_cache_v2_nixl_python[cache_mgr_v1] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_kv_cache_v2_nixl_python - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_kv_cache_v2_nixl_python - accuracy/test_disaggregated_serving.py::TestGPTOSS::test_kv_cache_v2_nixl_python[cache_mgr_v1] - accuracy/test_disaggregated_serving.py::TestGPTOSS::test_kv_cache_v2_nixl_python[cache_mgr_v2] diff --git a/tests/integration/test_lists/test-db/l0_dgx_h100.yml b/tests/integration/test_lists/test-db/l0_dgx_h100.yml index 61dc0d8cbe44..5ad44bae3ef9 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_h100.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_h100.yml @@ -35,7 +35,7 @@ l0_dgx_h100: - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_auto_dtype[False-False] - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_chunked_prefill - accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_nixl_backend - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_kv_cache_v2_nixl_python + - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ngram - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_kv_cache_v2_nixl_python - accuracy/test_disaggregated_serving.py::TestGemma3_1BInstruct::test_auto_dtype[False] @@ -217,7 +217,6 @@ l0_dgx_h100: - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_mpi[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_ucx[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_nixl[DeepSeek-V3-Lite-fp8] - - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_attention_dp[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_attention_dp_overlap[DeepSeek-V3-Lite-fp8] - disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_attention_dp_one[DeepSeek-V3-Lite-fp8] diff --git a/tests/integration/test_lists/test-db/l0_dgx_h200.yml b/tests/integration/test_lists/test-db/l0_dgx_h200.yml index 2590c7f90b12..3b40b905220b 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_h200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_h200.yml @@ -27,6 +27,10 @@ l0_dgx_h200: - accuracy/test_llm_api_pytorch.py::TestNemotronV3Super::test_nvfp4_marlin_multi_gpus[tp_size=8] - accuracy/test_llm_api_pytorch.py::TestNemotronV3Super::test_nvfp4_marlin_adp_4gpus[mtp_nextn=3] - accuracy/test_llm_api_pytorch.py::TestNemotronV3Ultra::test_nvfp4_marlin_8gpus + - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=True] + - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=0-overlap_scheduler=False] + - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] + - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[GSM8K-tp2pp2] - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[MMLU-tp2pp2] - accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ctx_pp_gen_tp_asymmetric[GSM8K-gen_tp=1-ctx_pp=4] diff --git a/tests/integration/test_lists/waives.txt b/tests/integration/test_lists/waives.txt index 45d946d4a64d..10ae45ef3147 100644 --- a/tests/integration/test_lists/waives.txt +++ b/tests/integration/test_lists/waives.txt @@ -256,6 +256,8 @@ full:GB300/accuracy/test_llm_api_pytorch_multimodal.py::TestGemma3_27BInstruct:: full:GB300/accuracy/test_llm_api_pytorch_multimodal.py::TestQwen3_5_35B_A3B_VL::test_fp8_prequantized SKIP (https://nvbugs/6526429) full:GB300/perf/test_perf_sanity.py::test_e2e[disagg_upload-gen_only-gb300_kimi-k25-thinking-fp4_8k1k_con4_ctx1_dep4_gen1_tep8_eplb0_mtp3_ccb-NIXL] SKIP (https://nvbugs/6572464) full:GB300/test_e2e.py::test_qwen_e2e_cpprunner_large_new_tokens[DeepSeek-R1-Distill-Qwen-1.5B-DeepSeek-R1-Distill-Qwen-1.5B] SKIP (https://nvbugs/6414760) +full:H100/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] SKIP (https://nvbugs/6313072) +full:H100/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] SKIP (https://nvbugs/6313072) full:H100/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=False] SKIP (https://nvbugs/6422343) full:H100/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=True] SKIP (https://nvbugs/6422343) full:H100/accuracy/test_llm_api_pytorch.py::TestGPTOSS::test_dummy_load_format SKIP (https://nvbugs/6528834) @@ -270,6 +272,8 @@ full:H100/disaggregated/test_disaggregated.py::test_disaggregated_mixed_stress_t full:H100/disaggregated/test_disaggregated.py::test_disaggregated_stress_test[input8k-output1k-conc512-qwen3_32b_fp8_stress] SKIP (https://nvbugs/6312828) full:H100/test_e2e.py::test_qwen_e2e_cpprunner_large_new_tokens[DeepSeek-R1-Distill-Qwen-1.5B-DeepSeek-R1-Distill-Qwen-1.5B] SKIP (https://nvbugs/6414760) full:H100_PCIe/unittest/llmapi/test_llm_pytorch.py::test_llama_7b_multi_lora_evict_and_reload_lora_gpu_cache SKIP (https://nvbugs/5682551) +full:H20/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=False] SKIP (https://nvbugs/6345827) +full:H20/accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_nextn=2-overlap_scheduler=True] SKIP (https://nvbugs/6345827) full:H20/accuracy/test_epd_disagg_multimodal.py::TestVideoMMEEPD::test_disaggregated_videomme[nemotron_nano_v3_omni_fp8] SKIP (https://nvbugs/6327718) full:H20/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=False] SKIP (https://nvbugs/6422343) full:H20/accuracy/test_llm_api_pytorch.py::TestDeepSeekV3Lite::test_bfloat16[mtp_nextn=2-attention_dp=True-cuda_graph=True-overlap_scheduler=True-torch_compile=True-enable_chunked_prefill=True-v2_kv_cache=True] SKIP (https://nvbugs/6422343) From 6bfac7e6ec69ae6a15df3f497b75c547996d3cfa Mon Sep 17 00:00:00 2001 From: Asfiya Baig Date: Tue, 11 Aug 2026 10:18:36 -0700 Subject: [PATCH 3/3] address changes Signed-off-by: Asfiya Baig --- .../disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml | 3 ++- tests/integration/test_lists/test-db/l0_dgx_b200.yml | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml index 2ee6d65e5e0d..cac082658104 100644 --- a/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml +++ b/tests/integration/defs/disaggregated/test_configs/disagg_config_ctxtp1_gentp1_deepseek_v3_lite_ucx.yaml @@ -1,7 +1,8 @@ hostname: localhost model: DeepSeek-V3-Lite/fp8 -free_gpu_memory_fraction: 0.25 +free_gpu_memory_fraction: 0.1 backend: pytorch +cuda_graph_config: null disable_overlap_scheduler: true context_servers: num_instances: 1 diff --git a/tests/integration/test_lists/test-db/l0_dgx_b200.yml b/tests/integration/test_lists/test-db/l0_dgx_b200.yml index 9f4a974e2a2b..7d3f1941092d 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_b200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_b200.yml @@ -17,7 +17,6 @@ l0_dgx_b200: tests: - unittest/_torch/misc/test_autotuner.py::test_autotuner_distributed_strategy - accuracy/test_llm_api_pytorch.py::TestQwen3_5_35B_A3B::test_bf16[tp2-TRTLLM] - - accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_gen_only_sync # ------------- KV Cache V2 Scheduler IT (multi-GPU) --------------- - kv_cache/test_kv_cache_v2_scheduler.py::TestKVCacheV2DSv3Lite::test_mtp_draft_tokens - kv_cache/test_kv_cache_v2_scheduler.py::TestKVCacheV2DSv3Lite::test_mtp_chunked_draft_tokens