[diffusion] fix: fix --warmup silently downgrading server-based warmup to request mode (#29514)
This commit is contained in:
@@ -726,6 +726,8 @@ class ServerArgs(DisaggServerArgsMixin):
|
|||||||
if mode_explicit or not legacy_explicit:
|
if mode_explicit or not legacy_explicit:
|
||||||
self.warmup = self.warmup_mode != "off"
|
self.warmup = self.warmup_mode != "off"
|
||||||
self.server_warmup = self.warmup_mode == "server"
|
self.server_warmup = self.warmup_mode == "server"
|
||||||
|
elif self.warmup:
|
||||||
|
self.server_warmup = self.server_warmup or self.warmup_mode == "server"
|
||||||
|
|
||||||
# Explicit resolutions imply warmup is on (request-based).
|
# Explicit resolutions imply warmup is on (request-based).
|
||||||
if self.warmup_resolutions is not None:
|
if self.warmup_resolutions is not None:
|
||||||
|
|||||||
@@ -588,6 +588,29 @@ class TestWarmupModeNormalization(unittest.TestCase):
|
|||||||
self.assertFalse(sa.server_warmup)
|
self.assertFalse(sa.server_warmup)
|
||||||
self.assertEqual(sa.warmup_mode, "request")
|
self.assertEqual(sa.warmup_mode, "request")
|
||||||
|
|
||||||
|
def test_legacy_warmup_on_uses_defaulted_server_mode(self):
|
||||||
|
# `serve --warmup` (legacy ON, mode defaulted to "server" but not
|
||||||
|
# explicit) must resolve to server-based warmup, not silently downgrade
|
||||||
|
# to request mode.
|
||||||
|
sa = self._resolve(warmup_mode="server", warmup=True, explicit=("warmup",))
|
||||||
|
self.assertEqual(sa.warmup_mode, "server")
|
||||||
|
self.assertTrue(sa.warmup)
|
||||||
|
self.assertTrue(sa.server_warmup)
|
||||||
|
|
||||||
|
def test_legacy_warmup_with_resolutions_runs_server_warmup(self):
|
||||||
|
# Dead-zone regression: `serve --warmup --warmup-resolutions X` must run
|
||||||
|
# server-based (synthetic) warmup, not end up with no warmup at all
|
||||||
|
# (request-based warmup bails out when warmup_resolutions is set).
|
||||||
|
sa = self._resolve(
|
||||||
|
warmup_mode="server",
|
||||||
|
warmup=True,
|
||||||
|
warmup_resolutions=["1024x1024"],
|
||||||
|
explicit=("warmup",),
|
||||||
|
)
|
||||||
|
self.assertTrue(sa.warmup)
|
||||||
|
self.assertTrue(sa.server_warmup)
|
||||||
|
self.assertEqual(sa.warmup_mode, "server")
|
||||||
|
|
||||||
def test_disagg_role_disables_server_warmup(self):
|
def test_disagg_role_disables_server_warmup(self):
|
||||||
from sglang.multimodal_gen.runtime.disaggregation.roles import RoleType
|
from sglang.multimodal_gen.runtime.disaggregation.roles import RoleType
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user