Skip to content

Commit de4b37b

Browse files
authored
[CI] Add E2E weekly multi-node config for MiniMax-PD-in32k-bs4-1 (vllm-project#10685)
### What this PR does / why we need it? 1、Fixing the problem that historical PR changes are overwritten: Add external DP test orchestration under tests/e2e/nightly/multi_node/external_dp/ historical PR: vllm-project#9449 2、Add E2E weekly multi-node config for MiniMax-PD-in32k-bs4-1 3、Update the performance baseline in the test cases according to the exported peformance data ### Does this PR introduce _any_ user-facing change? NO ### How was this patch tested? by the running the test - vLLM version: v0.22.1 - vLLM main: vllm-project/vllm@967c5c3 --------- Signed-off-by: weixin <murongfengerxch@163.com>
1 parent 5476142 commit de4b37b

6 files changed

Lines changed: 292 additions & 30 deletions

File tree

.github/workflows/schedule_weekly_test_a3.yaml

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,48 @@ jobs:
111111
HW_TOKEN: ${{ secrets.HW_TOKEN }}
112112
GITEE_TOKEN: ${{ secrets.GITEE_TOKEN }}
113113

114+
multi-node-tests:
115+
name: multi-node
116+
needs: [setup-vars, build-image]
117+
if: >-
118+
always() &&
119+
(needs.build-image.result == 'success' || needs.build-image.result == 'skipped')
120+
strategy:
121+
fail-fast: false
122+
max-parallel: 3
123+
matrix:
124+
vllm_ascend_branch: ${{ fromJSON(needs.setup-vars.outputs.vllm_ascend_branches) }}
125+
test_config:
126+
- name: MiniMax-PD-in32k-bs4-1
127+
config_file_path: MiniMax-PD-in32k-bs4-1.yaml
128+
size: 3
129+
uses: ./.github/workflows/_e2e_nightly_multi_node.yaml
130+
with:
131+
soc_version: a3
132+
runner: linux-aarch64-a3-0
133+
image: 'swr.cn-southwest-2.myhuaweicloud.com/base_image/ascend-ci/vllm-ascend:nightly-ci-${{ matrix.vllm_ascend_branch }}-a3'
134+
ascend_log_prefix: ${{ needs.setup-vars.outputs.ascend_log_prefix }}/${{ matrix.vllm_ascend_branch }}
135+
vllm_ascend_branch: ${{ matrix.vllm_ascend_branch }}
136+
replicas: 1
137+
size: ${{ matrix.test_config.size }}
138+
config_file_path: ${{ matrix.test_config.config_file_path }}
139+
config_base_path: tests/e2e/weekly/multi_node/external_dp/config
140+
name: ${{ matrix.test_config.name }}
141+
vllm_ascend_ref: ${{ github.sha }}
142+
testcase_timeout: 600
143+
should_run: >-
144+
${{
145+
needs.setup-vars.outputs.filter == 'all' ||
146+
contains(needs.setup-vars.outputs.filter, format(',{0},', matrix.test_config.name))
147+
}}
148+
secrets:
149+
KUBECONFIG_B64: ${{ secrets.KUBECONFIG_B64 }}
150+
OBS_ACCESS_KEY_ID: ${{ secrets.OBS_ACCESS_KEY_ID }}
151+
OBS_SECRET_ACCESS_KEY: ${{ secrets.OBS_SECRET_ACCESS_KEY }}
152+
114153
double-node-tests:
115154
name: double-node
116-
needs: [setup-vars, build-image]
155+
needs: [setup-vars, build-image, multi-node-tests]
117156
if: >-
118157
always() &&
119158
(needs.build-image.result == 'success' || needs.build-image.result == 'skipped')

tests/e2e/nightly/single_node/models/configs/MiniMax-M2.5-w8a8-QuaRot-A2.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ test_cases:
4040
- "--enable-chunked-prefill"
4141
- "--enable-prefix-caching"
4242
- "--max-num-seqs"
43-
- "120"
43+
- "100"
4444
- "--max-model-len"
4545
- "196608"
4646
- "--seed"
@@ -84,5 +84,5 @@ test_cases:
8484
max_out_len: 1500
8585
batch_size: 120
8686
request_rate: 0
87-
baseline: 1728
87+
baseline: 2042
8888
threshold: 0.97

tests/e2e/nightly/single_node/models/configs/Qwen3.5-27B-w8a8-A3.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,5 @@ test_cases:
6969
max_out_len: 1500
7070
batch_size: 35
7171
request_rate: 0
72-
baseline: 895
72+
baseline: 610.22
7373
threshold: 0.97
Lines changed: 223 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
test_name: "MiniMax-PD-in32k-bs4-1"
2+
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
3+
num_nodes: 3
4+
npu_per_node: 16
5+
6+
routing:
7+
type: "disaggregated_prefill"
8+
groups:
9+
prefiller: [0]
10+
decoder: [1, 2]
11+
12+
config:
13+
- node_index: 0
14+
port_start: 7100
15+
dp_rpc_port: 12321
16+
dp_size: 4
17+
dp_size_local: 4
18+
dp_rank_start: 0
19+
tp_size: 4
20+
dp_address: "${NODE_0_IP}"
21+
22+
- node_index: 1
23+
port_start: 7100
24+
dp_rpc_port: 12321
25+
dp_size: 4
26+
dp_size_local: 4
27+
dp_rank_start: 0
28+
tp_size: 4
29+
dp_address: "${NODE_1_IP}"
30+
31+
- node_index: 2
32+
port_start: 7100
33+
dp_rpc_port: 12321
34+
dp_size: 4
35+
dp_size_local: 4
36+
dp_rank_start: 0
37+
tp_size: 4
38+
dp_address: "${NODE_2_IP}"
39+
40+
env_common: &env_common
41+
HCCL_OP_EXPANSION_MODE: "AIV"
42+
PYTORCH_NPU_ALLOC_CONF: "expandable_segments:True"
43+
OMP_NUM_THREADS: "1"
44+
TASK_QUEUE_ENABLE: "1"
45+
VLLM_ASCEND_ENABLE_FUSED_MC2: "1"
46+
VLLM_USE_MODELSCOPE: "true"
47+
ASCEND_RT_VISIBLE_DEVICES: "${VISIBLE_DEVICES}"
48+
49+
50+
templates:
51+
- node_index: 0
52+
envs:
53+
<<: *env_common
54+
VLLM_ASCEND_ENABLE_FLASHCOMM1: "1"
55+
HCCL_BUFFSIZE: "1200"
56+
server_cmd_template:
57+
- --host
58+
- "0.0.0.0"
59+
- --port
60+
- ${PORT}
61+
- --data-parallel-size
62+
- ${DP_SIZE}
63+
- --data-parallel-rank
64+
- ${DP_RANK}
65+
- --data-parallel-address
66+
- ${DP_ADDRESS}
67+
- --data-parallel-rpc-port
68+
- ${DP_RPC_PORT}
69+
- --tensor-parallel-size
70+
- ${TP_SIZE}
71+
- --enable-expert-parallel
72+
- --max-model-len
73+
- "40960"
74+
- --max-num-batched-tokens
75+
- "16384"
76+
- --max-num-seqs
77+
- "32"
78+
- --trust-remote-code
79+
- --gpu-memory-utilization
80+
- "0.8"
81+
- --quantization
82+
- "ascend"
83+
- --enforce-eager
84+
- --no-enable-prefix_caching
85+
- --speculative-config
86+
- '{"method":"eagle3","model":"vllm-ascend/MiniMax-M2.5-eagle-model-0318","num_speculative_tokens":3}'
87+
- --additional-config
88+
- '{"recompute_scheduler_enable": true}'
89+
- --kv-transfer-config
90+
- '{"kv_connector": "MooncakeConnectorV1",
91+
"kv_role": "kv_producer",
92+
"kv_port": 30000,
93+
"kv_connector_extra_config": {
94+
"prefill": {
95+
"dp_size": 4,
96+
"tp_size": 4
97+
},
98+
"decode": {
99+
"dp_size": 4,
100+
"tp_size": 4
101+
}
102+
}}'
103+
104+
- node_index: 1
105+
envs:
106+
<<: *env_common
107+
VLLM_ASCEND_ENABLE_FLASHCOMM1: "0"
108+
HCCL_BUFFSIZE: "512"
109+
server_cmd_template:
110+
- --host
111+
- "0.0.0.0"
112+
- --port
113+
- ${PORT}
114+
- --data-parallel-size
115+
- ${DP_SIZE}
116+
- --data-parallel-rank
117+
- ${DP_RANK}
118+
- --data-parallel-address
119+
- ${DP_ADDRESS}
120+
- --data-parallel-rpc-port
121+
- ${DP_RPC_PORT}
122+
- --tensor-parallel-size
123+
- ${TP_SIZE}
124+
- --enable-expert-parallel
125+
- --max-model-len
126+
- "40960"
127+
- --max-num-batched-tokens
128+
- "256"
129+
- --max-num-seqs
130+
- "16"
131+
- --trust-remote-code
132+
- --gpu-memory-utilization
133+
- "0.9"
134+
- --quantization
135+
- "ascend"
136+
- --no-enable-prefix_caching
137+
- --speculative-config
138+
- '{"method":"eagle3","model":"vllm-ascend/MiniMax-M2.5-eagle-model-0318","num_speculative_tokens":3}'
139+
- --compilation-config
140+
- '{"cudagraph_mode":"FULL_DECODE_ONLY"}'
141+
- --additional-config
142+
- '{"recompute_scheduler_enable": true,"multistream_overlap_shared_expert": true}'
143+
- --kv-transfer-config
144+
- '{"kv_connector": "MooncakeConnectorV1",
145+
"kv_role": "kv_consumer",
146+
"kv_port": 30100,
147+
"kv_connector_extra_config": {
148+
"prefill": {
149+
"dp_size": 4,
150+
"tp_size": 4
151+
},
152+
"decode": {
153+
"dp_size": 4,
154+
"tp_size": 4
155+
}
156+
}}'
157+
158+
- node_index: 2
159+
envs:
160+
<<: *env_common
161+
VLLM_ASCEND_ENABLE_FLASHCOMM1: "0"
162+
HCCL_BUFFSIZE: "512"
163+
server_cmd_template:
164+
- --host
165+
- "0.0.0.0"
166+
- --port
167+
- ${PORT}
168+
- --data-parallel-size
169+
- ${DP_SIZE}
170+
- --data-parallel-rank
171+
- ${DP_RANK}
172+
- --data-parallel-address
173+
- ${DP_ADDRESS}
174+
- --data-parallel-rpc-port
175+
- ${DP_RPC_PORT}
176+
- --tensor-parallel-size
177+
- ${TP_SIZE}
178+
- --enable-expert-parallel
179+
- --max-model-len
180+
- "40960"
181+
- --max-num-batched-tokens
182+
- "256"
183+
- --max-num-seqs
184+
- "16"
185+
- --trust-remote-code
186+
- --gpu-memory-utilization
187+
- "0.9"
188+
- --quantization
189+
- "ascend"
190+
- --no-enable-prefix_caching
191+
- --speculative-config
192+
- '{"method":"eagle3","model":"vllm-ascend/MiniMax-M2.5-eagle-model-0318","num_speculative_tokens":3}'
193+
- --compilation-config
194+
- '{"cudagraph_mode":"FULL_DECODE_ONLY"}'
195+
- --additional-config
196+
- '{"recompute_scheduler_enable": true,"multistream_overlap_shared_expert": true}'
197+
- --kv-transfer-config
198+
- '{"kv_connector": "MooncakeConnectorV1",
199+
"kv_role": "kv_consumer",
200+
"kv_port": 30200,
201+
"kv_connector_extra_config": {
202+
"prefill": {
203+
"dp_size": 4,
204+
"tp_size": 4
205+
},
206+
"decode": {
207+
"dp_size": 4,
208+
"tp_size": 4
209+
}
210+
}}'
211+
212+
benchmarks:
213+
perf:
214+
case_type: performance
215+
dataset_path: vllm-ascend/GSM8K_prefix0_in32768_bs1000_Minimax
216+
request_conf: vllm_api_stream_chat
217+
dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_str_perf
218+
num_prompts: 4
219+
max_out_len: 512
220+
batch_size: 1
221+
request_rate: 1
222+
baseline: 28.77
223+
threshold: 0.97

