Support Waterfill with MegaMoE backend (#27350)

This commit is contained in:
xutizhou
2026-07-13 03:56:46 -07:00
committed by GitHub
parent 874fc07d9b
commit eb31b5310c
14 changed files with 87 additions and 83 deletions
@@ -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")