From 303e61e02a831baa94a5d802a5f5285880d9e674 Mon Sep 17 00:00:00 2001 From: chenfeiz0326 <203214996+chenfeiz0326@users.noreply.github.com> Date: Sun, 25 Oct 2026 08:06:25 -0700 Subject: [PATCH] [https://nvbugs/6826000][fix] Size the DeepSeek-V4-Pro AgentX ctx KV pools for the compressed history The ctx servers of both DeepSeek-V4-Pro DSpark AgentX e2e lanes split their KV cache 0.55 / 0.22 / 0.23 over the DeepSeek-V4 life cycles: the SWA windows, the compressed history with the indexer keys, and the compressor state windows. With per_conversation reuse only the history grows with the retained conversations, so its pools filled and dropped cached prefixes while ~150 GiB per rank of the windowed host pools stayed unused. Attention-DP ranks whose queue wait outlived that short retention re-prefilled every waiting prompt and stayed collapsed; each run collapsed a random 8-10 of 16 ranks (con1156: 6.90-7.70 req/s, CV 4.8 %). Give the history 64 % of the pools. con1156 over four node sets: 29.97-30.41 req/s (CV 0.7 %), prefix reuse 85 % -> 95 %, no collapsed rank. Signed-off-by: chenfeiz0326 <203214996+chenfeiz0326@users.noreply.github.com> --- ..._con1156_ctx2_dep8_gen1_dep8_eplb0_dspark3_ccb-NIXL.yaml | 6 +++++- ...con1456_ctx3_dep8_gen1_dep16_eplb0_dspark5_ccb-NIXL.yaml | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1156_ctx2_dep8_gen1_dep8_eplb0_dspark3_ccb-NIXL.yaml b/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1156_ctx2_dep8_gen1_dep8_eplb0_dspark3_ccb-NIXL.yaml index 63dfd8b70166..0999a242dc14 100644 --- a/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1156_ctx2_dep8_gen1_dep8_eplb0_dspark3_ccb-NIXL.yaml +++ b/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1156_ctx2_dep8_gen1_dep8_eplb0_dspark3_ccb-NIXL.yaml @@ -114,7 +114,11 @@ worker_config: block_reuse_config: policy: per_conversation max_num_turns: 5 - pool_ratio: [0.55, 0.22, 0.23] + # DeepSeek-V4 KV cache manager v2 life cycles, in order: SWA windows, the compressed + # history with the indexer keys, compressor state windows. With per_conversation + # reuse only the history grows with the retained conversations, so it takes most of + # the GPU and host pools. + pool_ratio: [0.18, 0.64, 0.18] host_cache_size: 193273528320 moe_config: backend: CUTEDSL diff --git a/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1456_ctx3_dep8_gen1_dep16_eplb0_dspark5_ccb-NIXL.yaml b/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1456_ctx3_dep8_gen1_dep16_eplb0_dspark5_ccb-NIXL.yaml index ddef64d8567e..f94a1aa283b3 100644 --- a/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1456_ctx3_dep8_gen1_dep16_eplb0_dspark5_ccb-NIXL.yaml +++ b/tests/scripts/perf-sanity/disaggregated/gb300_deepseek-v4-pro-dspark_agentx_con1456_ctx3_dep8_gen1_dep16_eplb0_dspark5_ccb-NIXL.yaml @@ -114,7 +114,11 @@ worker_config: block_reuse_config: policy: per_conversation max_num_turns: 5 - pool_ratio: [0.55, 0.22, 0.23] + # DeepSeek-V4 KV cache manager v2 life cycles, in order: SWA windows, the compressed + # history with the indexer keys, compressor state windows. With per_conversation + # reuse only the history grows with the retained conversations, so it takes most of + # the GPU and host pools. + pool_ratio: [0.18, 0.64, 0.18] host_cache_size: 193273528320 moe_config: backend: CUTEDSL