Disable Hopper GLM shared-expert fusion for modelopt_fp4 Marlin (#37325)
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user