From 4bcefb7da5353a24ea2e37cfe17de1195210c865 Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:26:45 -0700 Subject: [PATCH 1/9] Update DSv4 TRT image for B200/B300 (non-MTP) to feat-deepseek_v4-2dd03e6 Bumps the TensorRT-LLM DeepSeek-V4-Pro image for dsv4-fp4-b200-trt and dsv4-fp4-b300-trt to ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6. The -mtp variants are intentionally left on feat-deepseek_v4-9aa3715. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/configs/nvidia-master.yaml | 4 ++-- perf-changelog.yaml | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/configs/nvidia-master.yaml b/.github/configs/nvidia-master.yaml index baa0b38a1..887f2fc0b 100644 --- a/.github/configs/nvidia-master.yaml +++ b/.github/configs/nvidia-master.yaml @@ -1801,7 +1801,7 @@ dsv4-fp4-b200-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [64, 128, 256] } dsv4-fp4-b200-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-9aa3715 + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b200-dsv4 @@ -3053,7 +3053,7 @@ dsv4-fp4-b300-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [128, 256, 512] } dsv4-fp4-b300-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-9aa3715 + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b300 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 263da4cfa..cb59c07eb 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3354,3 +3354,10 @@ description: - "Add MTP speculative-decoding sibling for dsv4-fp4-mi355x-vllm (model: deepseek-ai/DeepSeek-V4-Pro) on vllm/vllm-openai-rocm:v0.22.0, per vllm-project/vllm#43385" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1630 + +- config-keys: + - dsv4-fp4-b200-trt + - dsv4-fp4-b300-trt + description: + - "Update the TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6" + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXXX From 6b7558c481d00bdb0d005ccf481347ed8aff2a57 Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:27:13 -0700 Subject: [PATCH 2/9] Backfill PR number in changelog pr-link Co-Authored-By: Claude Opus 4.8 (1M context) --- perf-changelog.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/perf-changelog.yaml b/perf-changelog.yaml index cb59c07eb..28932a990 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3360,4 +3360,4 @@ - dsv4-fp4-b300-trt description: - "Update the TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6" - pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/XXXX + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636 From f441f9fbeb857f2c3cfd5066e83c71abeeef25e7 Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Mon, 1 Jun 2026 15:52:35 -0700 Subject: [PATCH 3/9] Try official TRT-LLM release image 1.3.0rc15.post1 for DSv4 B200/B300 (non-MTP) Swap dsv4-fp4-b200-trt and dsv4-fp4-b300-trt from the custom ghcr.io semianalysis feat/deepseek_v4 build to the official nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 to test whether the official RC can serve DeepSeek-V4-Pro. The -mtp variants are unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/configs/nvidia-master.yaml | 4 ++-- perf-changelog.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/configs/nvidia-master.yaml b/.github/configs/nvidia-master.yaml index 7f1ac486d..a3bfcc5ae 100644 --- a/.github/configs/nvidia-master.yaml +++ b/.github/configs/nvidia-master.yaml @@ -1801,7 +1801,7 @@ dsv4-fp4-b200-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [64, 128, 256] } dsv4-fp4-b200-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 + image: nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b200-dsv4 @@ -3049,7 +3049,7 @@ dsv4-fp4-b300-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [128, 256, 512] } dsv4-fp4-b300-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 + image: nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b300 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 8da6e5738..16ef3702f 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3372,5 +3372,5 @@ - dsv4-fp4-b200-trt - dsv4-fp4-b300-trt description: - - "Update the TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6" + - "Try the official NVIDIA TensorRT-LLM release image nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc15.post1 for DeepSeek-V4-Pro (replacing the custom feat/deepseek_v4 build) to see whether the official RC can serve DSv4-Pro" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636 From 4bc5592f8ef18c2ba8952c8f3b9a9020d439a225 Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Mon, 1 Jun 2026 23:47:28 -0700 Subject: [PATCH 4/9] Revert to custom feat/deepseek_v4-2dd03e6 image for DSv4 B200/B300 (non-MTP) The official nvcr.io tensorrt-llm/release:1.3.0rc15.post1 loads DSv4-Pro but its DP-attention path deadlocks/crashes under concurrent load (every dpa=true job hung or failed; only pure-TP conc-1 points passed). Revert to the stable custom build until upstream fixes DSv4 + attention-DP (NVIDIA/TensorRT-LLM#13431). Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/configs/nvidia-master.yaml | 4 ++-- perf-changelog.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/configs/nvidia-master.yaml b/.github/configs/nvidia-master.yaml index a3bfcc5ae..7f1ac486d 100644 --- a/.github/configs/nvidia-master.yaml +++ b/.github/configs/nvidia-master.yaml @@ -1801,7 +1801,7 @@ dsv4-fp4-b200-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [64, 128, 256] } dsv4-fp4-b200-trt: - image: nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b200-dsv4 @@ -3049,7 +3049,7 @@ dsv4-fp4-b300-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [128, 256, 512] } dsv4-fp4-b300-trt: - image: nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b300 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 16ef3702f..8da6e5738 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3372,5 +3372,5 @@ - dsv4-fp4-b200-trt - dsv4-fp4-b300-trt description: - - "Try the official NVIDIA TensorRT-LLM release image nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc15.post1 for DeepSeek-V4-Pro (replacing the custom feat/deepseek_v4 build) to see whether the official RC can serve DSv4-Pro" + - "Update the TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636 From 14a1bb32713c1b24741a987d3460bce6a45d7cda Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Tue, 2 Jun 2026 02:39:16 -0700 Subject: [PATCH 5/9] Point DSv4 B200/B300 TRT (non-MTP) at the SWA-scratch-fix image Bump dsv4-fp4-b200-trt and dsv4-fp4-b300-trt to ghcr.io#semianalysisai/trtllm-deepseek-v4:fix-dsv4-swa-scratch-revert-shrink-c914d6d (TRT-LLM feat/deepseek_v4 @ 084cf2ba + kv_cache_manager_v2 fix). This resolves the engine crash on attention-DP context/generation reverts at high concurrency (the b300 8k1k conc>=512 "LLM is shutting down" hang). The -mtp variants stay on feat-deepseek_v4-9aa3715. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/configs/nvidia-master.yaml | 4 ++-- perf-changelog.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/configs/nvidia-master.yaml b/.github/configs/nvidia-master.yaml index 87ebd7c2e..8dfac57b5 100644 --- a/.github/configs/nvidia-master.yaml +++ b/.github/configs/nvidia-master.yaml @@ -1801,7 +1801,7 @@ dsv4-fp4-b200-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [64, 128, 256] } dsv4-fp4-b200-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:fix-dsv4-swa-scratch-revert-shrink-c914d6d model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b200-dsv4 @@ -3049,7 +3049,7 @@ dsv4-fp4-b300-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [128, 256, 512] } dsv4-fp4-b300-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:fix-dsv4-swa-scratch-revert-shrink-c914d6d model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b300 diff --git a/perf-changelog.yaml b/perf-changelog.yaml index ddd6c84fc..ae99f0455 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3372,7 +3372,7 @@ - dsv4-fp4-b200-trt - dsv4-fp4-b300-trt description: - - "Update the TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6" + - "Update the TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:fix-dsv4-swa-scratch-revert-shrink-c914d6d (TRT-LLM feat/deepseek_v4 @ 084cf2ba + kv_cache_manager_v2 fix: free SWA scratch slots on shrink instead of asserting, which crashed the engine on attention-DP context/generation reverts at high concurrency, e.g. b300 8k1k conc>=512)" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636 - config-keys: From e23a5415c387e4c81bde634aaa926d8fdfdc0730 Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Tue, 2 Jun 2026 12:32:38 -0700 Subject: [PATCH 6/9] Revert DSv4 B200/B300 TRT (non-MTP) to 2dd03e6 + disable SWA scratch reuse The c914d6d image's kv_cache_manager_v2 patch was wrong: freeing SWA scratch slots on the attention-DP revert->resize(shrink) path hits finish_event=None (a deferred request never forwarded), crashing every dpa=true job and hanging the engine. Root cause is a V2-scheduler / SWA-scratch-reuse conflict: the V2 scheduler grows a context request's KV cache (incl. SWA scratch) before delay batching can defer it, so revert_allocate_context -> resize(shrink) must release scratch slots that have no finish_event. Revert both non-MTP images to feat-deepseek_v4-2dd03e6 and set TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 in the launchers so no scratch slots are allocated and the revert shrinks cleanly. MTP configs untouched (9aa3715). Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/configs/nvidia-master.yaml | 4 ++-- benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh | 7 +++++++ benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh | 7 +++++++ perf-changelog.yaml | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/.github/configs/nvidia-master.yaml b/.github/configs/nvidia-master.yaml index f3837a606..718f95196 100644 --- a/.github/configs/nvidia-master.yaml +++ b/.github/configs/nvidia-master.yaml @@ -1801,7 +1801,7 @@ dsv4-fp4-b200-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [64, 128, 256] } dsv4-fp4-b200-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:fix-dsv4-swa-scratch-revert-shrink-c914d6d + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b200-dsv4 @@ -3049,7 +3049,7 @@ dsv4-fp4-b300-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [128, 256, 512] } dsv4-fp4-b300-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:fix-dsv4-swa-scratch-revert-shrink-c914d6d + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b300 diff --git a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh index e4a24dea2..f2b19a8cb 100644 --- a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh +++ b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh @@ -47,6 +47,13 @@ sanitize_slurm_mpi_env_for_trtllm export NCCL_NVLS_ENABLE="${NCCL_NVLS_ENABLE:-0}" echo "NCCL_NVLS_ENABLE: $NCCL_NVLS_ENABLE" +# Disable DSv4 SWA scratch reuse: with attention-DP the V2 scheduler grows ctx KV +# (incl. SWA scratch) before delay batching defers a request, and the resulting +# revert_allocate_context -> resize(shrink) can't release the scratch of a +# never-forwarded request (no finish_event), crashing every dpa=true job. +export TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE="${TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE:-0}" +echo "TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE: $TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE" + if [[ "$MODEL" != /* ]]; then hf download "$MODEL" fi diff --git a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh index b0150e10d..3606c677f 100644 --- a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh +++ b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh @@ -59,6 +59,13 @@ sanitize_slurm_mpi_env_for_trtllm export NCCL_NVLS_ENABLE="${NCCL_NVLS_ENABLE:-0}" echo "NCCL_NVLS_ENABLE: $NCCL_NVLS_ENABLE" +# Disable DSv4 SWA scratch reuse: with attention-DP the V2 scheduler grows ctx KV +# (incl. SWA scratch) before delay batching defers a request, and the resulting +# revert_allocate_context -> resize(shrink) can't release the scratch of a +# never-forwarded request (no finish_event), crashing every dpa=true job. +export TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE="${TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE:-0}" +echo "TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE: $TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE" + nvidia-smi SERVER_LOG="$PWD/server.log" diff --git a/perf-changelog.yaml b/perf-changelog.yaml index a6258aee1..17d162518 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3382,7 +3382,7 @@ - dsv4-fp4-b200-trt - dsv4-fp4-b300-trt description: - - "Update the TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:fix-dsv4-swa-scratch-revert-shrink-c914d6d (TRT-LLM feat/deepseek_v4 @ 084cf2ba + kv_cache_manager_v2 fix: free SWA scratch slots on shrink instead of asserting, which crashed the engine on attention-DP context/generation reverts at high concurrency, e.g. b300 8k1k conc>=512)" + - "Revert the non-MTP TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 and disable DSv4 SWA scratch reuse via TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 in the launcher. Root cause of the prior attention-DP hangs/crashes: the V2 scheduler grows a context request's KV cache (incl. SWA scratch slots) before delay batching can defer it, so revert_allocate_context -> resize(shrink) must release scratch slots of a never-forwarded request, which has no finish_event -> crash on every dpa=true job. Disabling scratch reuse stops those slots from being allocated so the revert shrinks cleanly." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636 - config-keys: From 5adfeb34dde2db0107a848c4b473f56633725375 Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:04:49 -0700 Subject: [PATCH 7/9] Scope DSv4 TRT non-MTP change to B300 only B200 reverts to feat-deepseek_v4-9aa3715: the 2dd03e6 image OOMs on B200's smaller HBM at conc-256 once SWA scratch reuse is disabled. Only B300 moves to 2dd03e6 + TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 in its launcher. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/configs/nvidia-master.yaml | 2 +- benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh | 7 ------- perf-changelog.yaml | 3 +-- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/.github/configs/nvidia-master.yaml b/.github/configs/nvidia-master.yaml index f216c1848..836729dac 100644 --- a/.github/configs/nvidia-master.yaml +++ b/.github/configs/nvidia-master.yaml @@ -1801,7 +1801,7 @@ dsv4-fp4-b200-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [64, 128, 256] } dsv4-fp4-b200-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 + image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-9aa3715 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b200-dsv4 diff --git a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh index f2b19a8cb..e4a24dea2 100644 --- a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh +++ b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b200_trt.sh @@ -47,13 +47,6 @@ sanitize_slurm_mpi_env_for_trtllm export NCCL_NVLS_ENABLE="${NCCL_NVLS_ENABLE:-0}" echo "NCCL_NVLS_ENABLE: $NCCL_NVLS_ENABLE" -# Disable DSv4 SWA scratch reuse: with attention-DP the V2 scheduler grows ctx KV -# (incl. SWA scratch) before delay batching defers a request, and the resulting -# revert_allocate_context -> resize(shrink) can't release the scratch of a -# never-forwarded request (no finish_event), crashing every dpa=true job. -export TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE="${TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE:-0}" -echo "TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE: $TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE" - if [[ "$MODEL" != /* ]]; then hf download "$MODEL" fi diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 0fc1dd2c0..7f19fd14c 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3387,10 +3387,9 @@ pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1630 - config-keys: - - dsv4-fp4-b200-trt - dsv4-fp4-b300-trt description: - - "Revert the non-MTP TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 and disable DSv4 SWA scratch reuse via TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 in the launcher. Root cause of the prior attention-DP hangs/crashes: the V2 scheduler grows a context request's KV cache (incl. SWA scratch slots) before delay batching can defer it, so revert_allocate_context -> resize(shrink) must release scratch slots of a never-forwarded request, which has no finish_event -> crash on every dpa=true job. Disabling scratch reuse stops those slots from being allocated so the revert shrinks cleanly." + - "Update the non-MTP B300 TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 and disable DSv4 SWA scratch reuse via TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 in the B300 launcher. Without this, attention-DP (dpa=true) jobs hang/crash: the V2 scheduler grows a context request's KV cache (incl. SWA scratch slots) before delay batching can defer it, so revert_allocate_context -> resize(shrink) must release scratch slots of a never-forwarded request, which has no finish_event -> crash on every dpa=true job. Disabling scratch reuse stops those slots from being allocated so the revert shrinks cleanly. B200 stays on feat-deepseek_v4-9aa3715 for now (the 2dd03e6 image OOMs on B200's smaller HBM at conc-256 with scratch reuse disabled)." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636 - config-keys: From ad529fb8be1b526c5940641f8d0f1c4ab37ed1d0 Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Wed, 3 Jun 2026 14:29:26 -0700 Subject: [PATCH 8/9] Use official TRT-LLM image (1.3.0rc15.post1) for DSv4 B300 TRT (non-MTP + MTP) Point dsv4-fp4-b300-trt and dsv4-fp4-b300-trt-mtp at the official nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 (from the custom feat/deepseek_v4 builds 2dd03e6 / 9aa3715) and drop the TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 launcher workaround so the official image runs with native behavior. B200 TRT unchanged (9aa3715). Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/configs/nvidia-master.yaml | 4 ++-- benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh | 7 ------- perf-changelog.yaml | 3 ++- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/.github/configs/nvidia-master.yaml b/.github/configs/nvidia-master.yaml index 836729dac..fe93ed9a3 100644 --- a/.github/configs/nvidia-master.yaml +++ b/.github/configs/nvidia-master.yaml @@ -3049,7 +3049,7 @@ dsv4-fp4-b300-vllm-agentic: - { tp: 8, ep: 8, dp-attn: true, offloading: cpu, conc-list: [128, 256, 512] } dsv4-fp4-b300-trt: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 + image: nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b300 @@ -3072,7 +3072,7 @@ dsv4-fp4-b300-trt: - { tp: 8, ep: 8, dp-attn: true, conc-start: 256, conc-end: 1024 } dsv4-fp4-b300-trt-mtp: - image: ghcr.io#semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-9aa3715 + image: nvcr.io#nvidia/tensorrt-llm/release:1.3.0rc15.post1 model: deepseek-ai/DeepSeek-V4-Pro model-prefix: dsv4 runner: b300 diff --git a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh index 3606c677f..b0150e10d 100644 --- a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh +++ b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh @@ -59,13 +59,6 @@ sanitize_slurm_mpi_env_for_trtllm export NCCL_NVLS_ENABLE="${NCCL_NVLS_ENABLE:-0}" echo "NCCL_NVLS_ENABLE: $NCCL_NVLS_ENABLE" -# Disable DSv4 SWA scratch reuse: with attention-DP the V2 scheduler grows ctx KV -# (incl. SWA scratch) before delay batching defers a request, and the resulting -# revert_allocate_context -> resize(shrink) can't release the scratch of a -# never-forwarded request (no finish_event), crashing every dpa=true job. -export TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE="${TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE:-0}" -echo "TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE: $TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE" - nvidia-smi SERVER_LOG="$PWD/server.log" diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 7f19fd14c..6af5012c4 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3388,8 +3388,9 @@ - config-keys: - dsv4-fp4-b300-trt + - dsv4-fp4-b300-trt-mtp description: - - "Update the non-MTP B300 TensorRT-LLM DeepSeek-V4-Pro image to ghcr.io/semianalysisai/trtllm-deepseek-v4:feat-deepseek_v4-2dd03e6 and disable DSv4 SWA scratch reuse via TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 in the B300 launcher. Without this, attention-DP (dpa=true) jobs hang/crash: the V2 scheduler grows a context request's KV cache (incl. SWA scratch slots) before delay batching can defer it, so revert_allocate_context -> resize(shrink) must release scratch slots of a never-forwarded request, which has no finish_event -> crash on every dpa=true job. Disabling scratch reuse stops those slots from being allocated so the revert shrinks cleanly. B200 stays on feat-deepseek_v4-9aa3715 for now (the 2dd03e6 image OOMs on B200's smaller HBM at conc-256 with scratch reuse disabled)." + - "Point the B300 TensorRT-LLM DeepSeek-V4-Pro configs (non-MTP dsv4-fp4-b300-trt and MTP dsv4-fp4-b300-trt-mtp) at the official NVIDIA release image nvcr.io/nvidia/tensorrt-llm/release:1.3.0rc15.post1, replacing the custom ghcr.io semianalysis feat/deepseek_v4 builds (2dd03e6 and 9aa3715 respectively), to evaluate the official RC for DeepSeek-V4-Pro. Also drops the TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 launcher workaround (specific to the custom build) so the official image runs with its native behavior. B200 TRT is unchanged (stays on feat-deepseek_v4-9aa3715)." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636 - config-keys: From c2381b72b1bcfbc275ce6086baded5cc3b1ca17b Mon Sep 17 00:00:00 2001 From: Oseltamivir <58582368+Oseltamivir@users.noreply.github.com> Date: Thu, 4 Jun 2026 21:44:03 -0700 Subject: [PATCH 9/9] Re-add TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 on rc15.post1 to test DPA crash The previous sweep crashed all dpa=true jobs with CUDA_ERROR_ILLEGAL_ADDRESS on rc15.post1 without the SWA scratch workaround. Re-add TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 to both B300 TRT launchers (non-MTP and MTP) to determine whether the DPA crash is the same SWA-scratch bug or a separate FMHA kernel issue. Co-Authored-By: Claude Opus 4.6 --- benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh | 5 +++++ .../single_node/fixed_seq_len/dsv4_fp4_b300_trt_mtp.sh | 5 +++++ perf-changelog.yaml | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh index b0150e10d..35ac41f6b 100644 --- a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh +++ b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt.sh @@ -59,6 +59,11 @@ sanitize_slurm_mpi_env_for_trtllm export NCCL_NVLS_ENABLE="${NCCL_NVLS_ENABLE:-0}" echo "NCCL_NVLS_ENABLE: $NCCL_NVLS_ENABLE" +# Disable DSv4 SWA scratch reuse to test whether the rc15.post1 DPA crash +# is the same SWA-scratch bug or a separate FMHA kernel issue. +export TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE="${TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE:-0}" +echo "TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE: $TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE" + nvidia-smi SERVER_LOG="$PWD/server.log" diff --git a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt_mtp.sh b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt_mtp.sh index 507b96e34..f6ac67d6b 100644 --- a/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt_mtp.sh +++ b/benchmarks/single_node/fixed_seq_len/dsv4_fp4_b300_trt_mtp.sh @@ -58,6 +58,11 @@ sanitize_slurm_mpi_env_for_trtllm export NCCL_NVLS_ENABLE="${NCCL_NVLS_ENABLE:-0}" echo "NCCL_NVLS_ENABLE: $NCCL_NVLS_ENABLE" +# Disable DSv4 SWA scratch reuse to test whether the rc15.post1 DPA crash +# is the same SWA-scratch bug or a separate FMHA kernel issue. +export TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE="${TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE:-0}" +echo "TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE: $TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE" + nvidia-smi SERVER_LOG="$PWD/server.log" diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 6af5012c4..41fc63ab1 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -3451,3 +3451,10 @@ - "Add MiniMax-M2.5 NVFP4 GB300 disaggregated multinode vLLM benchmarks via Dynamo" - "Add 1k1k/8k1k minimax recipe set under benchmarks/multi_node/srt-slurm-recipes/vllm/minimax-m2.5/" pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1641 + +- config-keys: + - dsv4-fp4-b300-trt + - dsv4-fp4-b300-trt-mtp + description: + - "Switch B300 DSv4 TRT (non-MTP + MTP) to official rc15.post1 image with TRTLLM_DSV4_ENABLE_SWA_SCRATCH_REUSE=0 to test whether DPA crash is same SWA-scratch bug" + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/1636