Support Waterfill with MegaMoE backend (#27350)
This commit is contained in:
+2
-2
@@ -1,4 +1,4 @@
|
||||
"""Unit tests for DeepEP Waterfill and EPLB updater compatibility."""
|
||||
"""Unit tests for Waterfill and EPLB updater compatibility."""
|
||||
|
||||
from sglang.test.ci.ci_register import register_cpu_ci
|
||||
|
||||
@@ -30,7 +30,7 @@ class _FakeExpertParam(nn.Module):
|
||||
self.global_scale._sglang_require_global_experts = True
|
||||
|
||||
|
||||
class TestDeepEPWaterfillEPLB(CustomTestCase):
|
||||
class TestWaterfillEPLB(CustomTestCase):
|
||||
def test_deepseek_moe_get_moe_weights_excludes_fused_shared_slot(self):
|
||||
experts = _FakeExpertParam()
|
||||
moe = SimpleNamespace(num_fused_shared_experts=1, experts=experts)
|
||||
@@ -973,12 +973,12 @@ class TestAdaptiveSpecArgs(CustomTestCase):
|
||||
self.assertEqual(args.speculative_num_draft_tokens, 4)
|
||||
|
||||
|
||||
class TestDeepEPWaterfillArgs(CustomTestCase):
|
||||
class TestWaterfillArgs(CustomTestCase):
|
||||
def test_waterfill_enforces_shared_experts_fusion(self):
|
||||
server_args = ServerArgs(
|
||||
model_path="dummy",
|
||||
moe_a2a_backend="deepep",
|
||||
enable_deepep_waterfill=True,
|
||||
enable_waterfill=True,
|
||||
disable_shared_experts_fusion=True,
|
||||
)
|
||||
# dummy-model path short-circuits __post_init__; invoke the handler directly.
|
||||
@@ -995,7 +995,7 @@ class TestDeepEPWaterfillArgs(CustomTestCase):
|
||||
server_args = ServerArgs(
|
||||
model_path="dummy",
|
||||
moe_a2a_backend="none",
|
||||
enable_deepep_waterfill=True,
|
||||
enable_waterfill=True,
|
||||
)
|
||||
# dummy-model path short-circuits __post_init__; invoke the handler directly.
|
||||
server_args._handle_a2a_moe()
|
||||
@@ -1006,11 +1006,27 @@ class TestDeepEPWaterfillArgs(CustomTestCase):
|
||||
self.assertEqual(resolved_view(server_args).moe_a2a_backend, "deepep")
|
||||
self.assertTrue(server_args.enforce_shared_experts_fusion)
|
||||
|
||||
def test_waterfill_keeps_megamoe_backend(self):
|
||||
server_args = ServerArgs(
|
||||
model_path="dummy",
|
||||
moe_a2a_backend="megamoe",
|
||||
enable_waterfill=True,
|
||||
disable_shared_experts_fusion=True,
|
||||
)
|
||||
# dummy-model path short-circuits __post_init__; invoke the handler directly.
|
||||
server_args._handle_a2a_moe()
|
||||
|
||||
from sglang.srt.arg_groups.overrides import resolved_view
|
||||
|
||||
self.assertEqual(resolved_view(server_args).moe_a2a_backend, "megamoe")
|
||||
self.assertFalse(resolved_view(server_args).disable_shared_experts_fusion)
|
||||
self.assertTrue(server_args.enforce_shared_experts_fusion)
|
||||
|
||||
def test_waterfill_supports_deepep_low_latency_mode(self):
|
||||
server_args = ServerArgs(
|
||||
model_path="dummy",
|
||||
moe_a2a_backend="deepep",
|
||||
enable_deepep_waterfill=True,
|
||||
enable_waterfill=True,
|
||||
deepep_mode="low_latency",
|
||||
)
|
||||
# dummy-model path short-circuits __post_init__; invoke the handler directly.
|
||||
@@ -1452,7 +1468,7 @@ class TestTwoBatchOverlapBackend(CustomTestCase):
|
||||
SGLANG_ENABLE_DP_TBO env: enabling DP TBO now needs no extra flag.
|
||||
|
||||
dummy-model short-circuits __post_init__, so the guard handler is invoked
|
||||
directly (same pattern as TestDeepEPWaterfillArgs)."""
|
||||
directly (same pattern as TestWaterfillArgs)."""
|
||||
|
||||
def _args(self, **overrides):
|
||||
args = ServerArgs(model_path="dummy")
|
||||
|
||||
@@ -1824,9 +1824,7 @@ class TestGoldenModelOverrides(_IsolatedPublish):
|
||||
self.assertEqual(
|
||||
_a2a_backend_overrides(
|
||||
ResolvedView(
|
||||
SimpleNamespace(
|
||||
enable_deepep_waterfill=True, moe_a2a_backend="none"
|
||||
)
|
||||
SimpleNamespace(enable_waterfill=True, moe_a2a_backend="none")
|
||||
)
|
||||
),
|
||||
{"moe_a2a_backend": "deepep"},
|
||||
@@ -1836,9 +1834,7 @@ class TestGoldenModelOverrides(_IsolatedPublish):
|
||||
self.assertEqual(
|
||||
_a2a_backend_overrides(
|
||||
ResolvedView(
|
||||
SimpleNamespace(
|
||||
enable_deepep_waterfill=True, moe_a2a_backend="none"
|
||||
)
|
||||
SimpleNamespace(enable_waterfill=True, moe_a2a_backend="none")
|
||||
)
|
||||
),
|
||||
{"moe_a2a_backend": "megamoe"},
|
||||
|
||||
Reference in New Issue
Block a user