[ROCm] Keep GLM-5.2 on MRV1 and disable default breakable cudagraph (#53155)

Signed-off-by: Rohan Potdar <rohan.potdar@amd.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>

Rohan Potdar committed Aug 31, 2026 at 23:17 UTC ce2e343be1f757a92b3c990023f87bdd87a579ac
2 files changed +10 -7
tests/test_config.py
+5 -2
@@ -159,7 +159,8 @@ def test_v2_model_runner_env_tri_state(monkeypatch, env_value, expected):
159
160
161 def test_rocm_keeps_compiled_deepseek_defaults(monkeypatch):
162 - """ROCm keeps DeepSeek V3.2 and V4 on their compiled MRV1 paths."""
162 + """ROCm keeps the DSA models (DeepSeek V3.2/V4, GLM-5.2) on their compiled
163 + MRV1 paths and off breakable cudagraphs by default."""
164 from vllm.config.vllm import (
165 ROCM_DEFAULT_MRV1_ARCHITECTURES,
166 default_breakable_cudagraph_architectures,
@@ -172,10 +173,12 @@ def test_rocm_keeps_compiled_deepseek_defaults(monkeypatch):
173 try:
174 assert "DeepseekV32ForCausalLM" in ROCM_DEFAULT_MRV1_ARCHITECTURES
175 assert "DeepseekV4ForCausalLM" in ROCM_DEFAULT_MRV1_ARCHITECTURES
176 + assert "GlmMoeDsaForCausalLM" in ROCM_DEFAULT_MRV1_ARCHITECTURES
177
178 breakable_architectures = default_breakable_cudagraph_architectures()
179 assert "DeepseekV32ForCausalLM" not in breakable_architectures
180 assert "DeepseekV32MTPModel" not in breakable_architectures
181 + assert "GlmMoeDsaForCausalLM" not in breakable_architectures
182
183 # The carve-out takes effect via the runner-selection property
184 # (warning_once args must be hashable for its lru_cache).
@@ -254,7 +257,7 @@ def test_dsa_models_default_to_mrv2_and_breakable_cudagraph(
257 ("DeepseekV32MTPModel", False, True),
258 ("DeepseekV32MTPModel", True, False),
259 ("GlmMoeDsaForCausalLM", False, True),
257 - ("GlmMoeDsaForCausalLM", True, True),
260 + ("GlmMoeDsaForCausalLM", True, False),
261 ],
262 )
263 def test_dsa_breakable_cudagraph_platform_default(
vllm/config/vllm.py
+5 -5
@@ -69,7 +69,7 @@ logger = init_logger(__name__)
69 # TODO(rocm): These models are either unsupported by MRV2 or slower with
70 # MRV2 on AMD GPUs.
71 ROCM_DEFAULT_MRV1_ARCHITECTURES = frozenset(
72 - {"DeepseekV32ForCausalLM", "DeepseekV4ForCausalLM"}
72 + {"DeepseekV32ForCausalLM", "DeepseekV4ForCausalLM", "GlmMoeDsaForCausalLM"}
73 )
74
75 DEFAULT_BREAKABLE_CUDAGRAPH_ARCHITECTURES = frozenset(
@@ -100,10 +100,10 @@ def default_breakable_cudagraph_architectures() -> frozenset[str]:
100 from vllm.platforms import current_platform
101
102 if current_platform.is_rocm():
103 - return DEFAULT_BREAKABLE_CUDAGRAPH_ARCHITECTURES - {
104 - "DeepseekV32ForCausalLM",
105 - "DeepseekV32MTPModel",
106 - }
103 + # Breakable CUDA graphs currently regress performance on ROCm, so no
104 + # architecture opts in by default here. Users can still force it with
105 + # VLLM_USE_BREAKABLE_CUDAGRAPH=1.
106 + return frozenset()
107 return DEFAULT_BREAKABLE_CUDAGRAPH_ARCHITECTURES
108
109