[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