Disable Hopper GLM shared-expert fusion for modelopt_fp4 Marlin (#37325)

This commit is contained in:
Po-Han Huang (NVIDIA)
2026-09-08 06:16:36 -07:00
committed by GitHub
parent 2d339ddef1
commit 5097f9ac95
2 changed files with 61 additions and 0 deletions
@@ -159,6 +159,55 @@ class TestDeepseekV2Gate(_FusionGateCase):
)
self.assertIsNone(self._reason(DeepseekV2ForCausalLM, self._config(), matched))
def test_hopper_modelopt_fp4_marlin_disables_fusion_by_default(self):
import sglang.srt.models.deepseek_v2 as deepseek_v2
from sglang.srt.layers.moe.utils import MoeRunnerBackend
from sglang.srt.models.deepseek_v2 import DeepseekV2ForCausalLM
self._seed()
with (
unittest.mock.patch.object(
deepseek_v2, "is_sm90_supported", return_value=True
),
unittest.mock.patch.object(
deepseek_v2,
"get_moe_runner_backend",
return_value=MoeRunnerBackend.MARLIN,
),
):
self.assertIn(
"fusion off by default",
self._reason(
DeepseekV2ForCausalLM,
self._config(),
_quant("modelopt_fp4"),
),
)
def test_hopper_modelopt_fp4_marlin_can_still_be_forced(self):
import sglang.srt.models.deepseek_v2 as deepseek_v2
from sglang.srt.layers.moe.utils import MoeRunnerBackend
from sglang.srt.models.deepseek_v2 import DeepseekV2ForCausalLM
self._seed(enforce_shared_experts_fusion=True)
with (
unittest.mock.patch.object(
deepseek_v2, "is_sm90_supported", return_value=True
),
unittest.mock.patch.object(
deepseek_v2,
"get_moe_runner_backend",
return_value=MoeRunnerBackend.MARLIN,
),
):
self.assertIsNone(
self._reason(
DeepseekV2ForCausalLM,
self._config(),
_quant("modelopt_fp4"),
)
)
class TestGlmMoeLiteGate(_FusionGateCase):
def _config(self, **kw):