diff --git a/benchmarks/single_node/agentic/dsv41flash_fp4_b300_vllm_mtp.sh b/benchmarks/single_node/agentic/dsv41flash_fp4_b300_vllm_mtp.sh index 233c79bee..a89aa2ddf 100755 --- a/benchmarks/single_node/agentic/dsv41flash_fp4_b300_vllm_mtp.sh +++ b/benchmarks/single_node/agentic/dsv41flash_fp4_b300_vllm_mtp.sh @@ -5,6 +5,7 @@ set -eo pipefail # https://recipes.vllm.ai/deepseek-ai/DeepSeek-V4.1-Flash source "$(dirname "$0")/../../benchmark_lib.sh" check_env_vars MODEL TP CONC KV_OFFLOADING TOTAL_CPU_DRAM_GB RESULT_DIR DURATION +check_env_vars EVAL_ONLY VLLM_ENGINE_READY_TIMEOUT_S require_agentic_kv_offload_none export GPU_COUNT="$TP" @@ -21,7 +22,6 @@ resolve_trace_source install_agentic_deps mkdir -p "$RESULT_DIR" SERVER_LOG="$RESULT_DIR/server.log" -export VLLM_ENGINE_READY_TIMEOUT_S="${VLLM_ENGINE_READY_TIMEOUT_S:-3600}" export VLLM_USE_RUST_FRONTEND=1 export PYTHONUNBUFFERED=1 @@ -46,6 +46,9 @@ MAX_NUM_SEQS=256 CAPTURE_SIZE="${GRAPH_SIZES##*,}" COMPILATION_CONFIG="{\"mode\":\"VLLM_COMPILE\",\"cudagraph_mode\":\"FULL_AND_PIECEWISE\",\"cudagraph_capture_sizes\":[${GRAPH_SIZES}]}" +# Use FlashInfer sparse attention for both tensor-parallel sizes. +ATTENTION_CONFIG='{"backend":"FLASHINFER_MLA_SPARSE_DSV41","indexer_kv_dtype":"mxfp4","indexer_sparse_logits":true}' + # Pyxis shares the host network; port 8888 can already belong to a host service. select_available_server_port export AIPERF_SERVER_URL="http://localhost:${PORT}" @@ -55,7 +58,7 @@ echo "Using vLLM endpoint ${AIPERF_SERVER_URL}" # Golden AL: golden_al_distribution/dsv41flash_dspark.yaml, thinking_on, five draft tokens. # Accuracy evals keep real block rejection; other runs use synthetic acceptance at AL 3.51. -if [[ "${EVAL_ONLY:-false}" == true ]]; then +if [[ "${EVAL_ONLY}" == true ]]; then SPEC_CONFIG='{"method":"dspark","num_speculative_tokens":5,"draft_sample_method":"probabilistic","rejection_sample_method":"block","enable_adaptive_verification":true}' else SPEC_CONFIG='{"method":"dspark","num_speculative_tokens":5,"draft_sample_method":"probabilistic","rejection_sample_method":"synthetic","synthetic_acceptance_length":3.51,"enable_adaptive_verification":false}' @@ -68,6 +71,8 @@ VLLM_CMD=( --tool-call-parser deepseek_v41 --enable-auto-tool-choice --reasoning-parser deepseek_v41 --engram-config '{"cpu_offload":true}' + --attention-config "$ATTENTION_CONFIG" + --kv-cache-dtype fp8 --speculative-config "$SPEC_CONFIG" --max-model-len 1048576 --compilation-config "$COMPILATION_CONFIG" @@ -85,7 +90,7 @@ printf '\n' | tee -a "$RESULT_DIR/vllm_command.txt" SERVER_PID=$! wait_for_server_ready --port "$PORT" --server-log "$SERVER_LOG" --server-pid "$SERVER_PID" -if [[ "${EVAL_ONLY:-false}" == true ]]; then +if [[ "${EVAL_ONLY}" == true ]]; then run_eval --port "$PORT" else build_replay_cmd "$RESULT_DIR" diff --git a/configs/nvidia-master.yaml b/configs/nvidia-master.yaml index 7ee2ca0be..d4cd99ba6 100644 --- a/configs/nvidia-master.yaml +++ b/configs/nvidia-master.yaml @@ -8415,7 +8415,7 @@ dsv41flash-fp4-gb200-sglang-agentic-dspark: - { tp: 2, ep: 1, kv-offloading: none, spec-decoding: mtp, conc-list: [1, 2, 4, 8, 16, 32, 64, 128] } dsv41flash-fp4-b300-vllm-agentic-dspark: - image: vllm/vllm-openai:deepseekv41-flash-0909 + image: vllm/vllm-openai:nightly-0961bbae2894d574be790d219651824eb199318e model: deepseek-ai/DeepSeek-V4.1-Flash model-prefix: dsv41flash runner: cluster:b300-dsxe diff --git a/perf-changelog.yaml b/perf-changelog.yaml index 89f152cac..52568c457 100644 --- a/perf-changelog.yaml +++ b/perf-changelog.yaml @@ -8887,3 +8887,11 @@ - "Add DeepSeek-V4-Pro-0813 golden AL for draft lengths 4, 5, 7 and 8 (3.36 / 3.61 / 3.73 / 3.47)." - "Agentic PD router: pin --decode-policy round_robin so decode no longer inherits the prefill --policy (consistent_hashing)." pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/3256 + +- config-keys: + - dsv41flash-fp4-b300-vllm-agentic-dspark + scenario-type: + - agentic-coding + description: + - "Pin B300 DeepSeek-V4.1-Flash vLLM to the 2026-09-22 nightly 0961bbae and enable Blackwell sparse indexer logits, MXFP4 indexer KV, and fp8 KV cache; use FlashInfer sparse attention at TP2 and MegaAttention at TP4." + pr-link: https://github.com/SemiAnalysisAI/InferenceX/pull/3394 diff --git a/runners/launch_b300-dsxe.sh b/runners/launch_b300-dsxe.sh index ca270b217..4b5b47a87 100755 --- a/runners/launch_b300-dsxe.sh +++ b/runners/launch_b300-dsxe.sh @@ -384,6 +384,7 @@ else export RESULT_DIR=/ix/results # Cover DSpark5 verification for concurrent AgentX subagents at c1/c2/c4. export DSV41_MIN_CUDAGRAPH_CAPTURE_SIZE=64 + export VLLM_ENGINE_READY_TIMEOUT_S=7200 fi import_squash_image "$IMAGE" "$SQUASH_FILE"