[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")