main
yaml 465 lines 17.2 KB
Raw
1 group: Compile
2 depends_on:
3 - image-build
4 steps:
5 - label: ":nvidia: (B200) Sequence Parallel Correctness"
6 key: sequence-parallel-correctness-tests-2xb200
7 timeout_in_minutes: 45
8 working_dir: "/vllm-workspace/"
9 device: b200-k8s
10 optional: true
11 num_devices: 2
12 commands:
13 - export VLLM_TEST_CLEAN_GPU_MEMORY=1
14 - pytest -v -s tests/compile/correctness_e2e/test_sequence_parallel.py
15 mirror:
16 amd:
17 label: ":amd: (MI355) Sequence Parallel Correctness"
18 dind: false
19 device: mi355_2
20 num_devices: 2
21 timeout_in_minutes: 180
22 depends_on:
23 - image-build-amd
24 source_file_dependencies:
25 - .buildkite/test_areas/compile.yaml
26 - vllm/compilation/
27 - vllm/config/
28 - vllm/distributed/
29 - vllm/model_executor/kernels/linear/
30 - vllm/model_executor/layers/
31 - vllm/model_executor/models/llama.py
32 - vllm/v1/attention/
33 - vllm/v1/worker/
34 - vllm/v1/cudagraph_dispatcher.py
35 - vllm/platforms/rocm.py
36 - tests/compile/correctness_e2e/test_sequence_parallel.py
37 - tests/models/registry.py
38 - tests/utils.py
39
40 - label: ":nvidia: (B200) AsyncTP Correctness"
41 key: asynctp-correctness-tests-b200
42 timeout_in_minutes: 30
43 working_dir: "/vllm-workspace/"
44 device: b200-k8s
45 optional: true
46 num_devices: 2
47 commands:
48 - export VLLM_TEST_CLEAN_GPU_MEMORY=1
49 - pytest -v -s tests/compile/correctness_e2e/test_async_tp.py
50 mirror:
51 amd:
52 label: ":amd: (MI355) AsyncTP Correctness"
53 dind: false
54 device: mi355_2
55 num_devices: 2
56 timeout_in_minutes: 60
57 working_dir: "/vllm-workspace/"
58 depends_on:
59 - image-build-amd
60 source_file_dependencies:
61 - .buildkite/test_areas/compile.yaml
62 - vllm/compilation/
63 - vllm/config/
64 - vllm/distributed/
65 - vllm/model_executor/layers/
66 - vllm/model_executor/kernels/linear/
67 - vllm/model_executor/models/llama.py
68 - vllm/model_executor/models/qwen3.py
69 - vllm/v1/attention/
70 - vllm/_aiter_ops.py
71 - vllm/platforms/rocm.py
72 - vllm/transformers_utils/repo_utils.py
73 - tests/compile/correctness_e2e/test_async_tp.py
74 - tests/compile/fusions_e2e/common.py
75 - tests/models/registry.py
76 - tests/utils.py
77 commands:
78 - export VLLM_TEST_CLEAN_GPU_MEMORY=1
79 - pytest -v -s tests/compile/correctness_e2e/test_async_tp.py::test_rocm_async_tp_bf16_output_correctness
80 - pytest -v -s tests/compile/correctness_e2e/test_async_tp.py::test_async_tp_pass_correctness -k RedHatAI
81 - pytest -v -s tests/compile/correctness_e2e/test_async_tp.py::test_async_tp_pass_nvfp4_correctness
82
83 - label: ":nvidia: (H100) Distributed Compile"
84 key: distributed-compile-unit-tests-2xh100
85 timeout_in_minutes: 45
86 working_dir: "/vllm-workspace/"
87 device: h100
88 num_devices: 2
89 source_file_dependencies:
90 - vllm/compilation/
91 - vllm/model_executor/layers
92 - tests/compile/passes/distributed/
93 commands:
94 - export VLLM_TEST_CLEAN_GPU_MEMORY=1
95 - pytest -s -v tests/compile/passes/distributed
96
97 - label: ":nvidia: (B200) Fusion and Compile"
98 key: fusion-and-compile-unit-tests-2xb200
99 timeout_in_minutes: 30
100 working_dir: "/vllm-workspace/"
101 device: b200-k8s
102 source_file_dependencies:
103 - csrc/quantization/fp4/
104 - vllm/model_executor/layers/quantization/
105 - vllm/model_executor/layers/fusion/
106 - vllm/model_executor/layers/layernorm.py
107 - vllm/model_executor/layers/activation.py
108 - vllm/model_executor/layers/attention/attention.py
109 - vllm/v1/attention/backends/flashinfer.py
110 - vllm/compilation/ # TODO(luka) limit to vllm/compilation/passes
111 - tests/compile/passes/test_fusion_attn.py
112 - tests/compile/passes/test_mla_attn_quant_fusion.py
113 - tests/compile/passes/test_silu_mul_quant_fusion.py
114 - tests/compile/passes/test_silu_mul_quant_manual_fusion.py
115 - tests/compile/passes/distributed/test_fusion_all_reduce.py
116 - tests/compile/fullgraph/test_full_graph.py
117 commands:
118 # b200 runners are limited, so we limit the tests to the minimum set only supported on Blackwell
119 - nvidia-smi
120 - pytest -v -s tests/compile/passes/test_fusion_attn.py -k FLASHINFER
121 - pytest -v -s tests/compile/passes/test_mla_attn_quant_fusion.py
122 - pytest -v -s tests/compile/passes/test_silu_mul_quant_fusion.py
123 - pytest -v -s tests/compile/passes/test_silu_mul_quant_manual_fusion.py
124 # this runner has 2 GPUs available even though num_devices=2 is not set
125 - pytest -v -s tests/compile/passes/distributed/test_fusion_all_reduce.py
126 mirror:
127 amd:
128 label: ":amd: (MI355) Fusion and Compile FP8"
129 dind: false
130 device: mi355_2
131 num_devices: 2
132 working_dir: "/vllm-workspace/"
133 timeout_in_minutes: 45
134 depends_on:
135 - image-build-amd
136 source_file_dependencies:
137 - vllm/compilation/
138 - vllm/model_executor/layers/
139 - vllm/v1/attention/
140 - vllm/distributed/
141 - vllm/_aiter_ops.py
142 - tests/compile/passes/
143 - tests/compile/correctness_e2e/test_attn_quant.py
144 - vllm/model_executor/kernels/linear/
145 - vllm/model_executor/models/llama.py
146 commands:
147 - amd-smi
148 # MLA static FP8 and distributed AR/RMS are owned by the existing ROCm jobs.
149 - pytest -v -s tests/compile/passes/test_fusion_attn.py tests/compile/passes/test_silu_mul_quant_fusion.py tests/compile/passes/test_silu_mul_quant_manual_fusion.py
150 - pytest -v -s tests/compile/correctness_e2e/test_attn_quant.py
151
152 - label: ":nvidia: (H100) Fusion E2E Quick"
153 key: fusion-e2e-quick-h100
154 timeout_in_minutes: 25
155 working_dir: "/vllm-workspace/"
156 device: h100
157 num_devices: 1
158 source_file_dependencies:
159 - csrc/quantization/
160 - vllm/model_executor/
161 - vllm/v1/attention/
162 - vllm/compilation/
163 - tests/compile/fusions_e2e/
164 commands:
165 - nvidia-smi
166 # Run all models and attn backends but only Inductor partition and native custom ops
167 - pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k "inductor_partition and not +rms_norm and not +quant_fp8"
168 # Qwen/Deepseek requires +quant_fp8 as -quant_fp8 rms+quant fusion is not supported
169 - pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k "inductor_partition and not +rms_norm and +quant_fp8 and (qwen3 or deepseek)"
170 mirror:
171 amd:
172 label: ":amd: (MI355 DPX) Fusion E2E Quick"
173 dind: false
174 device: mi355_dpx
175 working_dir: "/vllm-workspace/"
176 timeout_in_minutes: 30
177 depends_on:
178 - image-build-amd
179 source_file_dependencies:
180 - csrc/quantization/
181 - vllm/model_executor/
182 - vllm/v1/attention/
183 - vllm/compilation/
184 - tests/compile/fusions_e2e/
185 - vllm/_aiter_ops.py
186 - vllm/platforms/rocm.py
187 commands:
188 - rocm-smi
189 - "pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k 'inductor_partition and not +rms_norm and not +quant_fp8'"
190 - "pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k 'inductor_partition and +rms_norm and +quant_fp8 and qwen3'"
191
192 - label: ":nvidia: (H100) Fusion E2E Config Sweep"
193 key: fusion-e2e-config-sweep-h100
194 timeout_in_minutes: 25
195 working_dir: "/vllm-workspace/"
196 device: h100
197 num_devices: 1
198 source_file_dependencies:
199 - csrc/quantization/
200 - vllm/compilation/
201 # can affect pattern matching
202 - vllm/model_executor/layers/layernorm.py
203 - vllm/model_executor/layers/activation.py
204 - vllm/model_executor/layers/attention/attention.py
205 - vllm/model_executor/layers/quantization/input_quant_fp8.py
206 - tests/compile/fusions_e2e/
207 commands:
208 - nvidia-smi
209 # Run just llama3 (fp8) for all config combinations
210 - pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k "llama-3"
211 mirror:
212 amd:
213 label: ":amd: (MI355 DPX) Fusion E2E Config Sweep"
214 dind: false
215 device: mi355_dpx
216 working_dir: "/vllm-workspace/"
217 timeout_in_minutes: 40
218 depends_on:
219 - image-build-amd
220 source_file_dependencies:
221 - csrc/quantization/
222 - vllm/compilation/
223 - vllm/model_executor/layers/layernorm.py
224 - vllm/model_executor/layers/activation.py
225 - vllm/model_executor/layers/attention/attention.py
226 - vllm/model_executor/layers/quantization/input_quant_fp8.py
227 - tests/compile/fusions_e2e/
228 - vllm/_aiter_ops.py
229 - vllm/platforms/rocm.py
230 commands:
231 - rocm-smi
232 - pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k "llama-3"
233
234 - label: ":nvidia: (B200) Fusion E2E Config Sweep"
235 key: fusion-e2e-config-sweep-b200
236 timeout_in_minutes: 30
237 working_dir: "/vllm-workspace/"
238 device: b200-k8s
239 num_devices: 1
240 optional: true
241 commands:
242 - nvidia-smi
243 # Run all models but only FLASHINFER, Inductor partition and native custom ops
244 # Qwen/Deepseek requires +quant_fp8 as -quant_fp8 rms+quant fusion is not supported
245 # Run just llama3 (fp8 & fp4) for all config combinations (only inductor partition)
246 - pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k "inductor_partition and (FLASHINFER and not +rms_norm and (not +quant_fp8 or +quant_fp8 and (qwen3 or deepseek)) or llama-3)"
247 mirror:
248 amd:
249 label: ":amd: (MI355 DPX) Fusion E2E FP8 Config Sweep"
250 dind: false
251 device: mi355_dpx
252 timeout_in_minutes: 45
253 working_dir: "/vllm-workspace/"
254 depends_on:
255 - image-build-amd
256 source_file_dependencies:
257 - .buildkite/test_areas/compile.yaml
258 - csrc/quantization/
259 - vllm/compilation/
260 - vllm/model_executor/
261 - vllm/v1/attention/
262 - vllm/_aiter_ops.py
263 - vllm/platforms/rocm.py
264 - tests/compile/fusions_e2e/
265 commands:
266 - rocm-smi
267 - pytest -v -s tests/compile/fusions_e2e/test_tp1_quant.py -k "test_tp1_fp8_fusions and inductor_partition and not +rms_norm and not True and ((Llama-3 and TRITON_ATTN) or (Qwen3-30B and +quant_fp8 and TRITON_ATTN) or (DeepSeek-Coder and +quant_fp8 and TRITON_MLA))"
268
269 - label: ":nvidia: (H100) Fusion E2E TP2 Quick"
270 key: fusion-e2e-tp2-quick-h100
271 timeout_in_minutes: 35
272 working_dir: "/vllm-workspace/"
273 device: h100
274 num_devices: 2
275 source_file_dependencies:
276 - csrc/quantization/
277 - vllm/model_executor/
278 - vllm/v1/attention/
279 - vllm/compilation/
280 - tests/compile/fusions_e2e/
281 commands:
282 - nvidia-smi
283 # Run all models and attn backends but only Inductor partition and native custom ops
284 - pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py -k "inductor_partition and not +rms_norm and (not +quant_fp8 or +quant_fp8 and (qwen3 or deepseek))"
285 - pytest -v -s tests/compile/fusions_e2e/test_tp2_async_tp.py -k "inductor_partition and not +rms_norm and (not +quant_fp8 or +quant_fp8 and (qwen3 or deepseek))"
286 mirror:
287 amd:
288 label: ":amd: (MI355) Fusion E2E TP2 Quick"
289 dind: false
290 device: mi355_2
291 timeout_in_minutes: 60
292 depends_on:
293 - image-build-amd
294 working_dir: /vllm-workspace/
295 source_file_dependencies:
296 - csrc/quantization/
297 - vllm/compilation/
298 - vllm/distributed/
299 - vllm/model_executor/
300 - vllm/v1/attention/
301 - tests/compile/fusions_e2e/
302 - vllm/_aiter_ops.py
303 - vllm/platforms/rocm.py
304 commands:
305 - export VLLM_TEST_CLEAN_GPU_MEMORY=1
306 - >-
307 VLLM_ROCM_USE_AITER=1
308 VLLM_ROCM_USE_AITER_CUSTOM_AR=1
309 pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py
310 -k 'test_tp2_ar_rms_fp8_fusions and inductor_partition and
311 not +quant_fp8 and not +rms_norm and Llama-3 and
312 ROCM_AITER_UNIFIED_ATTN'
313 - >-
314 VLLM_ROCM_USE_AITER=1
315 VLLM_ROCM_USE_AITER_CUSTOM_AR=1
316 pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py
317 -k 'test_tp2_ar_rms_fp8_fusions and inductor_partition and
318 +quant_fp8 and +rms_norm and qwen3 and
319 ROCM_AITER_UNIFIED_ATTN'
320 - >-
321 VLLM_ROCM_USE_AITER=1
322 VLLM_ROCM_USE_AITER_CUSTOM_AR=1
323 pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py
324 -k 'test_tp2_ar_rms_fp8_fusions and inductor_partition and
325 not +quant_fp8 and not +rms_norm and DeepSeek-Coder and
326 ROCM_AITER_MLA'
327
328 - label: ":nvidia: (H100) Fusion E2E TP2 AR-RMS Config Sweep"
329 key: fusion-e2e-tp2-ar-rms-config-sweep-h100
330 timeout_in_minutes: 30
331 working_dir: "/vllm-workspace/"
332 device: h100
333 num_devices: 2
334 source_file_dependencies:
335 - csrc/quantization/
336 - vllm/compilation/
337 # can affect pattern matching
338 - vllm/model_executor/layers/layernorm.py
339 - vllm/model_executor/layers/activation.py
340 - vllm/model_executor/layers/attention/attention.py
341 - vllm/model_executor/layers/quantization/input_quant_fp8.py
342 - tests/compile/fusions_e2e/
343 commands:
344 - nvidia-smi
345 # Run just llama3 (fp8 & bf16) for all config combinations
346 - pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py -k "llama-3"
347 mirror:
348 amd:
349 label: ":amd: (MI355) Fusion E2E TP2 AR-RMS FP8 Config Sweep"
350 dind: false
351 device: mi355_2
352 num_devices: 2
353 timeout_in_minutes: 45
354 working_dir: "/vllm-workspace/"
355 depends_on:
356 - image-build-amd
357 source_file_dependencies:
358 - vllm/compilation/
359 - vllm/model_executor/
360 - vllm/distributed/
361 - vllm/v1/attention/
362 - vllm/_aiter_ops.py
363 - vllm/platforms/rocm.py
364 - tests/compile/fusions_e2e/
365 - tests/utils.py
366 - tests/conftest.py
367 - csrc/quantization/
368 commands:
369 # Existing MI300 jobs own BF16; TP2 Quick owns the excluded Llama cell.
370 - amd-smi
371 - VLLM_ROCM_USE_AITER=1 VLLM_ROCM_USE_AITER_CUSTOM_AR=1 pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py -k 'test_tp2_ar_rms_fp8_fusions and Llama-3 and ROCM_AITER_UNIFIED_ATTN and (dynamo_partition or +quant_fp8 or +rms_norm)'
372
373 - label: ":nvidia: (H100) Fusion E2E TP2 AsyncTP Config Sweep"
374 key: fusion-e2e-tp2-asynctp-config-sweep-h100
375 timeout_in_minutes: 40
376 working_dir: "/vllm-workspace/"
377 device: h100
378 num_devices: 2
379 source_file_dependencies:
380 - csrc/quantization/
381 - vllm/compilation/
382 # can affect pattern matching
383 - vllm/model_executor/layers/layernorm.py
384 - vllm/model_executor/layers/activation.py
385 - vllm/model_executor/layers/attention/attention.py
386 - vllm/model_executor/layers/quantization/input_quant_fp8.py
387 - tests/compile/fusions_e2e/
388 commands:
389 - nvidia-smi
390 # Run just llama3 (fp8 & bf16) for all config combinations
391 - pytest -v -s tests/compile/fusions_e2e/test_tp2_async_tp.py -k "llama-3"
392 mirror:
393 amd:
394 label: ':amd: (MI355) Fusion E2E TP2 AsyncTP BF16 Config Sweep'
395 dind: false
396 device: mi355_2
397 num_devices: 2
398 working_dir: /vllm-workspace/
399 timeout_in_minutes: 30
400 depends_on:
401 - image-build-amd
402 source_file_dependencies:
403 - vllm/compilation/
404 - vllm/model_executor/layers/linear.py
405 - vllm/model_executor/layers/utils.py
406 - vllm/distributed/
407 - vllm/v1/attention/backends/triton_attn.py
408 - tests/compile/fusions_e2e/
409 - tests/compile/passes/distributed/test_async_tp.py
410 - tests/compile/rocm/test_async_tp.py
411 - tests/compile/correctness_e2e/test_async_tp.py
412 - vllm/model_executor/kernels/linear/
413 - vllm/model_executor/models/qwen3.py
414 commands:
415 - rocm-smi
416 - pytest -v -s tests/compile/rocm/test_async_tp.py
417 - pytest -v -s tests/compile/fusions_e2e/test_tp2_rocm_async_tp.py
418 - pytest -v -s tests/compile/correctness_e2e/test_async_tp.py::test_rocm_async_tp_bf16_output_correctness
419
420 - label: ":nvidia: (B200) Fusion E2E TP2"
421 key: fusion-e2e-tp2-b200
422 timeout_in_minutes: 45
423 working_dir: "/vllm-workspace/"
424 device: b200-k8s
425 num_devices: 2
426 source_file_dependencies:
427 - csrc/quantization/
428 - vllm/model_executor/
429 - vllm/v1/attention/
430 - vllm/compilation/
431 - tests/compile/fusions_e2e/
432 commands:
433 - nvidia-smi
434 # Run all models but only FLASHINFER, Inductor partition and native custom ops
435 # include qwen/deepseek with +quant_fp8 as -quant_fp8 rms+quant fusion is not supported
436 # for ar-rms-quant-fp4, also sweep llama3
437 - pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py -k "(FLASHINFER and inductor_partition and not +rms_norm and (not +quant_fp8 or +quant_fp8 and (qwen3 or deepseek))) or Llama-3.1-8B-Instruct-FP4"
438 - pytest -v -s tests/compile/fusions_e2e/test_tp2_async_tp.py -k "FLASHINFER and inductor_partition and not +rms_norm and (not +quant_fp8 or +quant_fp8 and (qwen3 or deepseek))"
439 mirror:
440 amd:
441 label: ":amd: (MI355) Fusion E2E TP2 FP8 BF16 rewrites"
442 dind: false
443 device: mi355_2
444 num_devices: 2
445 timeout_in_minutes: 45
446 working_dir: "/vllm-workspace/"
447 depends_on:
448 - image-build-amd
449 source_file_dependencies:
450 - vllm/compilation/
451 - vllm/model_executor/
452 - vllm/distributed/
453 - vllm/v1/attention/
454 - vllm/_aiter_ops.py
455 - vllm/platforms/rocm.py
456 - tests/compile/fusions_e2e/
457 - tests/utils.py
458 - tests/conftest.py
459 - csrc/quantization/
460 commands:
461 # Dummy-weight rewrite coverage; trained FP8 AR/RMS equivalence is unresolved.
462 # TODO: FP4 output-quant and trained MXFP4 AR/RMS fusion remain unsupported.
463 - amd-smi
464 - VLLM_ROCM_USE_AITER=1 VLLM_ROCM_USE_AITER_CUSTOM_AR=1 pytest -v -s tests/compile/fusions_e2e/test_tp2_ar_rms.py -k 'test_tp2_ar_rms_fp8_fusions and qwen3 and ROCM_AITER_UNIFIED_ATTN and +quant_fp8 and (dynamo_partition or not +rms_norm)'
465 - pytest -v -s tests/compile/fusions_e2e/test_tp2_rocm_moe.py