From 3f2783528666dedf1a0e1ca0af14927cf0ebb337 Mon Sep 17 00:00:00 2001 From: Bo Deng Date: Fri, 14 Aug 2026 07:06:43 +0000 Subject: [PATCH 1/4] [None][test] Consolidate ssm dis-agg E2E Tests Signed-off-by: Bo Deng --- .../defs/accuracy/test_disaggregated_serving.py | 10 ++++------ tests/integration/test_lists/qa/llm_function_core.txt | 4 +--- tests/integration/test_lists/test-db/l0_dgx_b200.yml | 4 +--- tests/integration/test_lists/waives.txt | 4 ---- 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/tests/integration/defs/accuracy/test_disaggregated_serving.py b/tests/integration/defs/accuracy/test_disaggregated_serving.py index 6b0438f45379..1c893a7dc2ad 100644 --- a/tests/integration/defs/accuracy/test_disaggregated_serving.py +++ b/tests/integration/defs/accuracy/test_disaggregated_serving.py @@ -2204,14 +2204,12 @@ def _make_configs(self, use_py_transceiver: bool = False): @pytest.mark.parametrize( "mtp_nextn,block_reuse,use_py_transceiver", [ - (0, False, False), (0, False, True), - (3, True, False), + (3, True, True), ], ids=[ - "mtp_nextn=0-block_reuse=False-use_py_transceiver=False", "mtp_nextn=0-block_reuse=False-use_py_transceiver=True", - "mtp_nextn=3-block_reuse=True-use_py_transceiver=False", + "mtp_nextn=3-block_reuse=True-use_py_transceiver=True", ], ) def test_auto_dtype(self, mtp_nextn, block_reuse, use_py_transceiver): @@ -2233,7 +2231,7 @@ def test_auto_dtype(self, mtp_nextn, block_reuse, use_py_transceiver): @pytest.mark.skip_less_device(8) def test_ctx_dp2_gen_tp4(self): ctx_cfg, gen_cfg, disagg_cfg = self._make_configs( - use_py_transceiver=False) + use_py_transceiver=True) # corner case: max_batch_size = 1 + dp for ctx to check if dp dummy requests are handled correctly ctx_cfg["max_batch_size"] = 1 ctx_cfg["enable_attention_dp"] = True @@ -2315,7 +2313,7 @@ def _make_configs(self, use_py_transceiver: bool): return ctx_server_config, gen_server_config, disaggregated_server_config @pytest.mark.skip_less_device(8) - @parametrize_with_ids("use_py_transceiver", [True, False]) + @parametrize_with_ids("use_py_transceiver", [True]) def test_auto_dtype(self, use_py_transceiver, mocker): mocker.patch.object(GSM8K, "MAX_OUTPUT_LEN", 512) ctx_cfg, gen_cfg, disagg_cfg = self._make_configs(use_py_transceiver) diff --git a/tests/integration/test_lists/qa/llm_function_core.txt b/tests/integration/test_lists/qa/llm_function_core.txt index 57c39a9acea2..eea209f66fdc 100644 --- a/tests/integration/test_lists/qa/llm_function_core.txt +++ b/tests/integration/test_lists/qa/llm_function_core.txt @@ -51,11 +51,9 @@ accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symm accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[MMLU-tp1pp2] accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[MMLU-tp2pp1] accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[MMLU-tp2pp2] -accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=0-block_reuse=False-use_py_transceiver=False] accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=0-block_reuse=False-use_py_transceiver=True] -accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=3-block_reuse=True-use_py_transceiver=False] +accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=3-block_reuse=True-use_py_transceiver=True] accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_ctx_dp2_gen_tp4 -accuracy/test_disaggregated_serving.py::TestQwen3NextInstruct::test_auto_dtype[use_py_transceiver=False] accuracy/test_disaggregated_serving.py::TestQwen3NextInstruct::test_auto_dtype[use_py_transceiver=True] accuracy/test_disaggregated_serving.py::TestQwen3_30B_A3B::test_mixed_ctx_gen_model[ctxpp2gentp2] accuracy/test_disaggregated_serving.py::TestQwen3_8B::test_auto_dtype[False-False] 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 884eb3e26bbf..4d797d91dcf6 100644 --- a/tests/integration/test_lists/test-db/l0_dgx_b200.yml +++ b/tests/integration/test_lists/test-db/l0_dgx_b200.yml @@ -194,8 +194,7 @@ l0_dgx_b200: - accuracy/test_llm_api_pytorch.py::TestNemotronV3Ultra::test_nvfp4_8gpus[attention_dp_on-cutedsl] TIMEOUT (60) - accuracy/test_llm_api_pytorch.py::TestNemotronV3Ultra::test_nvfp4_8gpus[attention_dp_off-trtllm] TIMEOUT (60) - accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=0-block_reuse=False-use_py_transceiver=True] TIMEOUT (60) - - accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=3-block_reuse=True-use_py_transceiver=False] TIMEOUT (60) - - accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=0-block_reuse=False-use_py_transceiver=False] TIMEOUT (60) + - accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=3-block_reuse=True-use_py_transceiver=True] TIMEOUT (60) - accuracy/test_disaggregated_serving.py::TestGLM52NVFP4::test_nvfp4_nixl[cache_mgr_v1] TIMEOUT (60) # DeepSeek-V4 EPLB pre-merge sanity (uncomment once DeepSeek-V4-Flash/Flash-Base # checkpoints are staged under llm_models_root()). @@ -203,7 +202,6 @@ l0_dgx_b200: # - accuracy/test_llm_api_pytorch.py::TestDeepSeekV4FlashBase::test_fp8_4gpus_static_eplb[moe_backend=DEEPGEMM] TIMEOUT (120) - accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_ctx_dp2_gen_tp4 TIMEOUT (60) - accuracy/test_disaggregated_serving.py::TestQwen3NextInstruct::test_auto_dtype[use_py_transceiver=True] TIMEOUT (60) - - accuracy/test_disaggregated_serving.py::TestQwen3NextInstruct::test_auto_dtype[use_py_transceiver=False] TIMEOUT (60) # ------------- VisualGen multi-GPU tests --------------- - unittest/_torch/visual_gen/multi_gpu/test_attn2d_attention.py - unittest/_torch/visual_gen/multi_gpu/test_cosmos3_transformer_parallel.py diff --git a/tests/integration/test_lists/waives.txt b/tests/integration/test_lists/waives.txt index 8b93cad9a6aa..d4da2c991b16 100644 --- a/tests/integration/test_lists/waives.txt +++ b/tests/integration/test_lists/waives.txt @@ -8,10 +8,6 @@ accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symm accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[GSM8K-tp2pp2] SKIP (https://nvbugs/6428069) accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[MMLU-tp2pp1] SKIP (https://nvbugs/6611817) accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_tp_pp_symmetric[MMLU-tp2pp2] SKIP (https://nvbugs/6428069) -accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=0-block_reuse=False-use_py_transceiver=True] SKIP (https://nvbugs/6644482) -accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_auto_dtype[mtp_nextn=3-block_reuse=True-use_py_transceiver=False] SKIP (https://nvbugs/6561563) -accuracy/test_disaggregated_serving.py::TestNemotron3Super120B::test_ctx_dp2_gen_tp4 SKIP (https://nvbugs/6577550) -accuracy/test_disaggregated_serving.py::TestQwen3NextInstruct::test_auto_dtype[use_py_transceiver=False] SKIP (https://nvbugs/6535790) accuracy/test_disaggregated_serving.py::TestQwen3_30B_A3B::test_mixed_ctx_gen_model[ctxpp2gentp2] SKIP (https://nvbugs/5748664) accuracy/test_dwdp_aggregated.py::TestDwdpAggDeepSeekV3Lite::test_dwdp_agg_accuracy[mode_a_uniform_contention_opt] SKIP (https://nvbugs/6644489) accuracy/test_llm_api_autodeploy.py::TestNemotronNanoV3::test_accuracy[nvfp4-4-attn_dp_off-trtllm] SKIP (https://nvbugs/6367792) From 88b8ac4367e3016d5450ee92bf164f8c5d84184b Mon Sep 17 00:00:00 2001 From: Bo Deng Date: Mon, 17 Aug 2026 06:57:02 +0000 Subject: [PATCH 2/4] fix Signed-off-by: Bo Deng --- tests/integration/defs/accuracy/test_disaggregated_serving.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/tests/integration/defs/accuracy/test_disaggregated_serving.py b/tests/integration/defs/accuracy/test_disaggregated_serving.py index 1c893a7dc2ad..569394a9b89b 100644 --- a/tests/integration/defs/accuracy/test_disaggregated_serving.py +++ b/tests/integration/defs/accuracy/test_disaggregated_serving.py @@ -2213,9 +2213,6 @@ def _make_configs(self, use_py_transceiver: bool = False): ], ) def test_auto_dtype(self, mtp_nextn, block_reuse, use_py_transceiver): - if use_py_transceiver and block_reuse: - pytest.skip("Python transceiver does not support block reuse") - ctx_cfg, gen_cfg, disagg_cfg = self._make_configs(use_py_transceiver) if mtp_nextn > 0: spec = {"decoding_type": "MTP", "max_draft_len": mtp_nextn} From 609fce890e9ef54c1a8075a405fee163e2522580 Mon Sep 17 00:00:00 2001 From: Bo Deng Date: Mon, 24 Aug 2026 05:47:21 +0000 Subject: [PATCH 3/4] fix test def Signed-off-by: Bo Deng --- tests/integration/defs/accuracy/test_disaggregated_serving.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/integration/defs/accuracy/test_disaggregated_serving.py b/tests/integration/defs/accuracy/test_disaggregated_serving.py index 569394a9b89b..f3f0ba018d5d 100644 --- a/tests/integration/defs/accuracy/test_disaggregated_serving.py +++ b/tests/integration/defs/accuracy/test_disaggregated_serving.py @@ -2221,6 +2221,10 @@ def test_auto_dtype(self, mtp_nextn, block_reuse, use_py_transceiver): if block_reuse: ctx_cfg["kv_cache_config"]["enable_block_reuse"] = True gen_cfg["kv_cache_config"]["enable_block_reuse"] = True + ctx_cfg["kv_cache_config"]["mamba_state_config"][ + "periodic_snapshot_interval"] = 256 + gen_cfg["kv_cache_config"]["mamba_state_config"][ + "periodic_snapshot_interval"] = 256 with launch_disaggregated_llm(disagg_cfg, ctx_cfg, gen_cfg, self.MODEL_PATH) as llm: run_accuracy_test(llm, self.MODEL_NAME, ["GSM8K"]) From 7915a21dfbdf2eb70749438afc1b1411a3e4cb8f Mon Sep 17 00:00:00 2001 From: Bo Deng Date: Tue, 25 Aug 2026 02:18:20 +0000 Subject: [PATCH 4/4] fix test def Signed-off-by: Bo Deng --- .../defs/accuracy/test_disaggregated_serving.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tests/integration/defs/accuracy/test_disaggregated_serving.py b/tests/integration/defs/accuracy/test_disaggregated_serving.py index f3f0ba018d5d..dc32e3679380 100644 --- a/tests/integration/defs/accuracy/test_disaggregated_serving.py +++ b/tests/integration/defs/accuracy/test_disaggregated_serving.py @@ -2221,10 +2221,12 @@ def test_auto_dtype(self, mtp_nextn, block_reuse, use_py_transceiver): if block_reuse: ctx_cfg["kv_cache_config"]["enable_block_reuse"] = True gen_cfg["kv_cache_config"]["enable_block_reuse"] = True - ctx_cfg["kv_cache_config"]["mamba_state_config"][ - "periodic_snapshot_interval"] = 256 - gen_cfg["kv_cache_config"]["mamba_state_config"][ - "periodic_snapshot_interval"] = 256 + ctx_cfg["kv_cache_config"]["mamba_state_config"] = { + "periodic_snapshot_interval": 256 + } + gen_cfg["kv_cache_config"]["mamba_state_config"] = { + "periodic_snapshot_interval": 256 + } with launch_disaggregated_llm(disagg_cfg, ctx_cfg, gen_cfg, self.MODEL_PATH) as llm: run_accuracy_test(llm, self.MODEL_NAME, ["GSM8K"])