| 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 |