Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 16 additions & 60 deletions tests/integration/defs/accuracy/test_disaggregated_serving.py
Original file line number Diff line number Diff line change
Expand Up @@ -591,15 +591,13 @@ class TestLlama3_1_8BInstruct(LlmapiAccuracyTestHarness):

@skip_pre_hopper
@pytest.mark.skip_less_device(2)
@pytest.mark.parametrize("ctx_disable_overlap_scheduler", [False, True])
@pytest.mark.parametrize("gen_disable_overlap_scheduler", [False, True])
@pytest.mark.parametrize("ctx_enable_block_reuse", [True, False])
@pytest.mark.parametrize("gen_enable_block_reuse", [True, False])
def test_auto_dtype(self, ctx_disable_overlap_scheduler,
gen_disable_overlap_scheduler, ctx_enable_block_reuse,
gen_enable_block_reuse):
# overlap scheduler is token-invariant (unit-tested); only block-reuse changes which KV is transferred
@pytest.mark.parametrize("ctx_enable_block_reuse,gen_enable_block_reuse",
[(True, True), (False, False)],
ids=["block_reuse", "no_block_reuse"])
def test_auto_dtype(self, ctx_enable_block_reuse, gen_enable_block_reuse):
ctx_server_config = {
"disable_overlap_scheduler": ctx_disable_overlap_scheduler,
"disable_overlap_scheduler": False,
"kv_cache_config": {
"enable_block_reuse": ctx_enable_block_reuse
}
Expand All @@ -609,7 +607,7 @@ def test_auto_dtype(self, ctx_disable_overlap_scheduler,
"max_tokens_in_buffer": 4096
}
gen_server_config = {
"disable_overlap_scheduler": gen_disable_overlap_scheduler,
"disable_overlap_scheduler": False,
"kv_cache_config": {
"enable_block_reuse": gen_enable_block_reuse
}
Expand Down Expand Up @@ -681,50 +679,6 @@ def test_beam_search(self):
extra_acc_spec=f"beam_width={max_beam_width}",
sampling_params=sampling_params)

@skip_pre_hopper
@pytest.mark.skip_less_device(2)
def test_kv_cache_v2_nixl_python(self):
"""Test with use_kv_cache_manager_v2=True, block_reuse=False, backend=NIXL, transceiver_runtime=PYTHON."""
ctx_server_config = {
"disable_overlap_scheduler": True,
"kv_cache_config": {
"enable_block_reuse": False,
"use_kv_cache_manager_v2": True
},
"cache_transceiver_config": {
"backend": "NIXL",
"transceiver_runtime": "PYTHON"
}
}
gen_server_config = {
"disable_overlap_scheduler": False,
"kv_cache_config": {
"enable_block_reuse": False,
"use_kv_cache_manager_v2": True
},
"cache_transceiver_config": {
"backend": "NIXL",
"transceiver_runtime": "PYTHON"
}
}
disaggregated_server_config = {
"hostname": "localhost",
"port": 8000,
"backend": "pytorch",
"context_servers": {
"num_instances": 1,
"urls": ["localhost:8001"]
},
"generation_servers": {
"num_instances": 1,
"urls": ["localhost:8002"]
}
}
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"])

@pytest.mark.skip_less_device(2)
def test_ngram(self):
speculative_decoding_config = {
Expand Down Expand Up @@ -888,7 +842,8 @@ def test_gen_only_spec_dec(self):

@pytest.mark.skip_less_device(2)
@pytest.mark.skip_less_device_memory(32000)
@pytest.mark.parametrize("backend", ["xgrammar", "llguidance"])
# grammar backend is disagg-agnostic (runs on gen worker); backend correctness is covered by aggregated tests
@pytest.mark.parametrize("backend", ["xgrammar"])
def test_guided_decoding(self, backend: str, mocker):
mocker.patch.dict(os.environ, {"TRTLLM_XGUIDANCE_LENIENT": "1"})
ctx_server_config = {
Expand Down Expand Up @@ -1233,7 +1188,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": "UCX",
"backend": "DEFAULT",

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.

Quick question: DEFAULT still resolves to UCX here because launch_disaggregated_llm sets TRTLLM_USE_UCX_KVCACHE=1 for any backend other than NIXL. Is the intent only to remove explicit per-test UCX pinning while retaining UCX as the harness default, or should these tests eventually exercise NIXL?

"max_tokens_in_buffer": 8192,
},
}
Expand All @@ -1253,7 +1208,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": "UCX",
"backend": "DEFAULT",
"max_tokens_in_buffer": 8192,
},
"enable_attention_dp": enable_attention_dp,
Expand All @@ -1276,7 +1231,8 @@ def test_auto_dtype_with_helix(self, comms_medium, cuda_graph_config,
@pytest.mark.skip_less_device(2)
@pytest.mark.skip_less_device_memory(60000)
@parametrize_with_ids("mtp_nextn", [0, 2])
@pytest.mark.parametrize("backend", ["xgrammar", "llguidance"])
# grammar backend is disagg-agnostic (runs on gen worker); backend correctness is covered by aggregated tests
@pytest.mark.parametrize("backend", ["xgrammar"])
def test_guided_decoding(self, backend: str, mtp_nextn: int, mocker):
mocker.patch.dict(os.environ, {"TRTLLM_XGUIDANCE_LENIENT": "1"})
ctx_server_config = {
Expand Down Expand Up @@ -1875,7 +1831,7 @@ def _test_chunked_prefill_helper(self, *, ctx_pp: int):
"disable_overlap_scheduler": True,
"cuda_graph_config": None,
"cache_transceiver_config": {
"backend": "UCX",
"backend": "DEFAULT",
"max_tokens_in_buffer": 4096
},
"enable_chunked_prefill": True,
Expand All @@ -1886,7 +1842,7 @@ def _test_chunked_prefill_helper(self, *, ctx_pp: int):
gen_server_config = {
"cuda_graph_config": None,
"cache_transceiver_config": {
"backend": "UCX",
"backend": "DEFAULT",
"max_tokens_in_buffer": 4096
},
"max_batch_size": max_batch_size,
Expand Down Expand Up @@ -1947,7 +1903,7 @@ def test_auto_dtype_with_helix(self, comms_medium, cuda_graph_config,
"tokens_per_block": 32,
}
cache_transceiver_config = {
"backend": "UCX",
"backend": "DEFAULT",
"max_tokens_in_buffer": 8192,
}
ctx_server_config = {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ context_servers:
tensor_parallel_size: 2
pipeline_parallel_size: 1
cache_transceiver_config:
backend: UCX
backend: DEFAULT
generation_servers:
num_instances: 1
tensor_parallel_size: 2
pipeline_parallel_size: 1
cache_transceiver_config:
backend: UCX
backend: DEFAULT
51 changes: 3 additions & 48 deletions tests/integration/defs/disaggregated/test_disaggregated.py
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,6 @@ 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":
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":
Expand Down Expand Up @@ -360,8 +358,8 @@ def get_test_config(test_desc, example_dir, test_root):
f"{test_configs_root}/disagg_config_cancel_stress_test.yaml",
"cancel_stress_test_large":
f"{test_configs_root}/disagg_config_cancel_stress_test_large.yaml",
"llama31_8b_ucx":
f"{test_configs_root}/disagg_config_ctxtp2_gentp2_llama31_8b_ucx.yaml",
"llama31_8b":
f"{test_configs_root}/disagg_config_ctxtp2_gentp2_llama31_8b.yaml",
"mamba_conc_greater_than_mbs":
f"{test_configs_root}/disagg_config_mamba_conc_greater_than_mbs.yaml",
}
Expand Down Expand Up @@ -1853,28 +1851,6 @@ def test_disaggregated_deepseek_v3_lite_fp8_ctxtp2ep2pp2_gentp4_one_mtp_block_re
cwd=llm_venv.get_working_directory())


@skip_no_hopper
@skip_arm
@pytest.mark.skip_less_device(4)
@pytest.mark.parametrize("deepseek_v3_model_root", ['DeepSeek-V3-Lite-fp8'],
indirect=True)
def test_disaggregated_deepseek_v3_lite_fp8_ucx(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["TRTLLM_USE_UCX_KVCACHE"] = "1"
env["UCX_TLS"] = get_ucx_tls()
run_disaggregated_test(disaggregated_example_root,
"deepseek_v3_lite_fp8_ucx",
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'],
Expand Down Expand Up @@ -1915,26 +1891,6 @@ def test_disaggregated_deepseek_v3_lite_fp8_transceiver_runtime_python(
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_ucx_tp1_single_gpu(
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["TRTLLM_USE_UCX_KVCACHE"] = "1"
env["UCX_TLS"] = get_ucx_tls()

run_disaggregated_test(disaggregated_example_root,
"deepseek_v3_lite_fp8_tp1",
env=env,
model_path=deepseek_v3_model_root,
cwd=llm_venv.get_working_directory())


@skip_no_hopper
@pytest.mark.skip_less_device(4)
@pytest.mark.parametrize("deepseek_v3_model_root", ['DeepSeek-V3-Lite-fp8'],
Expand Down Expand Up @@ -3811,11 +3767,10 @@ def extract_logprobs(result, api_type):
setup_model_symlink(llm_venv, llama_model_root,
"llama-3.1-model/Llama-3.1-8B-Instruct")

config_file = get_test_config("llama31_8b_ucx", disaggregated_example_root,
config_file = get_test_config("llama31_8b", disaggregated_example_root,
os.path.dirname(__file__))

env = llm_venv._new_env.copy()
env["TRTLLM_USE_UCX_KVCACHE"] = "1"
env["UCX_TLS"] = get_ucx_tls()
ctx_workers, gen_workers, disagg_server, work_dir = [], [], None, None
config, ctx_workers, gen_workers, disagg_server, server_port, work_dir = \
Expand Down
25 changes: 2 additions & 23 deletions tests/integration/test_lists/qa/llm_function_core.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_
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_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
Expand All @@ -24,22 +22,8 @@ accuracy/test_disaggregated_serving.py::TestGPTOSS::test_kv_cache_v2_nixl_python
accuracy/test_disaggregated_serving.py::TestGPTOSS::test_kv_cache_v2_nixl_python[cache_mgr_v2]
accuracy/test_disaggregated_serving.py::TestGLM52NVFP4::test_nvfp4_nixl_python[cache_mgr_v1]
accuracy/test_disaggregated_serving.py::TestKimiK25::test_nvfp4
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-False-False-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-False-False-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-False-True-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-False-True-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-True-False-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-True-False-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-True-True-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[False-True-True-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-False-False-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-False-False-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-False-True-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-False-True-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-True-False-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-True-False-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-True-True-False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[True-True-True-True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[block_reuse]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_auto_dtype[no_block_reuse]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ctx_pp_gen_tp_asymmetric[GSM8K-gen_tp=1-ctx_pp=2]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ctx_pp_gen_tp_asymmetric[GSM8K-gen_tp=1-ctx_pp=4]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ctx_pp_gen_tp_asymmetric[GSM8K-gen_tp=2-ctx_pp=2]
Expand All @@ -50,13 +34,11 @@ accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ctx_pp_gen
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ctx_pp_gen_tp_asymmetric[MMLU-gen_tp=2-ctx_pp=4]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_eagle3[eagle3_one_model=False-overlap_scheduler=False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_eagle3[eagle3_one_model=True-overlap_scheduler=True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_guided_decoding[llguidance]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_guided_decoding[xgrammar]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_guided_decoding_with_eagle3[llguidance-eagle3_one_model=False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_guided_decoding_with_eagle3[llguidance-eagle3_one_model=True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_guided_decoding_with_eagle3[xgrammar-eagle3_one_model=False]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_guided_decoding_with_eagle3[xgrammar-eagle3_one_model=True]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_kv_cache_v2_nixl_python
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_multi_instance[GSM8K]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_multi_instance[MMLU]
accuracy/test_disaggregated_serving.py::TestLlama3_1_8BInstruct::test_ngram
Expand Down Expand Up @@ -872,14 +854,11 @@ disaggregated/test_disaggregated.py::test_disaggregated_deepseek_v3_lite_fp8_tp1
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]
disaggregated/test_disaggregated.py::test_disaggregated_genbs1[TinyLlama-1.1B-Chat-v1.0]
disaggregated/test_disaggregated.py::test_disaggregated_gpt_oss_120b_harmony[gpt_oss/gpt-oss-120b]
disaggregated/test_disaggregated.py::test_disaggregated_kv_cache_time_output[TinyLlama-1.1B-Chat-v1.0]
disaggregated/test_disaggregated.py::test_disaggregated_load_balance[TinyLlama-1.1B-Chat-v1.0]
disaggregated/test_disaggregated.py::test_disaggregated_logprobs_serving[llama-3.1-8b-instruct]
disaggregated/test_disaggregated.py::test_disaggregated_mixed[TinyLlama-1.1B-Chat-v1.0]
disaggregated/test_disaggregated.py::test_disaggregated_multi_gpu[TinyLlama-1.1B-Chat-v1.0]
disaggregated/test_disaggregated.py::test_disaggregated_ngram[TinyLlama-1.1B-Chat-v1.0]
Expand Down
2 changes: 0 additions & 2 deletions tests/integration/test_lists/qa/llm_function_rtx6k.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_auto_dtype[mtp_
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]
accuracy/test_disaggregated_serving.py::TestDeepSeekV3Lite::test_guided_decoding[xgrammar-mtp_nextn=2]
accuracy/test_disaggregated_serving.py::TestGPTOSS::test_auto_dtype[False]
Expand Down
1 change: 0 additions & 1 deletion tests/integration/test_lists/test-db/l0_dgx_b200.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ l0_dgx_b200:
- accuracy/test_llm_api_pytorch.py::TestQwen3_5_397B_A17B::test_nvfp4_4gpus_static_eplb[moe_backend=CUTEDSL]
- accuracy/test_llm_api_pytorch.py::TestQwen3_5_397B_A17B::test_nvfp4_4gpus_static_eplb[moe_backend=TRTLLM]
- accuracy/test_llm_api_pytorch.py::TestQwen3_30B_A3B::test_nvfp4[tep4_latency_moe_trtllm-torch_compile=True]
- 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_gpt_oss_120b_harmony[gpt_oss/gpt-oss-120b]
- accuracy/test_llm_api_pytorch.py::TestDeepSeekR1::test_nvfp4_multi_gpus[latency_adp_lmtp_tp4]
Expand Down
Loading
Loading