test_name: "DeepSeek-V4-Pro-w4a8-prefix-cache-PD" model: "Eco-Tech/DeepSeek-V4-Pro-w4a8-mtp" num_nodes: 4 npu_per_node: 16 routing: type: "disaggregated_prefill" groups: prefiller: [ 0, 1 ] decoder: [ 2, 3 ] config: - node_index: 0 port_start: 7100 dp_rpc_port: 12321 dp_size: 4 dp_size_local: 2 dp_rank_start: 0 tp_size: 8 dp_address: "${NODE_0_IP}" - node_index: 1 port_start: 7100 dp_rpc_port: 12321 dp_size: 4 dp_size_local: 2 dp_rank_start: 2 tp_size: 8 dp_address: "${NODE_0_IP}" - node_index: 2 port_start: 7100 dp_rpc_port: 12321 dp_size: 16 dp_size_local: 8 dp_rank_start: 0 tp_size: 2 dp_address: "${NODE_2_IP}" - node_index: 3 port_start: 7100 dp_rpc_port: 12321 dp_size: 16 dp_size_local: 8 dp_rank_start: 8 tp_size: 2 dp_address: "${NODE_2_IP}" env_common: &env_common VLLM_USE_MODELSCOPE: "true" SERVER_PORT: "${PORT}" ASCEND_RT_VISIBLE_DEVICES: "${VISIBLE_DEVICES}" VLLM_RPC_TIMEOUT: "3600000" VLLM_EXECUTE_MODEL_TIMEOUT_SECONDS: "30000" HCCL_EXEC_TIMEOUT: "204" OMP_PROC_BIND: "false" OMP_NUM_THREADS: "10" PYTORCH_NPU_ALLOC_CONF: "expandable_segments:True" TASK_QUEUE_ENABLE: "1" HCCL_OP_EXPANSION_MODE: "AIV" env_prefill: &env_prefill <<: *env_common HCCL_CONNECT_TIMEOUT: "6000" HCCL_BUFFSIZE: "1024" VLLM_ASCEND_ENABLE_FLASHCOMM1: "1" VLLM_ASCEND_ENABLE_FUSED_MC2: "1" VLLM_PREFIX_CACHE_RETENTION_INTERVAL: "4096" env_decode: &env_decode <<: *env_common HCCL_CONNECT_TIMEOUT: "1200" HCCL_BUFFSIZE: "1800" templates: - node_index: 0 envs: <<: *env_prefill server_cmd_template: - --host - "0.0.0.0" - --port - $SERVER_PORT - --data-parallel-size - ${DP_SIZE} - --data-parallel-rank - ${DP_RANK} - --data-parallel-address - ${DP_ADDRESS} - --data-parallel-rpc-port - ${DP_RPC_PORT} - --tensor-parallel-size - ${TP_SIZE} - --enable-expert-parallel - --seed - "1024" - --max-model-len - "204800" - --max-num-batched-tokens - "8192" - --max-num-seqs - "16" - --no-disable-hybrid-kv-cache-manager - --tokenizer-mode - "deepseek_v4" - --tool-call-parser - "deepseek_v4" - --enable-auto-tool-choice - --reasoning-parser - "deepseek_v4" - --model-loader-extra-config - '{"enable_multithread_load": true, "num_threads": 128}' - --trust-remote-code - --gpu-memory-utilization - "0.95" - --quantization - "ascend" - --block-size - "32" - --enforce-eager - --speculative-config - '{"num_speculative_tokens": 1,"method": "mtp"}' - --additional-config - '{"enable_cpu_binding": true, "enable_dsa_cp": true}' - --kv-transfer-config - '{"kv_connector": "MooncakeHybridConnector", "kv_role": "kv_producer", "kv_port": "30100", "engine_id": "1", "kv_connector_extra_config": {"prefill": {"dp_size": 4, "tp_size": 8}, "decode": {"dp_size": 16, "tp_size": 2}}}' - node_index: 1 envs: <<: *env_prefill server_cmd_template: - --host - "0.0.0.0" - --port - $SERVER_PORT - --data-parallel-size - ${DP_SIZE} - --data-parallel-rank - ${DP_RANK} - --data-parallel-address - ${DP_ADDRESS} - --data-parallel-rpc-port - ${DP_RPC_PORT} - --tensor-parallel-size - ${TP_SIZE} - --enable-expert-parallel - --seed - "1024" - --max-model-len - "204800" - --max-num-batched-tokens - "8192" - --max-num-seqs - "16" - --no-disable-hybrid-kv-cache-manager - --tokenizer-mode - "deepseek_v4" - --tool-call-parser - "deepseek_v4" - --enable-auto-tool-choice - --reasoning-parser - "deepseek_v4" - --model-loader-extra-config - '{"enable_multithread_load": true, "num_threads": 128}' - --trust-remote-code - --gpu-memory-utilization - "0.95" - --quantization - "ascend" - --block-size - "32" - --enforce-eager - --speculative-config - '{"num_speculative_tokens": 1,"method": "mtp"}' - --additional-config - '{"enable_cpu_binding": true, "enable_dsa_cp": true}' - --kv-transfer-config - '{"kv_connector": "MooncakeHybridConnector", "kv_role": "kv_producer", "kv_port": "30100", "engine_id": "1", "kv_connector_extra_config": {"prefill": {"dp_size": 4, "tp_size": 8}, "decode": {"dp_size": 16, "tp_size": 2}}}' - node_index: 2 envs: <<: *env_decode server_cmd_template: - --host - "0.0.0.0" - --port - $SERVER_PORT - --data-parallel-size - ${DP_SIZE} - --data-parallel-rank - ${DP_RANK} - --data-parallel-address - ${DP_ADDRESS} - --data-parallel-rpc-port - ${DP_RPC_PORT} - --tensor-parallel-size - ${TP_SIZE} - --enable-expert-parallel - --seed - "1024" - --max-model-len - "204800" - --max-num-batched-tokens - "120" - --max-num-seqs - "30" - --async-scheduling - --block-size - "32" - --no-enable-prefix-caching - --tokenizer-mode - "deepseek_v4" - --tool-call-parser - "deepseek_v4" - --enable-auto-tool-choice - --reasoning-parser - "deepseek_v4" - --no-disable-hybrid-kv-cache-manager - --model-loader-extra-config - '{"enable_multithread_load": true, "num_threads": 128}' - --trust-remote-code - --speculative-config - '{"num_speculative_tokens": 3,"method": "mtp"}' - --gpu-memory-utilization - "0.96" - --quantization - "ascend" - --compilation-config - '{"cudagraph_mode": "FULL_DECODE_ONLY"}' - --kv-transfer-config - '{"kv_connector": "MooncakeHybridConnector", "kv_role": "kv_consumer", "kv_port": "30800", "engine_id": "8", "kv_connector_extra_config": {"prefill": {"dp_size": 4, "tp_size": 8}, "decode": {"dp_size": 16, "tp_size": 2}}}' - --additional-config - '{"ascend_compilation_config":{"enable_npugraph_ex":true,"enable_static_kernel":false},"enable_cpu_binding":true,"multistream_overlap_shared_expert":true,"recompute_scheduler_enable":true}' - node_index: 3 envs: <<: *env_decode server_cmd_template: - --host - "0.0.0.0" - --port - $SERVER_PORT - --data-parallel-size - ${DP_SIZE} - --data-parallel-rank - ${DP_RANK} - --data-parallel-address - ${DP_ADDRESS} - --data-parallel-rpc-port - ${DP_RPC_PORT} - --tensor-parallel-size - ${TP_SIZE} - --enable-expert-parallel - --seed - "1024" - --max-model-len - "204800" - --max-num-batched-tokens - "120" - --max-num-seqs - "30" - --async-scheduling - --block-size - "32" - --no-enable-prefix-caching - --tokenizer-mode - "deepseek_v4" - --tool-call-parser - "deepseek_v4" - --enable-auto-tool-choice - --reasoning-parser - "deepseek_v4" - --no-disable-hybrid-kv-cache-manager - --model-loader-extra-config - '{"enable_multithread_load": true, "num_threads": 128}' - --trust-remote-code - --speculative-config - '{"num_speculative_tokens": 3,"method": "mtp"}' - --gpu-memory-utilization - "0.96" - --quantization - "ascend" - --compilation-config - '{"cudagraph_mode": "FULL_DECODE_ONLY"}' - --kv-transfer-config - '{"kv_connector": "MooncakeHybridConnector", "kv_role": "kv_consumer", "kv_port": "30800", "engine_id": "8", "kv_connector_extra_config": {"prefill": {"dp_size": 4, "tp_size": 8}, "decode": {"dp_size": 16, "tp_size": 2}}}' - --additional-config - '{"ascend_compilation_config":{"enable_npugraph_ex":true,"enable_static_kernel":false},"enable_cpu_binding":true,"multistream_overlap_shared_expert":true,"recompute_scheduler_enable":true}' benchmarks: perf_TPOT50_64_1_prefix90_warmup: case_type: performance dataset_path_local: vllm-ascend/GSM8K-in65536-bs512-prefix90-ds request_conf: vllm_api_stream_chat dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_str_perf num_prompts: 4 max_out_len: 1 batch_size: 4 request_rate: 0 baseline: 0 threshold: 0.95 perf_TPOT50_64_1_prefix90: case_type: performance dataset_path_local: vllm-ascend/GSM8K-in65536-bs512-prefix90-ds request_conf: vllm_api_stream_chat dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_str_perf num_prompts: 384 max_out_len: 1024 batch_size: 96 request_rate: 2.5 baseline: 1951.6 threshold: 0.95 perf_TPOT50_128k_1_prefix_warmup: case_type: performance dataset_path_local: vllm-ascend/GSM8K-in128k-bs512-prefix90-ds request_conf: vllm_api_stream_chat dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_str_perf num_prompts: 4 max_out_len: 1 batch_size: 4 request_rate: 0 baseline: 0 threshold: 0.95 perf_TPOT50_128k_1_prefix90: case_type: performance dataset_path_local: vllm-ascend/GSM8K-in128k-bs512-prefix90-ds request_conf: vllm_api_stream_chat dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_str_perf num_prompts: 192 max_out_len: 1024 batch_size: 48 request_rate: 1 baseline: 869.13 threshold: 0.95 acc_aime2025: case_type: accuracy dataset_path: vllm-ascend/aime2025 request_conf: vllm_api_general_chat dataset_conf: aime2025/aime2025_gen_0_shot_chat_prompt temperature: 1.0 top_p: 1.0 thinking: "true" max_out_len: 65536 batch_size: 32 baseline: 90 threshold: 10