From 086c093347118d0448df6ac7e80a7b4dd1cdc4f8 Mon Sep 17 00:00:00 2001 From: starmountain1997 <77533802+starmountain1997@users.noreply.github.com> Date: Wed, 7 Jan 2026 10:02:02 +0800 Subject: [PATCH] [CI] Add DeepSeek-V3.2-W8A8 nightly ci test (#5371) # What this PR does / why we need it? Add DeepSeek-V3.2-W8A8 dual-node nightly CI test and update A3 nightly test configuration: 1. Add DeepSeek-V3.2-W8A8 dual-node test: tests/e2e/nightly/multi_node/config/DeepSeek-V3_2-W8A8-A3-dual-nodes.yaml - 2 nodes, 16 NPUs per node (32 NPUs total) - Configuration: 2P+1D (data-parallel-size=4, tensor-parallel-size=8, data-parallel-size-local=2) - Includes performance and accuracy benchmarks with GSM8K dataset 2. Update A3 nightly workflow: .github/workflows/nightly_test_a3.yaml - Added DeepSeek-V3.2-W8A8 dual-node test to the A3 nightly test matrix - Test name: multi-node-dpsk3.2-2node 3. Improve test scripts: Updated .github/workflows/_e2e_nightly_multi_node.yaml and related scripts for better multi-node testing support test on A3 instances - Performance baseline: 1 (threshold: 0.97) - Accuracy baseline: 95% (threshold: 5%) - Test dataset: GSM8K with 512 prompts for performance, gsm8k-lite for accuracy --------- Signed-off-by: guozr Co-authored-by: guozr --- .github/workflows/nightly_test_a3.yaml | 3 + .../DeepSeek-V3_2-W8A8-A3-dual-nodes.yaml | 86 +++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 tests/e2e/nightly/multi_node/config/DeepSeek-V3_2-W8A8-A3-dual-nodes.yaml diff --git a/.github/workflows/nightly_test_a3.yaml b/.github/workflows/nightly_test_a3.yaml index ff583d32..8c4c5b4d 100644 --- a/.github/workflows/nightly_test_a3.yaml +++ b/.github/workflows/nightly_test_a3.yaml @@ -68,6 +68,9 @@ jobs: - name: multi-node-qwenw8a8-2node-eplb config_file_path: Qwen3-235B-W8A8-EPLB.yaml size: 2 + - name: multi-node-dpsk3.2-2node + config_file_path: DeepSeek-V3_2-W8A8-A3-dual-nodes.yaml + size: 2 - name: multi-node-deepseek-r1-w8a8-longseq config_file_path: DeepSeek-R1-W8A8-longseq.yaml size: 2 diff --git a/tests/e2e/nightly/multi_node/config/DeepSeek-V3_2-W8A8-A3-dual-nodes.yaml b/tests/e2e/nightly/multi_node/config/DeepSeek-V3_2-W8A8-A3-dual-nodes.yaml new file mode 100644 index 00000000..0fc4fac2 --- /dev/null +++ b/tests/e2e/nightly/multi_node/config/DeepSeek-V3_2-W8A8-A3-dual-nodes.yaml @@ -0,0 +1,86 @@ +test_name: "test DeepSeek-V3.2-W8A8 on A3" +model: "vllm-ascend/DeepSeek-V3.2-W8A8" +num_nodes: 2 +npu_per_node: 16 +env_common: + HCCL_OP_EXPANSION_MODE: "AIV" + + VLLM_USE_MODELSCOPE: true + HCCL_BUFFSIZE: 1024 + SERVER_PORT: 8080 + OMP_PROC_BIND: false + OMP_NUM_THREADS: 1 + VLLM_ASCEND_ENABLE_MLAPO: 1 + PYTORCH_NPU_ALLOC_CONF: "expandable_segments:True" + VLLM_ASCEND_ENABLE_FLASHCOMM1: 1 + ASCEND_A3_EBA_ENABLE: 1 + + +deployment: + - + server_cmd: > + vllm serve vllm-ascend/DeepSeek-V3.2-W8A8 + --host 0.0.0.0 + --port $SERVER_PORT + --data-parallel-size 4 + --data-parallel-size-local 2 + --data-parallel-address $LOCAL_IP + --data-parallel-rpc-port 13399 + --tensor-parallel-size 8 + --quantization ascend + --seed 1024 + --enable-expert-parallel + --max-num-seqs 16 + --max-model-len 8192 + --max-num-batched-tokens 4096 + --no-enable-prefix-caching + --gpu-memory-utilization 0.85 + --trust-remote-code + --speculative-config '{"num_speculative_tokens": 2, "method":"deepseek_mtp"}' + --tokenizer-mode deepseek_v32 + --reasoning-parser deepseek_v3 + --api-server-count 4 + + - + server_cmd: > + vllm serve vllm-ascend/DeepSeek-V3.2-W8A8 + --headless + --data-parallel-size 4 + --data-parallel-rpc-port 13399 + --data-parallel-size-local 2 + --data-parallel-start-rank 2 + --data-parallel-address $MASTER_IP + --tensor-parallel-size 8 + --quantization ascend + --seed 1024 + --enable-expert-parallel + --max-num-seqs 16 + --max-model-len 8192 + --max-num-batched-tokens 4096 + --no-enable-prefix-caching + --gpu-memory-utilization 0.85 + --trust-remote-code + --speculative-config '{"num_speculative_tokens": 2, "method":"deepseek_mtp"}' + --tokenizer-mode deepseek_v32 + --reasoning-parser deepseek_v3 +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: 512 + max_out_len: 3000 + batch_size: 512 + request_rate: 11.2 + baseline: 594.915 + threshold: 0.97 + acc: + case_type: accuracy + dataset_path: vllm-ascend/gsm8k-lite + request_conf: vllm_api_general_chat + dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_chat_prompt + max_out_len: 4096 + batch_size: 64 + baseline: 95 + threshold: 5