From f90ed95578f81ddd1cb96c9bd5d6ef8be8475667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AC=A7=E6=B4=BE=E6=9E=9C=E5=A5=B6=E6=88=91=E8=BF=98?= =?UTF-8?q?=E8=A6=81?= <47294568+845473182@users.noreply.github.com> Date: Fri, 14 Nov 2025 08:50:29 +0800 Subject: [PATCH] [CI] Add multi-nodes EPLB configs of DeepSeek-R1-W8A8 & Qwen3-235B-W8A8 (#4144) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### What this PR does / why we need it? add DeepSeek-R1-W8A8 and Qwen3-235B-W8A8 configs in multi-nodes and EPLB scenario ### Does this PR introduce _any_ user-facing change? no - vLLM version: v0.11.0 - vLLM main: https://github.com/vllm-project/vllm/commit/83f478bb19489b41e9d208b47b4bb5a95ac171ac --------- Signed-off-by: 白永斌 Co-authored-by: 白永斌 --- .../vllm_ascend_test_nightly_a3.yaml | 6 + .../config/models/DeepSeek-R1-W8A8-EPLB.yaml | 165 ++++++++++++++++++ .../config/models/Qwen3-235B-W8A8-EPLB.yaml | 91 ++++++++++ 3 files changed, 262 insertions(+) create mode 100644 tests/e2e/nightly/multi_node/config/models/DeepSeek-R1-W8A8-EPLB.yaml create mode 100644 tests/e2e/nightly/multi_node/config/models/Qwen3-235B-W8A8-EPLB.yaml diff --git a/.github/workflows/vllm_ascend_test_nightly_a3.yaml b/.github/workflows/vllm_ascend_test_nightly_a3.yaml index ad0af550..6ff88d15 100644 --- a/.github/workflows/vllm_ascend_test_nightly_a3.yaml +++ b/.github/workflows/vllm_ascend_test_nightly_a3.yaml @@ -134,6 +134,12 @@ jobs: - name: multi-node-dpsk3.2-exp-2node config_file_path: DeepSeek-V3_2-Exp-bf16.yaml size: 2 + - name: multi-node-deepseek-r1-w8a8-eplb + config_file_path: DeepSeek-R1-W8A8-EPLB.yaml + size: 4 + - name: multi-node-qwenw8a8-2node-eplb + config_file_path: Qwen3-235B-W8A8-EPLB.yaml + size: 2 uses: ./.github/workflows/_e2e_nightly_multi_node.yaml with: soc_version: a3 diff --git a/tests/e2e/nightly/multi_node/config/models/DeepSeek-R1-W8A8-EPLB.yaml b/tests/e2e/nightly/multi_node/config/models/DeepSeek-R1-W8A8-EPLB.yaml new file mode 100644 index 00000000..9a4c3d94 --- /dev/null +++ b/tests/e2e/nightly/multi_node/config/models/DeepSeek-R1-W8A8-EPLB.yaml @@ -0,0 +1,165 @@ +test_name: "test DeepSeek-R1-W8A8 disaggregated_prefill" +model: "vllm-ascend/DeepSeek-R1-0528-W8A8" +num_nodes: 4 +npu_per_node: 16 +env_common: + VLLM_USE_MODELSCOPE: true + HCCL_BUFFSIZE: 1024 + SERVER_PORT: 8080 + OMP_PROC_BIND: false + OMP_NUM_THREADS: 10 + PYTORCH_NPU_ALLOC_CONF: expandable_segments:True + HCCL_DETERMINISTIC: True + TASK_QUEUE_ENABLE: 1 + HCCL_OP_RETRY_ENABLE: "L0:0, L1:0, L2:0" + DYNAMIC_EPLB: true + +disaggregated_prefill: + enabled: true + prefiller_host_index: [0, 1] + decoder_host_index: [2] + ranktable_gen_path: "examples/disaggregated_prefill_v1/gen_ranktable.py" + ranktable_path: "/tmp/ranktable.json" + +deployment: + - + server_cmd: > + vllm serve vllm-ascend/DeepSeek-R1-0528-W8A8 + --host 0.0.0.0 + --port $SERVER_PORT + --data-parallel-size 2 + --data-parallel-size-local 2 + --tensor-parallel-size 8 + --enforce-eager + --enable-expert-parallel + --seed 1024 + --quantization ascend + --max-num-seqs 4 + --max-model-len 36864 + --max-num-batched-tokens 16384 + --trust-remote-code + --gpu-memory-utilization 0.9 + --speculative-config '{"num_speculative_tokens": 1, "method":"deepseek_mtp"}' + --kv-transfer-config + '{"kv_connector": "LLMDataDistCMgrConnector", + "kv_buffer_device": "npu", + "kv_role": "kv_producer", + "kv_parallel_size": 1, + "kv_port": "20001", + "engine_id": "0", + "kv_connector_module_path": "vllm_ascend.distributed.llmdatadist_c_mgr_connector" + }' + --additional-config + '{"ascend_scheduler_config":{"enabled":false},"torchair_graph_config":{"enabled":false,"enable_multistream_shared_expert":false},"enable_prefill_optimizations":true,"enable_weight_nz_layout":true,"dynamic_eplb":true,"num_iterations_eplb_update":2048,"num_wait_worker_iterations":200}' + + - + server_cmd: > + vllm serve vllm-ascend/DeepSeek-R1-0528-W8A8 + --host 0.0.0.0 + --port $SERVER_PORT + --data-parallel-size 2 + --data-parallel-size-local 2 + --tensor-parallel-size 8 + --enforce-eager + --enable-expert-parallel + --seed 1024 + --quantization ascend + --max-num-seqs 4 + --max-model-len 36864 + --max-num-batched-tokens 16384 + --trust-remote-code + --gpu-memory-utilization 0.9 + --speculative-config '{"num_speculative_tokens": 1, "method":"deepseek_mtp"}' + --kv-transfer-config + '{"kv_connector": "LLMDataDistCMgrConnector", + "kv_buffer_device": "npu", + "kv_role": "kv_producer", + "kv_parallel_size": 1, + "kv_port": "20001", + "engine_id": "1", + "kv_connector_module_path": "vllm_ascend.distributed.llmdatadist_c_mgr_connector" + }' + --additional-config + '{"ascend_scheduler_config":{"enabled":false},"torchair_graph_config":{"enabled":false,"enable_multistream_shared_expert":false},"enable_prefill_optimizations":true,"enable_weight_nz_layout":true,"dynamic_eplb":true,"num_iterations_eplb_update":2048,"num_wait_worker_iterations":200}' + - + server_cmd: > + vllm serve vllm-ascend/DeepSeek-R1-0528-W8A8 + --host 0.0.0.0 + --port $SERVER_PORT + --data-parallel-size 32 + --data-parallel-size-local 16 + --data-parallel-start-rank 0 + --data-parallel-address $LOCAL_IP + --data-parallel-rpc-port 13389 + --tensor-parallel-size 1 + --enable-expert-parallel + --seed 1024 + --quantization ascend + --max-num-seqs 28 + --max-model-len 36864 + --max-num-batched-tokens 256 + --trust-remote-code + --gpu-memory-utilization 0.9 + --speculative-config '{"num_speculative_tokens": 1, "method":"deepseek_mtp"}' + --kv-transfer-config + '{"kv_connector": "LLMDataDistCMgrConnector", + "kv_buffer_device": "npu", + "kv_role": "kv_consumer", + "kv_parallel_size": 1, + "kv_port": "20001", + "engine_id": "2", + "kv_connector_module_path": "vllm_ascend.distributed.llmdatadist_c_mgr_connector" + }' + --additional-config + '{"ascend_scheduler_config":{"enabled":false},"torchair_graph_config":{"enabled":true,"enable_multistream_mla":true,"graph_batch_sizes":[28],"use_cached_graph":true,"enable_super_kernel":false},"multistream_overlap_shared_expert":true,"dynamic_eplb":true,"num_iterations_eplb_update":2048,"num_wait_worker_iterations":200}' + - + server_cmd: > + vllm serve vllm-ascend/DeepSeek-R1-0528-W8A8 + --headless + --data-parallel-size 32 + --data-parallel-size-local 16 + --data-parallel-start-rank 16 + --data-parallel-address $MASTER_IP + --data-parallel-rpc-port 13389 + --tensor-parallel-size 1 + --enable-expert-parallel + --seed 1024 + --quantization ascend + --max-num-seqs 28 + --max-model-len 36864 + --max-num-batched-tokens 256 + --trust-remote-code + --gpu-memory-utilization 0.9 + --speculative-config '{"num_speculative_tokens": 1, "method":"deepseek_mtp"}' + --kv-transfer-config + '{"kv_connector": "LLMDataDistCMgrConnector", + "kv_buffer_device": "npu", + "kv_role": "kv_consumer", + "kv_parallel_size": 1, + "kv_port": "20001", + "engine_id": "2", + "kv_connector_module_path": "vllm_ascend.distributed.llmdatadist_c_mgr_connector" + }' + --additional-config + '{"ascend_scheduler_config":{"enabled":false},"torchair_graph_config":{"enabled":true,"enable_multistream_mla":true,"graph_batch_sizes":[28],"use_cached_graph":true,"enable_super_kernel":false},"multistream_overlap_shared_expert":true,"dynamic_eplb":true,"num_iterations_eplb_update":2048,"num_wait_worker_iterations":200}' +benchmarks: + perf: + case_type: performance + dataset_path: vllm-ascend/GSM8K-in3500-bs2800 + request_conf: vllm_api_stream_chat + dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_str_perf + num_prompts: 2800 + max_out_len: 1500 + batch_size: 700 + request_rate: 11.2 + baseline: 1 + threshold: 0.97 + acc: + case_type: accuracy + dataset_path: vllm-ascend/gsm8k + request_conf: vllm_api_general_chat + dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_chat_prompt + max_out_len: 32768 + batch_size: 512 + baseline: 95 + threshold: 5 diff --git a/tests/e2e/nightly/multi_node/config/models/Qwen3-235B-W8A8-EPLB.yaml b/tests/e2e/nightly/multi_node/config/models/Qwen3-235B-W8A8-EPLB.yaml new file mode 100644 index 00000000..8e7bf334 --- /dev/null +++ b/tests/e2e/nightly/multi_node/config/models/Qwen3-235B-W8A8-EPLB.yaml @@ -0,0 +1,91 @@ +test_name: "test Qwen3-235B-A22B-W8A8 disaggregated_prefill" +model: "vllm-ascend/Qwen3-235B-A22B-W8A8" +num_nodes: 2 +npu_per_node: 16 +env_common: + VLLM_USE_MODELSCOPE: true + OMP_PROC_BIND: false + OMP_NUM_THREADS: 100 + HCCL_BUFFSIZE: 1024 + SERVER_PORT: 8080 + DYNAMIC_EPLB: true +disaggregated_prefill: + enabled: true + prefiller_host_index: [0] + decoder_host_index: [1] + +deployment: + - + server_cmd: > + vllm serve "vllm-ascend/Qwen3-235B-A22B-W8A8" + --host 0.0.0.0 + --port $SERVER_PORT + --data-parallel-size 2 + --data-parallel-size-local 2 + --tensor-parallel-size 8 + --seed 1024 + --enable-expert-parallel + --max-num-seqs 16 + --max-model-len 8192 + --max-num-batched-tokens 8192 + --quantization ascend + --trust-remote-code + --no-enable-prefix-caching + --gpu-memory-utilization 0.9 + --kv-transfer-config + '{"kv_connector": "MooncakeConnector", + "kv_role": "kv_producer", + "kv_port": "30000", + "engine_id": "0", + "kv_connector_module_path": "vllm_ascend.distributed.mooncake_connector", + "kv_connector_extra_config": { + "prefill": { + "dp_size": 2, + "tp_size": 8 + }, + "decode": { + "dp_size": 2, + "tp_size": 8 + } + } + }' + --additional-config + '{"dynamic_eplb":true,"num_iterations_eplb_update":2048,"num_wait_worker_iterations":200}' + + - + server_cmd: > + vllm serve "vllm-ascend/Qwen3-235B-A22B-W8A8" + --host 0.0.0.0 + --port $SERVER_PORT + --data-parallel-size 2 + --data-parallel-size-local 2 + --tensor-parallel-size 8 + --seed 1024 + --quantization ascend + --max-num-seqs 16 + --max-model-len 8192 + --max-num-batched-tokens 8192 + --enable-expert-parallel + --trust-remote-code + --no-enable-prefix-caching + --gpu-memory-utilization 0.9 + --kv-transfer-config + '{"kv_connector": "MooncakeConnector", + "kv_role": "kv_consumer", + "kv_port": "30200", + "engine_id": "1", + "kv_connector_module_path": "vllm_ascend.distributed.mooncake_connector", + "kv_connector_extra_config": { + "prefill": { + "dp_size": 2, + "tp_size": 8 + }, + "decode": { + "dp_size": 2, + "tp_size": 8 + } + } + }' + --additional-config + '{"dynamic_eplb":true,"num_iterations_eplb_update":2048,"num_wait_worker_iterations":200}' +benchmarks: