[Hardware][AMD][CI] Fix gfx942 Kernels MoE test group (#46298)

Signed-off-by: Matthew Wong <Matthew.Wong2@amd.com>

Matt committed Jun 21, 2026 at 16:45 UTC 50241602fd7b672751dfd9c034b806640255e599
3 files changed +29 -12
.buildkite/test-amd.yaml
+5 -4
@@ -1627,10 +1627,11 @@ steps:
1627 - pytest -v -s kernels/core --ignore=kernels/core/test_minimax_reduce_rms.py kernels/test_concat_mla_q.py kernels/test_top_k_per_row.py
1628
1629 - label: Kernels MoE Test %N # TBD
1630 - timeout_in_minutes: 180
1630 + timeout_in_minutes: 50
1631 mirror_hardwares: [amdexperimental, amdproduction, amdgfx942nightly, amdmi300]
1632 agent_pool: mi300_1
1633 - parallelism: 4
1633 + optional: true
1634 + parallelism: 5
1635 working_dir: "/vllm-workspace/tests"
1636 source_file_dependencies:
1637 - csrc/quantization/cutlass_w8a8/moe/
@@ -3082,10 +3083,10 @@ steps:
3083 - pytest -v -s kernels/attention --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
3084
3085 - label: Kernels MoE Test %N # TBD
3085 - timeout_in_minutes: 180
3086 + timeout_in_minutes: 50
3087 mirror_hardwares: [amdexperimental, amdproduction, amdgfx950nightly, amdmi355]
3088 agent_pool: mi355_1
3088 - parallelism: 4
3089 + parallelism: 5
3090 working_dir: "/vllm-workspace/tests"
3091 source_file_dependencies:
3092 - csrc/quantization/cutlass_w8a8/moe/
.buildkite/test_areas/kernels.yaml
+16
@@ -128,6 +128,22 @@ steps:
128 - 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
129 - pytest -v -s kernels/moe/test_modular_oai_triton_moe.py --shard-id=$$BUILDKITE_PARALLEL_JOB --num-shards=$$BUILDKITE_PARALLEL_JOB_COUNT
130 parallelism: 5
131 + mirror:
132 + amd:
133 + device: mi325_1
134 + timeout_in_minutes: 50
135 + source_file_dependencies:
136 + - csrc/quantization/cutlass_w8a8/moe/
137 + - csrc/moe/
138 + - tests/kernels/moe
139 + - vllm/model_executor/layers/fused_moe/
140 + - vllm/distributed/device_communicators/
141 + - vllm/envs.py
142 + - vllm/config
143 + - vllm/_aiter_ops.py
144 + - vllm/platforms/rocm.py
145 + depends_on:
146 + - image-build-amd
147
148 - label: Kernels Mamba Test
149 key: kernels-mamba-test
tests/kernels/moe/test_ocp_mx_moe.py
+8 -8
@@ -9,6 +9,7 @@ import pytest
9 import torch
10 from packaging import version
11
12 +from vllm._aiter_ops import is_aiter_found
13 from vllm.platforms import current_platform
14 from vllm.utils.flashinfer import has_flashinfer
15
@@ -31,17 +32,15 @@ HOPPER_MXFP4_BF16_AVAILABLE = (
32 # ROCm platform and dependencies
33 ROCM_AVAILABLE = current_platform.is_rocm()
34 ROCM_TRITON_KERNELS_AVAILABLE = False
34 -ROCM_AITER_AVAILABLE = False
35 +ROCM_AITER_AVAILABLE = is_aiter_found()
36 ROCM_GFX950 = False
37
38 if ROCM_AVAILABLE:
38 - from vllm._aiter_ops import rocm_aiter_ops
39 from vllm.platforms.rocm import on_gfx950
40 from vllm.utils.import_utils import has_triton_kernels
41
42 ROCM_TRITON_KERNELS_AVAILABLE = has_triton_kernels()
43 ROCM_GFX950 = on_gfx950()
44 - ROCM_AITER_AVAILABLE = rocm_aiter_ops.is_enabled()
44
45 if ROCM_AITER_AVAILABLE:
46 from aiter.ops.triton.moe.quant_moe import upcast_from_mxfp
@@ -83,7 +82,7 @@ def enable_pickle(monkeypatch):
82 [
83 ModelCase("fxmarty/qwen_1.5-moe-a2.7b-mxfp4", tp=2),
84 ModelCase("fxmarty/deepseek_r1_3_layers_mxfp4", tp=8),
86 - ModelCase("fxmarty/Llama-4-Scout-17B-16E-Instruct-2-layers-mxfp4", tp=1),
85 + ModelCase("mawong-amd/Llama-4-Scout-17B-16E-Instruct-2-layers-mxfp4", tp=1),
86 ModelCase("fxmarty/Llama-3.1-70B-Instruct-2-layers-mxfp6", tp=1),
87 ModelCase("fxmarty/Llama-3.1-70B-Instruct-2-layers-mxfp6", tp=4),
88 ],
@@ -102,6 +101,7 @@ def test_mxfp4_loading_and_execution_moe(vllm_runner, model_case: ModelCase):
101 tensor_parallel_size=model_case.tp,
102 load_format="dummy",
103 compilation_config={"cudagraph_capture_sizes": [16]},
104 + gpu_memory_utilization=0.8, # mxfp6 models use more scratch space
105 ) as llm:
106 # Disabled as check_model is broken: https://github.com/vllm-project/vllm/pull/18465#issuecomment-3329880562
107 # def check_model(model):
@@ -1267,7 +1267,7 @@ def test_rocm_mxfp4_moe_oracle(
1267
1268 This test validates that the oracle functions work end-to-end:
1269 - select_mxfp4_moe_backend() selects a valid backend
1270 - - convert_to_mxfp4_moe_kernel_format() converts weights without error
1270 + - convert_gpt_oss_weight_to_mxfp4_moe_kernel_format() converts weights without error
1271 - make_mxfp4_moe_quant_config() builds a valid quant config
1272 - make_mxfp4_moe_kernel() creates a kernel that runs without error
1273 - The kernel output is within accuracy tolerance of reference
@@ -1287,7 +1287,7 @@ def test_rocm_mxfp4_moe_oracle(
1287 from vllm.model_executor.layers.fused_moe.oracle.mxfp4 import (
1288 Mxfp4MoeBackend,
1289 backend_to_kernel_cls,
1290 - convert_to_mxfp4_moe_kernel_format,
1290 + convert_gpt_oss_weight_to_mxfp4_moe_kernel_format,
1291 make_mxfp4_moe_kernel,
1292 make_mxfp4_moe_quant_config,
1293 )
@@ -1387,7 +1387,7 @@ def test_rocm_mxfp4_moe_oracle(
1387
1388 # Convert weights using oracle
1389 w13_conv, w2_conv, w13_scale_conv, w2_scale_conv, w13_bias_conv, w2_bias_conv = (
1390 - convert_to_mxfp4_moe_kernel_format(
1390 + convert_gpt_oss_weight_to_mxfp4_moe_kernel_format(
1391 mxfp4_backend=backend,
1392 layer=layer, # type: ignore[arg-type]
1393 w13_weight=w13_quant,
@@ -1423,7 +1423,7 @@ def test_rocm_mxfp4_moe_oracle(
1423 mxfp4_backend=backend,
1424 experts_cls=experts_cls,
1425 routing_tables=None,
1426 - shared_experts=None,
1426 + layer=None,
1427 )
1428
1429 # Create inputs