[CI] Shard long kernel test groups (#54754)
Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
Kevin H. Luu committed
Sep 1, 2026 at 15:58 UTC
3b6c0bdae9ef0a923dfbd545e3633b95db36a13d
1 file changed
+53
-39
.buildkite/test_areas/kernels.yaml
+53
-39
@@ -106,7 +106,7 @@ steps:
106
key: kernels-attention-test
107
device: l4
108
num_devices: 1
109
- timeout_in_minutes: 65
109
+ timeout_in_minutes: 30
110
source_file_dependencies:
111
- csrc/attention/
112
- vllm/v1/attention
@@ -116,7 +116,7 @@ steps:
116
- tests/kernels/attention
117
commands:
118
- pytest -v -s kernels/attention --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
119
- parallelism: 2
119
+ parallelism: 7
120
mirror:
121
amd:
122
label: ":amd: (MI300) Attention Kernels Shard %N"
@@ -169,19 +169,22 @@ steps:
169
key: kernels-quantization-test
170
device: l4
171
num_devices: 1
172
- timeout_in_minutes: 60
172
+ timeout_in_minutes: 30
173
source_file_dependencies:
174
- csrc/quantization/
175
- vllm/model_executor/layers/quantization
176
- tests/kernels/quantization
177
commands:
178
- pytest -v -s kernels/quantization --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
179
- parallelism: 2
179
+ parallelism: 6
180
mirror:
181
amd:
182
label: ":amd: (MI300) Quantization Kernels Shard %N"
183
dind: false
184
device: mi300_1
185
+ # Pin the AMD mirror at its current 2 shards so raising NVIDIA
186
+ # parallelism does not multiply AMD copies (needs ci-infra #473).
187
+ parallelism: 2
188
timeout_in_minutes: 120
189
source_file_dependencies:
190
- csrc/quantization/
@@ -277,9 +280,10 @@ steps:
280
- pytest -v -s kernels/attention/test_deepgemm_attention.py
281
- pytest -v -s quantization/test_cutlass_w4a16.py
282
280
-- label: ":nvidia: (B200) Kernels"
283
+- label: ":nvidia: (B200) Kernels Shard %N"
284
key: kernels-b200
282
- timeout_in_minutes: 80
285
+ timeout_in_minutes: 30
286
+ parallelism: 3
287
working_dir: "/vllm-workspace/"
288
device: b200-k8s
289
# optional: true
@@ -323,39 +327,49 @@ steps:
327
- tests/kernels/test_top_k_per_row.py
328
commands:
329
- nvidia-smi
326
- - python3 examples/basic/offline_inference/chat.py
327
- # Attention
328
- # num_heads2 broken by https://github.com/flashinfer-ai/flashinfer/issues/1353
329
- - pytest -v -s tests/kernels/attention/test_attention_selector.py
330
- - pytest -v -s tests/kernels/attention/test_flashinfer.py -k 'not num_heads2'
331
- - pytest -v -s tests/kernels/attention/test_flashinfer_trtllm_attention.py
332
- - pytest -v -s tests/kernels/attention/test_cutlass_mla_decode.py
333
- - pytest -v -s tests/kernels/attention/test_flashinfer_mla_decode.py
334
- - pytest -v -s tests/kernels/attention/test_minimax_m3_msa_cutlass_sparse_decode.py
335
- - pytest -v -s tests/kernels/test_fused_minimax_m3_qknorm_rope_kv_insert.py
336
- - pytest -v -s tests/kernels/test_top_k_per_row.py
337
- # Quantization
338
- - pytest -v -s tests/kernels/quantization/test_cutlass_scaled_mm.py -k 'fp8'
339
- - pytest -v -s tests/kernels/quantization/test_nvfp4_quant.py
340
- - pytest -v -s tests/kernels/quantization/test_silu_mul_nvfp4_quant.py
341
- - pytest -v -s tests/kernels/quantization/test_nvfp4_scaled_mm.py
342
- - pytest -v -s tests/kernels/quantization/test_flashinfer_scaled_mm.py
343
- - pytest -v -s tests/kernels/quantization/test_flashinfer_nvfp4_scaled_mm.py
344
- - pytest -v -s tests/kernels/quantization/test_nvfp4_qutlass.py
345
- - pytest -v -s tests/kernels/quantization/test_mxfp4_qutlass.py
346
- - pytest -v -s tests/kernels/moe/test_nvfp4_moe.py
347
- - pytest -v -s tests/kernels/moe/test_mxfp4_moe.py
348
- - pytest -v -s tests/kernels/moe/test_ocp_mx_moe.py
349
- - pytest -v -s tests/kernels/moe/test_flashinfer.py
350
- - pytest -v -s tests/kernels/moe/test_flashinfer_moe.py
351
- - pytest -v -s tests/kernels/moe/test_trtllm_nvfp4_moe.py
352
- - pytest -v -s tests/kernels/moe/test_cutedsl_moe.py
353
- - pytest -v -s tests/kernels/mamba/test_gdn_prefill_cutedsl.py
354
- - pytest -v -s tests/kernels/test_bf16x3_router_gemm_cutedsl.py
355
- - pytest -v -s tests/kernels/attention/test_minimax_m3.py
356
- - pytest -v -s tests/kernels/test_ll_bf16_gemm.py
357
- # e2e
358
- - pytest -v -s tests/models/quantization/test_nvfp4.py
330
+ - |
331
+ set -eu
332
+ case "$$BUILDKITE_PARALLEL_JOB" in
333
+ 0)
334
+ pytest -v -s tests/kernels/attention/test_attention_selector.py
335
+ pytest -v -s tests/kernels/attention/test_flashinfer_trtllm_attention.py
336
+ pytest -v -s tests/kernels/attention/test_flashinfer_mla_decode.py
337
+ pytest -v -s tests/kernels/test_top_k_per_row.py
338
+ pytest -v -s tests/kernels/quantization/test_silu_mul_nvfp4_quant.py
339
+ pytest -v -s tests/kernels/quantization/test_flashinfer_scaled_mm.py
340
+ pytest -v -s tests/kernels/moe/test_nvfp4_moe.py
341
+ pytest -v -s tests/kernels/moe/test_ocp_mx_moe.py
342
+ pytest -v -s tests/kernels/test_bf16x3_router_gemm_cutedsl.py
343
+ pytest -v -s tests/kernels/test_ll_bf16_gemm.py
344
+ ;;
345
+ 1)
346
+ python3 examples/basic/offline_inference/chat.py
347
+ pytest -v -s tests/kernels/attention/test_minimax_m3_msa_cutlass_sparse_decode.py
348
+ pytest -v -s tests/kernels/test_fused_minimax_m3_qknorm_rope_kv_insert.py
349
+ pytest -v -s tests/kernels/quantization/test_flashinfer_nvfp4_scaled_mm.py
350
+ pytest -v -s tests/kernels/quantization/test_nvfp4_qutlass.py
351
+ pytest -v -s tests/kernels/moe/test_mxfp4_moe.py
352
+ pytest -v -s tests/kernels/moe/test_flashinfer_moe.py
353
+ pytest -v -s tests/kernels/moe/test_cutedsl_moe.py
354
+ pytest -v -s tests/models/quantization/test_nvfp4.py
355
+ ;;
356
+ 2)
357
+ pytest -v -s tests/kernels/attention/test_flashinfer.py -k 'not num_heads2'
358
+ pytest -v -s tests/kernels/attention/test_cutlass_mla_decode.py
359
+ pytest -v -s tests/kernels/quantization/test_cutlass_scaled_mm.py -k 'fp8'
360
+ pytest -v -s tests/kernels/quantization/test_nvfp4_quant.py
361
+ pytest -v -s tests/kernels/quantization/test_nvfp4_scaled_mm.py
362
+ pytest -v -s tests/kernels/quantization/test_mxfp4_qutlass.py
363
+ pytest -v -s tests/kernels/moe/test_flashinfer.py
364
+ pytest -v -s tests/kernels/moe/test_trtllm_nvfp4_moe.py
365
+ pytest -v -s tests/kernels/mamba/test_gdn_prefill_cutedsl.py
366
+ pytest -v -s tests/kernels/attention/test_minimax_m3.py
367
+ ;;
368
+ *)
369
+ echo "unexpected BUILDKITE_PARALLEL_JOB=$$BUILDKITE_PARALLEL_JOB" >&2
370
+ exit 1
371
+ ;;
372
+ esac
373
374
- label: ":nvidia: (DGX) Spark b12x Linear Kernels Nightly"
375
key: b12x-linear-kernels-dgx-spark-nightly