From 6e073440b1753c6739c5e9a37b180e0d226a60bf Mon Sep 17 00:00:00 2001 From: Micah Williamson Date: Tue, 14 Jul 2026 20:25:05 -0500 Subject: [PATCH] [ROCm][CI] Remove mxfp4 test skips after `amd-quark` 0.12 release (#47330) Signed-off-by: Micah Williamson Signed-off-by: Andreas Karatzas Signed-off-by: Andreas Karatzas Co-authored-by: Andreas Karatzas Co-authored-by: fxmarty-amd Co-authored-by: Andreas Karatzas --- requirements/rocm.txt | 2 +- tests/evals/gsm8k/test_gsm8k_correctness.py | 25 ++++----------------- tests/kernels/moe/test_ocp_mx_moe.py | 17 ++------------ tests/lora/test_gptoss_tp.py | 24 +++----------------- tests/quantization/test_quark.py | 2 +- 5 files changed, 11 insertions(+), 59 deletions(-) diff --git a/requirements/rocm.txt b/requirements/rocm.txt index 5179f6ee8d7..b5bcdf4b33e 100644 --- a/requirements/rocm.txt +++ b/requirements/rocm.txt @@ -21,7 +21,7 @@ conch-triton-kernels==1.2.1 timm>=1.0.17 # amd-quark: required for Quark quantization on ROCm # To be consistent with test_quark.py -amd-quark>=0.8.99 +amd-quark==0.12.post1 tilelang==0.1.10 # Required apache-tvm-ffi matching tilelang version apache-tvm-ffi==0.1.10 diff --git a/tests/evals/gsm8k/test_gsm8k_correctness.py b/tests/evals/gsm8k/test_gsm8k_correctness.py index 0a7fd254eef..4b2b6ad3813 100644 --- a/tests/evals/gsm8k/test_gsm8k_correctness.py +++ b/tests/evals/gsm8k/test_gsm8k_correctness.py @@ -9,30 +9,16 @@ pytest -s -v tests/evals/gsm8k/test_gsm8k_correctness.py \ --config-list-file=configs/models-small.txt """ -import importlib.metadata import shlex -from importlib.util import find_spec import pytest -import torch import yaml -from packaging import version from tests.utils import RemoteOpenAIServer from vllm.platforms import current_platform from .gsm8k_eval import evaluate_gsm8k -# MXFP4 via quark requires amd-quark >= 0.12 on torch >= 2.11. -# Earlier torch releases work with older quark versions. See -# https://github.com/amd/Quark/issues/34 -# TODO: Remove once amd-quark>=0.12.0 -QUARK_MXFP4_TORCH_COMPATIBLE = find_spec("quark") is not None and ( - version.parse(importlib.metadata.version("amd-quark")) >= version.parse("0.12.0") - if version.parse(torch.__version__.split("+")[0]) >= version.parse("2.11") - else True -) - DEFAULT_STARTUP_MAX_WAIT_SECONDS = 1200 @@ -109,19 +95,16 @@ def test_gsm8k_correctness(config_filename): "Skipping DeepSeek-V3.2 and DeepSeek-R1 on ROCm platforms " "due to agent pool disk space issues and pod evictions." ) - if current_platform.is_rocm() and ("Qwen3.5-35B-A3B-MXFP4" in config_filename.name): + if current_platform.is_rocm() and ( + "Qwen3.5-35B-A3B-MXFP4-AITER-TP2" in config_filename.name + ): from vllm.platforms.rocm import on_gfx950 - if not on_gfx950() and "AITER-TP2" in config_filename.name: + if not on_gfx950(): pytest.skip( "Skipping Qwen3.5-35B-A3B-MXFP4-AITER-TP2 on non-GFX950 platforms. " "The quantization scheme is not supported on non-GFX950 platforms." ) - if not QUARK_MXFP4_TORCH_COMPATIBLE: - pytest.skip( - "Skipping Qwen3.5-35B-A3B-MXFP4: amd-quark >= 0.12 is required " - "on torch >= 2.11." - ) # Parse server arguments from config (use shlex to handle quoted strings) server_args_str = eval_config.get("server_args", "") server_args = shlex.split(server_args_str) if server_args_str else [] diff --git a/tests/kernels/moe/test_ocp_mx_moe.py b/tests/kernels/moe/test_ocp_mx_moe.py index d6eb488a643..49682dbfcd6 100644 --- a/tests/kernels/moe/test_ocp_mx_moe.py +++ b/tests/kernels/moe/test_ocp_mx_moe.py @@ -1,30 +1,17 @@ # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project -import importlib.metadata import types from dataclasses import dataclass -from importlib.util import find_spec import pytest import torch -from packaging import version from tests.kernels.moe.utils import check_accuracy from vllm._aiter_ops import is_aiter_found, rocm_aiter_ops from vllm.platforms import current_platform from vllm.utils.flashinfer import has_flashinfer -# MXFP4 via quark requires amd-quark >= 0.12 on torch >= 2.11. -# Earlier torch releases work with older quark versions. See -# https://github.com/amd/Quark/issues/34 -# TODO: Remove once amd-quark>=0.12.0 -QUARK_MXFP4_TORCH_COMPATIBLE = find_spec("quark") is not None and ( - version.parse(importlib.metadata.version("amd-quark")) >= version.parse("0.12.0") - if version.parse(torch.__version__.split("+")[0]) >= version.parse("2.11") - else True -) - TRTLLM_GEN_MXFP4_AVAILABLE = ( current_platform.is_cuda() and current_platform.is_device_capability_family(100) ) @@ -96,8 +83,8 @@ def enable_pickle(monkeypatch): ], ) @pytest.mark.skipif( - not QUARK_MXFP4_TORCH_COMPATIBLE, - reason="MXFP4 via quark requires amd-quark >= 0.12 on torch >= 2.11.", + not ROCM_AVAILABLE, + reason="This test is only enabled on platforms that support amd-quark", ) def test_mxfp4_loading_and_execution_moe(vllm_runner, model_case: ModelCase): if torch.accelerator.device_count() < model_case.tp: diff --git a/tests/lora/test_gptoss_tp.py b/tests/lora/test_gptoss_tp.py index 0cf778f3b02..b9f99d7a8c2 100644 --- a/tests/lora/test_gptoss_tp.py +++ b/tests/lora/test_gptoss_tp.py @@ -1,12 +1,8 @@ # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright contributors to the vLLM project -import importlib.metadata -from importlib.util import find_spec import pytest -import torch -from packaging import version import vllm from vllm.lora.request import LoRARequest @@ -14,22 +10,6 @@ from vllm.platforms import current_platform from ..utils import multi_gpu_test -# Require amd-quark >= 0.12 on torch >= 2.11. -# Earlier torch releases work with older quark versions. See -# https://github.com/amd/Quark/issues/34 -# TODO: Remove once amd-quark>=0.12.0 -QUARK_TORCH_COMPATIBLE = find_spec("quark") is not None and ( - version.parse(importlib.metadata.version("amd-quark")) >= version.parse("0.12.0") - if version.parse(torch.__version__.split("+")[0]) >= version.parse("2.11") - else True -) - -if current_platform.is_rocm() and not QUARK_TORCH_COMPATIBLE: - pytest.skip( - "This test requires amd-quark >= 0.12 on torch >= 2.11.", - allow_module_level=True, - ) - MODEL_PATH = "openai/gpt-oss-20b" 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: generated_texts.append(generated_text) print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}") for i in range(len(EXPECTED_LORA_OUTPUT)): - assert generated_texts[i].startswith(EXPECTED_LORA_OUTPUT[i]) + generated = " ".join(generated_texts[i].split()) + expected = " ".join(EXPECTED_LORA_OUTPUT[i].split()) + assert generated.startswith(expected) # TODO: make the Mxfp4MoeBackend.TRITON spawn-safe. diff --git a/tests/quantization/test_quark.py b/tests/quantization/test_quark.py index c1cb18f8e22..9622944670c 100644 --- a/tests/quantization/test_quark.py +++ b/tests/quantization/test_quark.py @@ -41,7 +41,7 @@ else: from .reference_mxfp4 import dq_mxfp4_torch, qdq_mxfp4_torch # Minimum amd-quark version for MXFP4/OCP_MX tests (single source of truth). -QUARK_MXFP4_MIN_VERSION = "0.8.99" +QUARK_MXFP4_MIN_VERSION = "0.12" QUARK_MXFP4_AVAILABLE = find_spec("quark") is not None and version.parse( importlib.metadata.version("amd-quark")