main
yaml 1,009 lines 36 KB
Raw
1 group: Kernels
2 depends_on:
3 - image-build
4 steps:
5 - label: ":nvidia: (H200 MIG 18GB) vLLM IR"
6 key: vllm-ir-tests
7 timeout_in_minutes: 35
8 device: h200_18gb
9 working_dir: "/vllm-workspace/"
10 source_file_dependencies:
11 - vllm/ir
12 - vllm/kernels
13 commands:
14 - pytest -v -s tests/ir
15 - pytest -v -s tests/kernels/ir
16 mirror:
17 amd:
18 label: ":amd: (MI355 DPX) vLLM IR"
19 dind: false
20 device: mi355_dpx
21 timeout_in_minutes: 50
22 working_dir: "/vllm-workspace/"
23 depends_on:
24 - image-build-amd
25 source_file_dependencies:
26 - tests/ir/
27 - tests/kernels/ir/
28 - vllm/ir
29 - vllm/kernels
30 - vllm/_aiter_ops.py
31 - vllm/platforms/rocm.py
32
33 - label: ":nvidia: (H200 MIG 35GB) Core Operation Kernels Shard %N"
34 device: h200_35gb
35 key: kernels-core-operation-test
36 timeout_in_minutes: 120
37 source_file_dependencies:
38 - csrc/
39 - tests/kernels/core
40 - tests/kernels/test_concat_mla_q.py
41 - tests/kernels/test_fused_qk_norm_rope_gate.py
42 commands:
43 - pytest -v -s kernels/core --ignore=kernels/core/test_minimax_reduce_rms.py kernels/test_concat_mla_q.py kernels/test_fused_qk_norm_rope_gate.py --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
44 parallelism: 3
45 mirror:
46 amd:
47 label: ":amd: (MI300) Core Operation Kernels Shard %N"
48 dind: false
49 device: mi300_1
50 timeout_in_minutes: 45
51 working_dir: "/vllm-workspace/tests"
52 depends_on:
53 - image-build-amd
54 source_file_dependencies:
55 - csrc/
56 - tests/kernels/core
57 - tests/kernels/test_top_k_per_row.py
58 - tests/kernels/test_concat_mla_q.py
59 - tests/kernels/test_rocm_fp32_router_gemm.py
60 - vllm/model_executor/layers/fused_moe/router/gate_linear.py
61 - vllm/model_executor/layers/fused_moe/router/rocm_fp32_router_gemm.py
62 - vllm/model_executor/layers/rotary_embedding/
63 - vllm/_aiter_ops.py
64 - vllm/platforms/rocm.py
65 - tests/kernels/test_fused_qk_norm_rope_gate.py
66 commands:
67 - pytest -v -s kernels/core --ignore=kernels/core/test_minimax_reduce_rms.py kernels/test_fused_qk_norm_rope_gate.py kernels/test_concat_mla_q.py kernels/test_top_k_per_row.py kernels/test_rocm_fp32_router_gemm.py --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
68
69 - label: ":nvidia: (H100) MiniMax Reduce RMS Kernels"
70 key: kernels-minimax-reduce-rms-test-2-gpus
71 timeout_in_minutes: 20
72 num_devices: 2
73 device: h100
74 source_file_dependencies:
75 - csrc/libtorch_stable/minimax_reduce_rms_kernel.cu
76 - csrc/libtorch_stable/minimax_reduce_rms_kernel.h
77 - csrc/libtorch_stable/ops.h
78 - csrc/libtorch_stable/torch_bindings.cpp
79 - vllm/model_executor/layers/minimax_rms_norm/
80 - vllm/model_executor/layers/mamba/linear/minimax_linear_attn.py
81 - tests/kernels/core/test_minimax_reduce_rms.py
82 commands:
83 - pytest -v -s kernels/core/test_minimax_reduce_rms.py
84 mirror:
85 amd:
86 label: ":amd: (MI355) MiniMax Reduce RMS Kernels"
87 dind: false
88 device: mi355_2
89 timeout_in_minutes: 45
90 working_dir: "/vllm-workspace/tests"
91 depends_on:
92 - image-build-amd
93 source_file_dependencies:
94 - vllm/model_executor/layers/minimax_rms_norm/
95 - vllm/distributed/
96 - vllm/_aiter_ops.py
97 - vllm/envs.py
98 - vllm/platforms/rocm.py
99 - tests/kernels/core/test_minimax_reduce_rms.py
100 - tests/utils.py
101
102 - label: ":nvidia: (H100) DeepSeek V4 Kernels"
103 key: deepseek-v4-kernel-test-h100
104 timeout_in_minutes: 30
105 device: h100
106 source_file_dependencies:
107 - csrc/fused_deepseek_v4_qnorm_rope_kv_insert_kernel.cu
108 - vllm/models/deepseek_v4/common/ops/
109 - tests/kernels/test_fused_deepseek_v4_qnorm_rope_kv_insert.py
110 - tests/kernels/test_top_k_per_row.py # it runs on Blackwell too - some kernels have arch-specific optimizations
111 commands:
112 - pytest -v -s kernels/test_fused_deepseek_v4_*.py
113 - pytest -v -s kernels/test_top_k_per_row.py
114 mirror:
115 amd:
116 label: ":amd: (MI355 DPX) DeepSeek V4 Fused Kernels"
117 dind: false
118 device: mi355_dpx
119 num_devices: 1
120 timeout_in_minutes: 60
121 working_dir: /vllm-workspace/tests
122 depends_on:
123 - image-build-amd
124 source_file_dependencies:
125 - csrc/libtorch_stable/fused_deepseek_v4_qnorm_rope_kv_insert_kernel.cu
126 - vllm/models/deepseek_v4/common/ops/
127 - tests/kernels/test_fused_deepseek_v4_qnorm_rope_kv_insert.py
128 - vllm/platforms/rocm.py
129 commands:
130 - pytest -v -s kernels/test_fused_deepseek_v4_qnorm_rope_kv_insert.py
131
132 - label: ":nvidia: (B200) DeepSeek V4 Kernels"
133 key: deepseek-v4-kernel-test-b200
134 timeout_in_minutes: 20
135 device: b200-k8s
136 source_file_dependencies:
137 - csrc/fused_deepseek_v4_qnorm_rope_kv_insert_kernel.cu
138 - vllm/models/deepseek_v4/common/ops/
139 - vllm/models/deepseek_v4/nvidia/
140 - vllm/utils/deep_gemm.py
141 - tests/kernels/test_fused_deepseek_v4_qnorm_rope_kv_insert.py
142 - tests/models/test_deepseek_v4_mega_moe.py
143 commands:
144 - pytest -v -s kernels/test_fused_deepseek_v4_*.py
145 - pytest -v -s models/test_deepseek_v4_mega_moe.py
146 mirror:
147 amd:
148 label: ":amd: (MI355) DeepSeek V4 MoE Integration"
149 dind: false
150 device: mi355_1
151 num_devices: 1
152 timeout_in_minutes: 20
153 working_dir: /vllm-workspace/tests
154 depends_on:
155 - image-build-amd
156 source_file_dependencies:
157 - tests/models/test_deepseek_v4_vl_rocm.py
158 - vllm/models/deepseek_v4/amd/
159 - vllm/models/deepseek_v4/common/
160 - vllm/model_executor/layers/fused_moe/
161 - vllm/model_executor/layers/activation.py
162 - vllm/model_executor/layers/linear.py
163 - vllm/config/
164 - vllm/forward_context.py
165 - vllm/v1/worker/workspace.py
166 - vllm/_aiter_ops.py
167 - vllm/platforms/rocm.py
168 - vllm/envs.py
169 commands:
170 # Common qnorm/RoPE/cache kernels already run in the H100 AMD mirror.
171 # Pin the tested BF16 Triton routing and shared-expert path before imports.
172 - VLLM_ROCM_USE_AITER_MOE=0 pytest -v -s models/test_deepseek_v4_vl_rocm.py
173
174 # Own job so mHC never shares a process with FlashInfer's import-time
175 # ptxas override.
176 - label: ":nvidia: (B200) mHC Kernels"
177 key: kernels-mhc-test-b200
178 timeout_in_minutes: 25
179 device: b200-k8s
180 source_file_dependencies:
181 - csrc/
182 - vllm/
183 - "!vllm/distributed/kv_transfer/"
184 - tests/kernels/
185 commands:
186 - pytest -v -s kernels/mhc
187 mirror:
188 amd:
189 label: ":amd: (MI355) mHC Kernels"
190 dind: false
191 device: mi355_1
192 timeout_in_minutes: 50
193 working_dir: "/vllm-workspace/tests"
194 depends_on:
195 - image-build-amd
196 source_file_dependencies:
197 - csrc/
198 - vllm/
199 - tests/kernels/
200 - vllm/platforms/rocm.py
201
202 - label: ":nvidia: (B200) FLA Ops Kernels"
203 key: kernels-fla-ops-test-b200
204 timeout_in_minutes: 25
205 device: b200-k8s
206 source_file_dependencies:
207 - csrc/
208 - vllm/
209 - "!vllm/distributed/kv_transfer/"
210 - tests/kernels/
211 commands:
212 - pytest -v -s kernels/fla
213 mirror:
214 amd:
215 label: ":amd: (MI355) FLA Ops Kernels"
216 dind: false
217 device: mi355_1
218 timeout_in_minutes: 50
219 working_dir: "/vllm-workspace/tests"
220 depends_on:
221 - image-build-amd
222 source_file_dependencies:
223 - csrc/
224 - vllm/
225 - tests/kernels/
226 - vllm/platforms/rocm.py
227
228 # Catch-all for test files at the tests/kernels root. This job collects
229 # the whole root so new files are wired by default.
230 # Files with dedicated jobs elsewhere in this file are excluded via --ignore
231 # (test_bf16x3_router_gemm_cutedsl and test_ll_bf16_gemm run in their own jobs /
232 # Kernels (B200)).
233 - label: ":nvidia: (B200) Miscellaneous Kernels"
234 key: kernels-root-misc-test-b200
235 timeout_in_minutes: 30
236 device: b200-k8s
237 source_file_dependencies:
238 - csrc/
239 - vllm/
240 - "!vllm/distributed/kv_transfer/"
241 - tests/kernels/
242 commands:
243 - pytest -v -s kernels/
244 --ignore=kernels/attention
245 --ignore=kernels/core
246 --ignore=kernels/fla
247 --ignore=kernels/helion
248 --ignore=kernels/ir
249 --ignore=kernels/mamba
250 --ignore=kernels/mhc
251 --ignore=kernels/moe
252 --ignore=kernels/quantization
253 --ignore=kernels/test_concat_mla_q.py
254 --ignore=kernels/test_fused_qk_norm_rope_gate.py
255 --ignore=kernels/test_fused_deepseek_v4_qnorm_rope_kv_insert.py
256 --ignore=kernels/test_top_k_per_row.py
257 --ignore=kernels/test_bf16x3_router_gemm_cutedsl.py
258 --ignore=kernels/test_ll_bf16_gemm.py
259 --ignore=kernels/test_shuffle_rows.py
260 # BROKEN on main, pending kernel fixes (B200):
261 # test_shuffle_rows.py (1: test_shuffle_rows_edge_cases)
262 mirror:
263 amd:
264 label: ":amd: (MI355) Miscellaneous Kernels"
265 dind: false
266 device: mi355_1
267 timeout_in_minutes: 55
268 working_dir: "/vllm-workspace/tests"
269 depends_on:
270 - image-build-amd
271 source_file_dependencies:
272 - csrc/
273 - vllm/
274 - tests/kernels/
275 - vllm/platforms/rocm.py
276 # Keep the ROCm exclusions from #50519: incompatible FlyDSL TurboQuant
277 # and a CUDA source check whose files are absent from the AMD test image.
278 commands:
279 - pytest -v -s
280 kernels/test_apply_repetition_penalties.py
281 kernels/test_awq_int4_to_int8.py
282 kernels/test_bf16_skinny_gemm.py
283 kernels/test_cache_kernels.py
284 kernels/test_compressor_kv_cache.py
285 kernels/test_cp_gather_fp8.py
286 kernels/test_deepseek_v4_cpu_kernels.py
287 kernels/test_dsv41_mega_attn_layouts.py
288 kernels/test_engram.py
289 kernels/test_flashinfer_bf16_gemm.py
290 kernels/test_flex_attention.py
291 kernels/test_fp32_router_gemm.py
292 kernels/test_fused_deepseek_v32_norm_rope.py
293 kernels/test_fused_indexer_q_rope_quant.py
294 kernels/test_fused_inv_rope_fp8_quant.py
295 kernels/test_fused_minimax_m3_qknorm_rope_kv_insert.py
296 kernels/test_fused_quant_activation.py
297 kernels/test_gate_linear_rocm_dispatch.py
298 kernels/test_gemm_rs_ar.py
299 kernels/test_kpool_decode_update_batched.py
300 kernels/test_minimax_m3_amd_ops.py
301 kernels/test_minimax_m3_sparse_attn_fp8_scale.py
302 kernels/test_onednn.py
303 kernels/test_relu2_fp8_quant.py
304 kernels/test_rocm_fp32_router_gemm.py
305 --deselect=tests/kernels/test_bf16_skinny_gemm.py::test_every_dsv3_routed_shape_is_instantiated
306
307 - label: ":nvidia: (L4) Attention Kernels Shard %N"
308 key: kernels-attention-test
309 device: l4
310 num_devices: 1
311 timeout_in_minutes: 30
312 source_file_dependencies:
313 - csrc/attention/
314 - vllm/v1/attention
315 # TODO: remove this dependency (https://github.com/vllm-project/vllm/issues/32267)
316 - vllm/model_executor/layers/attention
317 - vllm/utils/flashinfer.py
318 - tests/kernels/attention
319 commands:
320 - pytest -v -s kernels/attention --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
321 parallelism: 7
322 mirror:
323 amd:
324 label: ":amd: (MI300) Attention Kernels Shard %N"
325 dind: false
326 device: mi300_1
327 timeout_in_minutes: 90
328 parallelism: 6
329 depends_on:
330 - image-build-amd
331 source_file_dependencies:
332 - csrc/attention/
333 - vllm/v1/attention
334 - vllm/model_executor/layers/attention
335 - tests/kernels/attention
336 - vllm/_aiter_ops.py
337 - vllm/envs.py
338 - vllm/platforms/rocm.py
339 commands:
340 - pytest -v -s kernels/attention --ignore=kernels/attention/test_triton_unified_attention_diffkv.py --ignore=kernels/attention/test_rocm_aiter_mla_decode.py --ignore=kernels/attention/test_rocm_aiter_mla_decode_metadata.py --ignore=kernels/attention/test_rocm_aiter_mla_fp8_support.py --ignore=kernels/attention/test_rocm_aiter_mla_op_registration.py --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
341
342 - label: ":nvidia: (H100) Attention DiffKV Kernels"
343 key: kernels-attention-diffkv-test-h100
344 timeout_in_minutes: 20
345 device: h100
346 num_devices: 1
347 source_file_dependencies:
348 - vllm/v1/attention/ops/triton_unified_attention_diffkv.py
349 - vllm/v1/attention/backends/triton_attn_diffkv.py
350 - vllm/v1/attention/backends/flash_attn_diffkv.py
351 - tests/kernels/attention/test_triton_unified_attention_diffkv.py
352 commands:
353 - pytest -v -s kernels/attention/test_triton_unified_attention_diffkv.py
354 mirror:
355 amd:
356 label: ":amd: (MI355 DPX) Attention DiffKV Kernels"
357 dind: false
358 device: mi355_dpx
359 num_devices: 1
360 timeout_in_minutes: 35
361 working_dir: /vllm-workspace/tests
362 depends_on:
363 - image-build-amd
364 source_file_dependencies:
365 - vllm/v1/attention/ops/triton_unified_attention_diffkv.py
366 - vllm/v1/attention/backends/triton_attn_diffkv.py
367 - tests/kernels/attention/test_triton_unified_attention.py
368 - tests/kernels/attention/test_triton_unified_attention_diffkv.py
369 - vllm/platforms/rocm.py
370 commands:
371 - pytest -v -s kernels/attention/test_triton_unified_attention_diffkv.py
372
373 - label: ":nvidia: (H100) MLA Kernel Test"
374 key: kernels-flashmla-test-h100
375 timeout_in_minutes: 25
376 device: h100
377 num_devices: 1
378 source_file_dependencies:
379 - cmake/external_projects/flashmla.cmake
380 - vllm/v1/attention/ops/flashmla.py
381 - vllm/v1/attention/backends/mla/flashmla.py
382 - vllm/v1/attention/backends/mla/flashmla_sparse.py
383 - vllm/v1/attention/backends/mla/flashinfer_mla_sparse_sm90.py
384 - vllm/utils/flashinfer.py
385 - tests/kernels/attention/test_flashinfer_mla_decode.py
386 - tests/kernels/attention/test_flashmla.py
387 - tests/kernels/attention/test_flashmla_sparse.py
388 - tests/kernels/attention/test_mla_cross_layer_kernel_equivalence.py
389 commands:
390 - pytest -v -s kernels/attention/test_flashmla.py
391 - pytest -v -s kernels/attention/test_flashmla_sparse.py
392 - pytest -v -s kernels/attention/test_flashinfer_mla_decode.py
393 - pytest -v -s kernels/attention/test_mla_cross_layer_kernel_equivalence.py
394 mirror:
395 amd:
396 label: ":amd: (MI355 DPX) MLA Kernels"
397 dind: false
398 device: mi355_dpx
399 num_devices: 1
400 timeout_in_minutes: 40
401 working_dir: /vllm-workspace/
402 depends_on:
403 - image-build-amd
404 source_file_dependencies:
405 - vllm/v1/attention/backends/mla/rocm_aiter_mla.py
406 - vllm/v1/attention/selector.py
407 - vllm/platforms/rocm.py
408 - vllm/_aiter_ops.py
409 - tests/kernels/attention/test_rocm_aiter_mla_decode.py
410 - tests/kernels/attention/test_rocm_aiter_mla_decode_metadata.py
411 - tests/kernels/attention/test_rocm_aiter_mla_fp8_support.py
412 - tests/kernels/attention/test_rocm_aiter_mla_op_registration.py
413 commands:
414 - amd-smi
415 - pytest -v -s tests/kernels/attention/test_rocm_aiter_mla_decode_metadata.py
416 - pytest -v -s tests/kernels/attention/test_rocm_aiter_mla_decode.py
417 - pytest -v -s tests/kernels/attention/test_rocm_aiter_mla_fp8_support.py
418 - pytest -v -s tests/kernels/attention/test_rocm_aiter_mla_op_registration.py
419
420 - label: ":nvidia: (L4) Quantization Kernels Shard %N"
421 key: kernels-quantization-test
422 device: l4
423 num_devices: 1
424 timeout_in_minutes: 30
425 source_file_dependencies:
426 - csrc/quantization/
427 - vllm/model_executor/layers/quantization
428 - tests/kernels/quantization
429 commands:
430 - pytest -v -s kernels/quantization --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
431 parallelism: 6
432 mirror:
433 amd:
434 label: ":amd: (MI300) Quantization Kernels Shard %N"
435 dind: false
436 device: mi300_1
437 timeout_in_minutes: 120
438 source_file_dependencies:
439 - csrc/quantization/
440 - vllm/model_executor/layers/quantization
441 - vllm/config/
442 - tests/kernels/quantization
443 - tests/kernels/quantization/test_rocm_skinny_gemms.py
444 - vllm/_aiter_ops.py
445 - vllm/kernels/aiter_ops.py
446 - vllm/platforms/rocm.py
447 - vllm/model_executor/kernels/
448 - csrc/rocm/
449 - vllm/v1/attention/backends/rocm_aiter_fa.py
450 - tests/kernels/quant_utils.py
451 - tests/kernels/utils.py
452 - vllm/_custom_ops.py
453 - vllm/envs.py
454 depends_on:
455 - image-build-amd
456 commands:
457 - pytest -v -s kernels/quantization -k "not test_nvfp4_dense_emulation" --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
458
459 - label: ":nvidia: (L4) MoE Kernels Shard %N"
460 key: kernels-moe-test
461 device: l4
462 num_devices: 1
463 timeout_in_minutes: 50
464 source_file_dependencies:
465 - csrc/quantization/cutlass_w8a8/moe/
466 - csrc/moe/
467 - tests/kernels/moe
468 - vllm/model_executor/layers/fused_moe/
469 - vllm/distributed/device_communicators/
470 - vllm/envs.py
471 - vllm/config
472 commands:
473 - pytest -v -s kernels/moe --ignore=kernels/moe/test_modular_oai_triton_moe.py --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
474 - pytest -v -s kernels/moe/test_modular_oai_triton_moe.py --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
475 parallelism: 5
476 mirror:
477 amd:
478 label: ":amd: (MI300) MoE Kernels Shard %N"
479 dind: false
480 device: mi300_1
481 timeout_in_minutes: 55
482 source_file_dependencies:
483 - csrc/quantization/cutlass_w8a8/moe/
484 - csrc/moe/
485 - tests/kernels/moe
486 - vllm/model_executor/layers/fused_moe/
487 - vllm/distributed/device_communicators/
488 - vllm/envs.py
489 - vllm/config
490 - vllm/_aiter_ops.py
491 - vllm/platforms/rocm.py
492 - csrc/rocm/
493 - tests/kernels/utils.py
494 - vllm/model_executor/layers/quantization/mxfp4.py
495 - vllm/model_executor/layers/quantization/utils/quant_utils.py
496 depends_on:
497 - image-build-amd
498
499 - label: ":nvidia: (H200 MIG 35GB) Mamba Kernels"
500 device: h200_35gb
501 key: kernels-mamba-test
502 timeout_in_minutes: 60
503 source_file_dependencies:
504 - csrc/mamba/
505 - tests/kernels/mamba
506 - vllm/model_executor/layers/mamba/gdn
507 - vllm/model_executor/layers/mamba/ops
508 commands:
509 - pytest -v -s kernels/mamba
510 mirror:
511 amd:
512 label: ":amd: (MI250) Mamba Kernels"
513 dind: false
514 device: mi250_1
515 timeout_in_minutes: 55
516 depends_on:
517 - image-build-amd
518 source_file_dependencies:
519 - vllm/platforms/rocm.py
520 - vllm/third_party/flash_linear_attention/
521
522 - label: ":nvidia: (H100) DeepGEMM Kernels"
523 key: kernels-deepgemm-test-h100
524 timeout_in_minutes: 35
525 device: h100
526 num_devices: 1
527 source_file_dependencies:
528 - cmake/external_projects/deepgemm.cmake
529 - tools/install_deepgemm.sh
530 - tools/build_deepgemm_C.py
531 - tools/setup_deepgemm_pythons.sh
532 - tools/check_wheel_deepgemm.py
533 - vllm/utils/deep_gemm.py
534 - vllm/model_executor/layers/fused_moe
535 - vllm/model_executor/layers/quantization
536 - tests/kernels/quantization/test_block_fp8.py
537 - tests/kernels/moe/test_deepgemm.py
538 - tests/kernels/moe/test_batched_deepgemm.py
539 - tests/kernels/attention/test_deepgemm_attention.py
540 - tests/quantization/test_cutlass_w4a16.py
541 commands:
542 - python3 ../tools/check_wheel_deepgemm.py
543 - pytest -v -s kernels/quantization/test_block_fp8.py
544 - pytest -v -s kernels/moe/test_deepgemm.py
545 - pytest -v -s kernels/moe/test_batched_deepgemm.py
546 - pytest -v -s kernels/attention/test_deepgemm_attention.py
547 - pytest -v -s quantization/test_cutlass_w4a16.py
548
549 - label: ":nvidia: (B200) Kernels Shard %N"
550 key: kernels-b200
551 timeout_in_minutes: 30
552 parallelism: 3
553 working_dir: "/vllm-workspace/"
554 device: b200-k8s
555 # optional: true
556 source_file_dependencies:
557 - csrc/quantization/fp4/
558 - csrc/libtorch_stable/nvfp4_kv_cache_kernels.cu
559 - csrc/libtorch_stable/quantization/fp4/
560 - csrc/libtorch_stable/quantization/w8a8/cutlass/
561 - csrc/attention/mla/
562 - csrc/quantization/cutlass_w8a8/moe/
563 - vllm/model_executor/layers/fusion/
564 - vllm/model_executor/layers/fused_moe/experts/cutlass_moe.py
565 - vllm/model_executor/layers/fused_moe/experts/flashinfer_cutlass_moe.py
566 - vllm/model_executor/layers/fused_moe/experts/trtllm_nvfp4_moe.py
567 - vllm/model_executor/layers/fused_moe/oracle/nvfp4.py
568 - vllm/model_executor/layers/fused_moe/prepare_finalize/flashinfer_nvlink_one_sided.py
569 - vllm/model_executor/layers/fused_moe/prepare_finalize/flashinfer_nvlink_two_sided.py
570 - vllm/model_executor/layers/quantization/utils/flashinfer_utils.py
571 - vllm/v1/attention/backends/flashinfer.py
572 - vllm/v1/attention/backends/mla/cutlass_mla.py
573 - vllm/v1/attention/backends/mla/flashinfer_mla.py
574 - vllm/v1/attention/selector.py
575 - vllm/platforms/cuda.py
576 - vllm/model_executor/kernels/linear/cute_dsl/ll_bf16.py
577 - vllm/model_executor/kernels/linear/cute_dsl/_ll_bf16_dotprod.py
578 - vllm/model_executor/kernels/linear/cute_dsl/_ll_bf16_splitk.py
579 - vllm/cute_utils/
580 - vllm/model_executor/layers/mamba/ops/gdn_chunk_cutedsl/
581 - vllm/model_executor/layers/fused_moe/router/bf16x3_router_gemm_cutedsl.py
582 - cmake/external_projects/fmha_sm100.cmake
583 - vllm/models/minimax_m3/common/sparse_attention.py
584 - vllm/models/minimax_m3/nvidia/
585 - vllm/config/attention.py
586 - vllm/v1/attention/backends/registry.py
587 - vllm/_custom_ops.py
588 - csrc/libtorch_stable/fused_minimax_m3_qknorm_rope_kv_insert_kernel.cu
589 - csrc/libtorch_stable/ops.h
590 - csrc/libtorch_stable/torch_bindings.cpp
591 - tests/kernels/attention/test_flashinfer_mla_decode.py
592 - tests/kernels/attention/test_minimax_m3_msa_cutlass_sparse_decode.py
593 - tests/kernels/attention/test_cache.py
594 - tests/kernels/quantization/nvfp4_utils.py
595 - tests/kernels/test_fused_minimax_m3_qknorm_rope_kv_insert.py
596 - tests/kernels/mamba/test_gdn_prefill_cutedsl.py
597 - tests/kernels/test_bf16x3_router_gemm_cutedsl.py
598 - tests/kernels/attention/test_minimax_m3.py
599 - tests/kernels/test_ll_bf16_gemm.py
600 - tests/kernels/test_top_k_per_row.py
601 - tests/kernels/quantization/test_silu_mul_nvfp4_quant.py
602 - tests/kernels/quantization/test_block_fp8.py
603 - tests/models/quantization/test_nvfp4.py
604 commands:
605 - nvidia-smi
606 - |
607 set -eu
608 case "$$BUILDKITE_PARALLEL_JOB" in
609 0)
610 pytest -v -s tests/kernels/attention/test_attention_selector.py
611 pytest -v -s tests/kernels/attention/test_cache.py -k nvfp4
612 pytest -v -s tests/kernels/attention/test_flashinfer_trtllm_attention.py
613 pytest -v -s tests/kernels/attention/test_flashinfer_mla_decode.py
614 pytest -v -s tests/kernels/test_top_k_per_row.py
615 pytest -v -s tests/kernels/quantization/test_silu_mul_nvfp4_quant.py
616 pytest -v -s tests/kernels/quantization/test_flashinfer_scaled_mm.py
617 pytest -v -s tests/kernels/moe/test_nvfp4_moe.py
618 pytest -v -s tests/kernels/moe/test_ocp_mx_moe.py
619 pytest -v -s tests/kernels/test_bf16x3_router_gemm_cutedsl.py
620 pytest -v -s tests/kernels/test_ll_bf16_gemm.py
621 ;;
622 1)
623 python3 examples/basic/offline_inference/chat.py
624 pytest -v -s tests/kernels/attention/test_minimax_m3_msa_cutlass_sparse_decode.py
625 pytest -v -s tests/kernels/test_fused_minimax_m3_qknorm_rope_kv_insert.py
626 pytest -v -s tests/kernels/quantization/test_flashinfer_nvfp4_scaled_mm.py
627 pytest -v -s tests/kernels/quantization/test_nvfp4_qutlass.py
628 pytest -v -s tests/kernels/moe/test_mxfp4_moe.py
629 pytest -v -s tests/kernels/moe/test_flashinfer_moe.py
630 pytest -v -s tests/kernels/moe/test_cutedsl_moe.py
631 pytest -v -s tests/models/quantization/test_nvfp4.py
632 ;;
633 2)
634 pytest -v -s tests/kernels/attention/test_flashinfer.py -k 'not num_heads2'
635 pytest -v -s tests/kernels/attention/test_cutlass_mla_decode.py
636 pytest -v -s tests/kernels/quantization/test_cutlass_scaled_mm.py -k 'fp8'
637 pytest -v -s tests/kernels/quantization/test_block_fp8.py::test_w8a8_block_fp8_cutlass_matmul
638 pytest -v -s tests/kernels/quantization/test_nvfp4_quant.py
639 pytest -v -s tests/kernels/quantization/test_nvfp4_scaled_mm.py
640 pytest -v -s tests/kernels/quantization/test_mxfp4_qutlass.py
641 pytest -v -s tests/kernels/moe/test_flashinfer.py
642 pytest -v -s tests/kernels/moe/test_trtllm_nvfp4_moe.py
643 pytest -v -s tests/kernels/mamba/test_gdn_prefill_cutedsl.py
644 pytest -v -s tests/kernels/attention/test_minimax_m3.py
645 ;;
646 *)
647 echo "unexpected BUILDKITE_PARALLEL_JOB=$$BUILDKITE_PARALLEL_JOB" >&2
648 exit 1
649 ;;
650 esac
651 mirror:
652 amd:
653 label: ":amd: (MI355) NVFP4 Dense Emulation Shard %N"
654 dind: false
655 device: mi355_1
656 num_devices: 1
657 timeout_in_minutes: 10
658 working_dir: "/vllm-workspace/tests"
659 depends_on:
660 - image-build-amd
661 source_file_dependencies:
662 - tests/kernels/quantization/test_nvfp4_emulation.py
663 - tests/kernels/quantization/nvfp4_utils.py
664 - tests/conftest.py
665 - vllm/model_executor/kernels/linear/
666 - vllm/model_executor/layers/quantization/utils/nvfp4_emulation_utils.py
667 - vllm/config/kernel.py
668 - vllm/platforms/
669 - vllm/envs.py
670 - vllm/utils/torch_utils.py
671 - requirements/rocm-test.txt
672 # W4A4 format numerics and replay via emulation. TODO: native packed
673 # activation/KV-cache layouts and CUDA-only kernels need AMD backends.
674 commands:
675 - amd-smi
676 - pytest -v -s kernels/quantization/test_nvfp4_emulation.py -k test_nvfp4_dense_emulation --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
677
678 - label: ":nvidia: (DGX) Spark b12x Linear Kernels Nightly"
679 key: b12x-linear-kernels-dgx-spark-nightly
680 timeout_in_minutes: 60
681 device: dgx-spark
682 optional: true
683 num_devices: 1
684 depends_on:
685 - arm64-image-build
686 source_file_dependencies:
687 - setup.py
688 - vllm/config/kernel.py
689 - vllm/envs.py
690 - vllm/model_executor/kernels/linear/
691 - vllm/model_executor/layers/fused_moe/b12x.py
692 - vllm/model_executor/layers/fused_moe/config.py
693 - vllm/model_executor/layers/fused_moe/oracle/mxfp4.py
694 - vllm/model_executor/layers/fused_moe/oracle/nvfp4.py
695 - vllm/model_executor/layers/quantization/compressed_tensors/compressed_tensors_moe/
696 - vllm/model_executor/layers/quantization/inc/schemes/inc_mxfp4_moe.py
697 - vllm/model_executor/layers/quantization/modelopt.py
698 - vllm/model_executor/layers/quantization/mxfp4.py
699 - vllm/model_executor/layers/quantization/utils/b12x_moe.py
700 - vllm/model_executor/warmup/b12x_warmup.py
701 - vllm/utils/b12x.py
702 - tests/kernels/moe/test_b12x.py
703 - tests/kernels/quantization/nvfp4_utils.py
704 - tests/model_executor/kernels/test_b12x_linear.py
705 - tests/model_executor/test_b12x_warmup.py
706 - tests/kernels/quantization/test_block_fp8.py
707 - tests/quantization/reference_mxfp4.py
708 - tests/quantization/test_auto_round.py
709 commands:
710 - uv pip install --system b12x==1.3.0
711 - pytest -v -s model_executor/kernels/test_b12x_linear.py
712 model_executor/test_b12x_warmup.py
713 kernels/quantization/test_block_fp8.py
714 kernels/moe/test_b12x.py
715 quantization/test_auto_round.py -k b12x
716
717 - label: ":nvidia: (H100) Helion Kernels Shard %N"
718 key: kernels-helion-test
719 timeout_in_minutes: 115
720 device: h100
721 source_file_dependencies:
722 - vllm/utils/import_utils.py
723 - tests/kernels/helion/
724 commands:
725 - pip install helion==1.4.0
726 - pytest -v -s kernels/helion/ --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
727 parallelism: 5
728 mirror:
729 amd:
730 label: ":amd: (MI250) Helion Kernels Shard %N"
731 dind: false
732 device: mi250_1
733 timeout_in_minutes: 45
734 # Explicit so the base step's count does not multiply the mirror's replicas.
735 parallelism: 2
736 depends_on:
737 - image-build-amd
738 source_file_dependencies:
739 - vllm/platforms/rocm.py
740 - tools/benchmark_helion_kernels.py
741
742
743 - label: ":nvidia: (H100) FP8 MoE Kernels"
744 key: kernels-fp8-moe-test-1xh100
745 timeout_in_minutes: 40
746 device: h100
747 num_devices: 1
748 optional: true
749 commands:
750 - pytest -v -s kernels/moe/test_cutlass_moe.py
751 - pytest -v -s kernels/moe/test_flashinfer.py
752 - pytest -v -s kernels/moe/test_gpt_oss_triton_kernels.py
753 - pytest -v -s kernels/moe/test_modular_oai_triton_moe.py
754 - pytest -v -s kernels/moe/test_moe.py
755 # - pytest -v -s kernels/moe/test_block_fp8.py - failing on main
756 - pytest -v -s kernels/moe/test_block_int8.py
757 - pytest -v -s kernels/moe/test_triton_moe_no_act_mul.py
758 - pytest -v -s kernels/moe/test_triton_moe_ptpc_fp8.py
759
760 - label: ":nvidia: (H100) DeepEP FP8 MoE Kernels"
761 key: kernels-fp8-moe-test-2xh100
762 timeout_in_minutes: 45
763 device: h100
764 num_devices: 2
765 optional: true
766 commands:
767 - pytest -v -s kernels/moe/test_deepep_deepgemm_moe.py
768 - pytest -v -s kernels/moe/test_deepep_moe.py
769 mirror:
770 amd:
771 label: ":amd: (MI355) DeepEP FP8 MoE Kernels"
772 dind: false
773 device: mi355_2
774 timeout_in_minutes: 55
775 working_dir: "/vllm-workspace/tests"
776 depends_on:
777 - image-build-amd
778 source_file_dependencies:
779 - csrc/moe/
780 - csrc/quantization/w8a8/cutlass/moe/
781 - vllm/model_executor/layers/fused_moe/
782 - tests/kernels/moe/test_deepep_moe.py
783 - vllm/_aiter_ops.py
784 - vllm/platforms/rocm.py
785 - vllm/envs.py
786 commands:
787 - pytest -v -s kernels/moe/test_deepep_moe.py
788
789 - label: ":nvidia: (B200) FP4 MoE Kernels"
790 key: kernels-fp4-moe-test-b200
791 timeout_in_minutes: 25
792 device: b200-k8s
793 num_devices: 1
794 optional: true
795 commands:
796 - pytest -v -s kernels/moe/test_cutedsl_moe.py
797 - pytest -v -s kernels/moe/test_flashinfer_moe.py
798 - pytest -v -s kernels/moe/test_nvfp4_moe.py
799 - pytest -v -s kernels/moe/test_ocp_mx_moe.py
800 mirror:
801 amd:
802 label: ":amd: (MI355 DPX) FP4 and INT4 MoE Kernels"
803 dind: false
804 device: mi355_dpx
805 num_devices: 1
806 timeout_in_minutes: 40
807 optional: false
808 working_dir: /vllm-workspace/tests
809 depends_on:
810 - image-build-amd
811 source_file_dependencies:
812 - csrc/moe/
813 - csrc/rocm/
814 - vllm/model_executor/layers/fused_moe/
815 - vllm/model_executor/layers/quantization/
816 - vllm/_aiter_ops.py
817 - vllm/platforms/rocm.py
818 - vllm/envs.py
819 - vllm/config/
820 - tests/kernels/moe/test_rocm_aiter_moe.py
821 - tests/kernels/moe/test_ocp_mx_moe.py
822 - tests/kernels/moe/test_flydsl_moe.py
823 - tests/kernels/moe/utils.py
824 - tests/kernels/utils.py
825 commands:
826 - pytest -v -s kernels/moe/test_rocm_aiter_moe.py -k 'mi350_mxfp4 or quant_scheme_support_matches_gfx950'
827 - pytest -v -s kernels/moe/test_ocp_mx_moe.py::test_rocm_mxfp4_moe_oracle -k AITER_MXFP4
828 - pytest -v -s kernels/moe/test_flydsl_moe.py
829
830
831 - label: ":nvidia: (H100) FusedMoE Layer Kernels"
832 key: kernels-fusedmoe-layer-test-2-h100s
833 timeout_in_minutes: 30
834 device: h100
835 num_devices: 2
836 source_file_dependencies:
837 - csrc/quantization/cutlass_w8a8/moe/
838 - csrc/moe/
839 - tests/kernels/moe
840 - vllm/model_executor/layers/fused_moe/
841 - vllm/model_executor/layers/quantization/
842 - vllm/distributed/device_communicators/
843 - vllm/config
844 commands:
845 - pytest -v -s kernels/moe/test_moe_layer.py
846 mirror:
847 amd:
848 label: ":amd: (MI355) FusedMoE Layer Kernels"
849 dind: false
850 device: mi355_2
851 timeout_in_minutes: 35
852 working_dir: "/vllm-workspace/tests"
853 depends_on:
854 - image-build-amd
855 source_file_dependencies:
856 - csrc/moe/
857 - csrc/rocm/
858 - tests/kernels/moe
859 - vllm/model_executor/layers/fused_moe/
860 - vllm/model_executor/layers/quantization/
861 - vllm/distributed/
862 - vllm/config/
863 - vllm/forward_context.py
864 - vllm/v1/worker/workspace.py
865 - vllm/utils/import_utils.py
866 - vllm/utils/math_utils.py
867 - vllm/utils/torch_utils.py
868 - vllm/platforms/
869 - vllm/_aiter_ops.py
870 commands:
871 # MoRI graph cases run in the Fault Tolerance group's healthy EP baseline.
872 - pytest -v -s kernels/moe/test_moe_layer.py -k "not test_moe_layer_mori_graph"
873
874 - label: ":nvidia: (B200) FusedMoE Layer Kernels"
875 key: kernels-fusedmoe-layer-test-2-b200s
876 timeout_in_minutes: 90
877 device: b200-k8s
878 num_devices: 2
879 source_file_dependencies:
880 - csrc/quantization/cutlass_w8a8/moe/
881 - csrc/moe/
882 - tests/kernels/moe
883 - vllm/model_executor/layers/fused_moe/
884 - vllm/model_executor/layers/quantization/
885 - vllm/distributed/device_communicators/
886 - vllm/config
887 commands:
888 - pytest -v -s kernels/moe/test_moe_layer.py
889 - pytest -v -s kernels/moe/test_deepep_v2_moe.py
890 mirror:
891 amd:
892 label: ":amd: (MI355) MoRI EP Numerics"
893 dind: false
894 device: mi355_2
895 num_devices: 2
896 timeout_in_minutes: 20
897 working_dir: "/vllm-workspace/tests"
898 depends_on:
899 - image-build-amd
900 source_file_dependencies:
901 - tests/kernels/moe/test_mori_moe.py
902 - tests/kernels/moe/utils.py
903 - tests/kernels/moe/modular_kernel_tools/parallel_utils.py
904 - tests/kernels/utils.py
905 - tests/utils.py
906 - tests/conftest.py
907 - vllm/utils/torch_utils.py
908 - vllm/model_executor/layers/fused_moe/
909 - vllm/model_executor/layers/quantization/
910 - vllm/distributed/
911 - vllm/config/
912 - vllm/forward_context.py
913 - vllm/v1/worker/workspace.py
914 - vllm/platforms/
915 - vllm/_aiter_ops.py
916 - requirements/rocm-test.txt
917 # Same-node MoRI/AITER BF16 and per-token/channel FP8. TODO: the
918 # DeepEP v2 FlashInfer backend matrix has no direct AMD implementation.
919 commands:
920 - amd-smi
921 - VLLM_ROCM_USE_AITER=1 VLLM_ROCM_USE_AITER_MOE=1 VLLM_ROCM_USE_AITER_FUSION_SHARED_EXPERTS=0 pytest -v -s kernels/moe/test_mori_moe.py
922
923 - label: ":amd: (MI355 DPX) Native Quantization Kernels"
924 key: amd-native-quantization-kernels-mi355
925 dind: false
926 device: mi355_dpx
927 num_devices: 1
928 timeout_in_minutes: 40
929 working_dir: /vllm-workspace/tests
930 depends_on:
931 - image-build-amd
932 source_file_dependencies:
933 - csrc/rocm/
934 - vllm/model_executor/layers/quantization/
935 - vllm/model_executor/kernels/linear/
936 - vllm/_aiter_ops.py
937 - vllm/_custom_ops.py
938 - vllm/platforms/rocm.py
939 - vllm/envs.py
940 - tests/kernels/quantization/test_rocm_mxfp4.py
941 - tests/kernels/quantization/test_rocm_mxfp8_linear.py
942 - tests/kernels/quantization/test_rocm_skinny_gemms.py
943 - tests/quantization/reference_mxfp4.py
944 - tests/kernels/quant_utils.py
945 - tests/kernels/utils.py
946 commands:
947 - pytest -v -s kernels/quantization/test_rocm_mxfp4.py
948 - pytest -v -s kernels/quantization/test_rocm_mxfp8_linear.py
949 - pytest -v -s kernels/quantization/test_rocm_skinny_gemms.py -k wvsplitkrc
950
951 - label: ":amd: (MI355 DPX) FP8 MoE Kernels"
952 key: amd-fp8-moe-kernels-mi355
953 dind: false
954 device: mi355_dpx
955 num_devices: 1
956 timeout_in_minutes: 40
957 working_dir: /vllm-workspace/tests
958 depends_on:
959 - image-build-amd
960 source_file_dependencies:
961 - csrc/moe/
962 - vllm/model_executor/layers/fused_moe/
963 - tests/kernels/moe/test_deepep_moe.py
964 - vllm/_aiter_ops.py
965 - vllm/platforms/rocm.py
966 - vllm/envs.py
967 - tests/kernels/moe/test_gpt_oss_triton_kernels.py
968 - tests/kernels/moe/test_modular_oai_triton_moe.py
969 - tests/kernels/moe/test_moe.py
970 - tests/kernels/moe/test_block_int8.py
971 - tests/kernels/moe/test_triton_moe_no_act_mul.py
972 - tests/kernels/moe/test_triton_moe_ptpc_fp8.py
973 commands:
974 - pytest -v -s kernels/moe/test_gpt_oss_triton_kernels.py
975 - pytest -v -s kernels/moe/test_modular_oai_triton_moe.py
976 - pytest -v -s kernels/moe/test_moe.py
977 - pytest -v -s kernels/moe/test_block_int8.py
978 - pytest -v -s kernels/moe/test_triton_moe_no_act_mul.py
979 - pytest -v -s kernels/moe/test_triton_moe_ptpc_fp8.py
980
981 - label: ":amd: (MI355 DPX) Kernels"
982 key: amd-kernels-mi355
983 dind: false
984 device: mi355_dpx
985 num_devices: 1
986 timeout_in_minutes: 25
987 working_dir: /vllm-workspace/
988 depends_on:
989 - image-build-amd
990 source_file_dependencies:
991 - csrc/quantization/fp4/
992 - csrc/attention/mla/
993 - csrc/quantization/cutlass_w8a8/moe/
994 - vllm/model_executor/layers/fused_moe/cutlass_moe.py
995 - vllm/v1/attention/backends/triton_attn.py
996 - vllm/v1/attention/backends/rocm_attn.py
997 - vllm/v1/attention/backends/rocm_aiter_fa.py
998 - vllm/v1/attention/backends/rocm_aiter_unified_attn.py
999 - vllm/v1/attention/backends/mla/aiter_triton_mla.py
1000 - vllm/v1/attention/backends/mla/rocm_aiter_mla.py
1001 - vllm/v1/attention/selector.py
1002 - vllm/platforms/rocm.py
1003 - vllm/_aiter_ops.py
1004 - examples/basic/offline_inference/chat.py
1005 - tests/kernels/attention/test_attention_selector.py
1006 commands:
1007 - amd-smi
1008 - python3 examples/basic/offline_inference/chat.py --attention-backend TRITON_ATTN
1009 - pytest -v -s tests/kernels/attention/test_attention_selector.py