[ROCm][CI] Remove mxfp4 test skips after `amd-quark` 0.12 release (#47330)
Signed-off-by: Micah Williamson <micah.williamson@amd.com> Signed-off-by: Andreas Karatzas <akaratza@amd.com> Signed-off-by: Andreas Karatzas <Andreas.Karatzas@amd.com> Co-authored-by: Andreas Karatzas <Andreas.Karatzas@amd.com> Co-authored-by: fxmarty-amd <felmarty@amd.com> Co-authored-by: Andreas Karatzas <akaratza@amd.com>
Micah Williamson committed
Jul 14, 2026 at 20:25 UTC
6e073440b1753c6739c5e9a37b180e0d226a60bf
5 files changed
+11
-59
requirements/rocm.txt
+1
-1
@@ -21,7 +21,7 @@ conch-triton-kernels==1.2.1
21
timm>=1.0.17
22
# amd-quark: required for Quark quantization on ROCm
23
# To be consistent with test_quark.py
24
-amd-quark>=0.8.99
24
+amd-quark==0.12.post1
25
tilelang==0.1.10
26
# Required apache-tvm-ffi matching tilelang version
27
apache-tvm-ffi==0.1.10
tests/evals/gsm8k/test_gsm8k_correctness.py
+4
-21
@@ -9,30 +9,16 @@ pytest -s -v tests/evals/gsm8k/test_gsm8k_correctness.py \
9
--config-list-file=configs/models-small.txt
10
"""
11
12
-import importlib.metadata
12
import shlex
14
-from importlib.util import find_spec
13
14
import pytest
17
-import torch
15
import yaml
19
-from packaging import version
16
17
from tests.utils import RemoteOpenAIServer
18
from vllm.platforms import current_platform
19
20
from .gsm8k_eval import evaluate_gsm8k
21
26
-# MXFP4 via quark requires amd-quark >= 0.12 on torch >= 2.11.
27
-# Earlier torch releases work with older quark versions. See
28
-# https://github.com/amd/Quark/issues/34
29
-# TODO: Remove once amd-quark>=0.12.0
30
-QUARK_MXFP4_TORCH_COMPATIBLE = find_spec("quark") is not None and (
31
- version.parse(importlib.metadata.version("amd-quark")) >= version.parse("0.12.0")
32
- if version.parse(torch.__version__.split("+")[0]) >= version.parse("2.11")
33
- else True
34
-)
35
-
22
DEFAULT_STARTUP_MAX_WAIT_SECONDS = 1200
23
24
@@ -109,19 +95,16 @@ def test_gsm8k_correctness(config_filename):
95
"Skipping DeepSeek-V3.2 and DeepSeek-R1 on ROCm platforms "
96
"due to agent pool disk space issues and pod evictions."
97
)
112
- if current_platform.is_rocm() and ("Qwen3.5-35B-A3B-MXFP4" in config_filename.name):
98
+ if current_platform.is_rocm() and (
99
+ "Qwen3.5-35B-A3B-MXFP4-AITER-TP2" in config_filename.name
100
+ ):
101
from vllm.platforms.rocm import on_gfx950
102
115
- if not on_gfx950() and "AITER-TP2" in config_filename.name:
103
+ if not on_gfx950():
104
pytest.skip(
105
"Skipping Qwen3.5-35B-A3B-MXFP4-AITER-TP2 on non-GFX950 platforms. "
106
"The quantization scheme is not supported on non-GFX950 platforms."
107
)
120
- if not QUARK_MXFP4_TORCH_COMPATIBLE:
121
- pytest.skip(
122
- "Skipping Qwen3.5-35B-A3B-MXFP4: amd-quark >= 0.12 is required "
123
- "on torch >= 2.11."
124
- )
108
# Parse server arguments from config (use shlex to handle quoted strings)
109
server_args_str = eval_config.get("server_args", "")
110
server_args = shlex.split(server_args_str) if server_args_str else []
tests/kernels/moe/test_ocp_mx_moe.py
+2
-15
@@ -1,30 +1,17 @@
1
# SPDX-License-Identifier: Apache-2.0
2
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4
-import importlib.metadata
4
import types
5
from dataclasses import dataclass
7
-from importlib.util import find_spec
6
7
import pytest
8
import torch
11
-from packaging import version
9
10
from tests.kernels.moe.utils import check_accuracy
11
from vllm._aiter_ops import is_aiter_found, rocm_aiter_ops
12
from vllm.platforms import current_platform
13
from vllm.utils.flashinfer import has_flashinfer
14
18
-# MXFP4 via quark requires amd-quark >= 0.12 on torch >= 2.11.
19
-# Earlier torch releases work with older quark versions. See
20
-# https://github.com/amd/Quark/issues/34
21
-# TODO: Remove once amd-quark>=0.12.0
22
-QUARK_MXFP4_TORCH_COMPATIBLE = find_spec("quark") is not None and (
23
- version.parse(importlib.metadata.version("amd-quark")) >= version.parse("0.12.0")
24
- if version.parse(torch.__version__.split("+")[0]) >= version.parse("2.11")
25
- else True
26
-)
27
-
15
TRTLLM_GEN_MXFP4_AVAILABLE = (
16
current_platform.is_cuda() and current_platform.is_device_capability_family(100)
17
)
@@ -96,8 +83,8 @@ def enable_pickle(monkeypatch):
83
],
84
)
85
@pytest.mark.skipif(
99
- not QUARK_MXFP4_TORCH_COMPATIBLE,
100
- reason="MXFP4 via quark requires amd-quark >= 0.12 on torch >= 2.11.",
86
+ not ROCM_AVAILABLE,
87
+ reason="This test is only enabled on platforms that support amd-quark",
88
)
89
def test_mxfp4_loading_and_execution_moe(vllm_runner, model_case: ModelCase):
90
if torch.accelerator.device_count() < model_case.tp:
tests/lora/test_gptoss_tp.py
+3
-21
@@ -1,12 +1,8 @@
1
# SPDX-License-Identifier: Apache-2.0
2
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
3
4
-import importlib.metadata
5
-from importlib.util import find_spec
4
5
import pytest
8
-import torch
9
-from packaging import version
6
7
import vllm
8
from vllm.lora.request import LoRARequest
@@ -14,22 +10,6 @@ from vllm.platforms import current_platform
10
11
from ..utils import multi_gpu_test
12
17
-# Require amd-quark >= 0.12 on torch >= 2.11.
18
-# Earlier torch releases work with older quark versions. See
19
-# https://github.com/amd/Quark/issues/34
20
-# TODO: Remove once amd-quark>=0.12.0
21
-QUARK_TORCH_COMPATIBLE = find_spec("quark") is not None and (
22
- version.parse(importlib.metadata.version("amd-quark")) >= version.parse("0.12.0")
23
- if version.parse(torch.__version__.split("+")[0]) >= version.parse("2.11")
24
- else True
25
-)
26
-
27
-if current_platform.is_rocm() and not QUARK_TORCH_COMPATIBLE:
28
- pytest.skip(
29
- "This test requires amd-quark >= 0.12 on torch >= 2.11.",
30
- allow_module_level=True,
31
- )
32
-
13
MODEL_PATH = "openai/gpt-oss-20b"
14
15
PROMPT_TEMPLATE = """<|start|>system<|message|>You are ChatGPT, a large language model trained by OpenAI.
@@ -88,7 +68,9 @@ def generate_and_test(llm: vllm.LLM, lora_path: str, lora_id: int) -> None:
68
generated_texts.append(generated_text)
69
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
70
for i in range(len(EXPECTED_LORA_OUTPUT)):
91
- assert generated_texts[i].startswith(EXPECTED_LORA_OUTPUT[i])
71
+ generated = " ".join(generated_texts[i].split())
72
+ expected = " ".join(EXPECTED_LORA_OUTPUT[i].split())
73
+ assert generated.startswith(expected)
74
75
76
# TODO: make the Mxfp4MoeBackend.TRITON spawn-safe.
tests/quantization/test_quark.py
+1
-1
@@ -41,7 +41,7 @@ else:
41
from .reference_mxfp4 import dq_mxfp4_torch, qdq_mxfp4_torch
42
43
# Minimum amd-quark version for MXFP4/OCP_MX tests (single source of truth).
44
-QUARK_MXFP4_MIN_VERSION = "0.8.99"
44
+QUARK_MXFP4_MIN_VERSION = "0.12"
45
46
QUARK_MXFP4_AVAILABLE = find_spec("quark") is not None and version.parse(
47
importlib.metadata.version("amd-quark")