tests/e2e/weekly/single_node/configs/MiniMax-M2.5-w8a8-QuaRot-A3.yaml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ test_cases:
5353
max_out_len: 1024
5454
batch_size: 30
5555
request_rate: 0
56-
baseline: 1
56+
baseline: 548.06
5757
threshold: 0.97
5858
- name: "MiniMax-M2.5-w8a8-in16k-16-4"
5959
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -106,7 +106,7 @@ test_cases:
106106
max_out_len: 1024
107107
batch_size: 4
108108
request_rate: 0
109-
baseline: 1
109+
baseline: 191.58
110110
threshold: 0.97
111111
- name: "MiniMax-M2.5-w8a8-in32k-36-9"
112112
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -158,7 +158,7 @@ test_cases:
158158
max_out_len: 512
159159
batch_size: 9
160160
request_rate: 0
161-
baseline: 1
161+
baseline: 146.06
162162
threshold: 0.97
163163
- name: "MiniMax-M2.5-w8a8-in32k-80-20"
164164
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -210,7 +210,7 @@ test_cases:
210210
max_out_len: 512
211211
batch_size: 20
212212
request_rate: 0
213-
baseline: 1
213+
baseline: 428.36
214214
threshold: 0.97
215215
- name: "MiniMax-M2.5-w8a8-in32k-4-1"
216216
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -262,7 +262,7 @@ test_cases:
262262
max_out_len: 512
263263
batch_size: 1
264264
request_rate: 0
265-
baseline: 1
265+
baseline: 35.17
266266
threshold: 0.97
267267
- name: "MiniMax-M2.5-w8a8-in32k-4-1-90"
268268
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -314,7 +314,7 @@ test_cases:
314314
max_out_len: 512
315315
batch_size: 1
316316
request_rate: 0
317-
baseline: 1
317+
baseline: 39.86
318318
threshold: 0.97
319319
- name: "MiniMax-M2.5-w8a8-in64k-72-18"
320320
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -366,7 +366,7 @@ test_cases:
366366
max_out_len: 1024
367367
batch_size: 18
368368
request_rate: 0
369-
baseline: 1
369+
baseline: 321.37
370370
threshold: 0.97
371371
- name: "MiniMax-M2.5-w8a8-in64k-4-1"
372372
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -414,11 +414,11 @@ test_cases:
414414
dataset_path: vllm-ascend/GSM8K_prefix90_in65536_bs1000_Minimax
415415
request_conf: vllm_api_stream_chat
416416
dataset_conf: gsm8k/gsm8k_gen_0_shot_cot_str_perf
417-
num_prompts: 72
417+
num_prompts: 4
418418
max_out_len: 1024
419-
batch_size: 18
419+
batch_size: 1
420420
request_rate: 0
421-
baseline: 1
421+
baseline: 30.98
422422
threshold: 0.97
423423
- name: "MiniMax-M2.5-w8a8-in128k-32-8"
424424
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -474,7 +474,7 @@ test_cases:
474474
max_out_len: 1024
475475
batch_size: 8
476476
request_rate: 0
477-
baseline: 1
477+
baseline: 132.5
478478
threshold: 0.97
479479
- name: "MiniMax-M2.5-w8a8-in128k-4-1"
480480
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -530,7 +530,7 @@ test_cases:
530530
max_out_len: 1024
531531
batch_size: 1
532532
request_rate: 0
533-
baseline: 1
533+
baseline: 24.66
534534
threshold: 0.97
535535
- name: "MiniMax-M2.5-w8a8-in128k-64-16"
536536
model: "Eco-Tech/MiniMax-M2.5-w8a8-QuaRot"
@@ -581,5 +581,5 @@ test_cases:
581581
max_out_len: 1024
582582
batch_size: 16
583583
request_rate: 0
584-
baseline: 1
584+
baseline: 296.08
585585
threshold: 0.97

0 commit comments

Comments
 (0)