refactor(runner): move kernel warmup into the shared runner lifecycle (warmup()) (#28739)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Cheng Wan
2026-06-19 13:13:13 -07:00
committed by GitHub
co-authored by Claude Opus 4.8
parent d705a91de1
commit 856b0dc74b
16 changed files with 678 additions and 606 deletions
@@ -325,6 +325,11 @@ class MockModelRunner(ModelRunner):
self.pp_size = 1
self.is_draft_worker = False
self.spec_algorithm = SpeculativeAlgorithm.NONE
# The runner lifecycle warms up kernels in capture() / first execute()
# via BaseRunner.warmup(); this mock never calls init_backends and has no
# real kernels to warm up, so mark it done (warmup becomes a no-op for
# the runner-mode attention tests that drive capture directly).
self._kernel_warmed_up = True
speculative_num_draft_tokens = (
max(case.input_lens)
if case.forward_mode.is_target_verify()
@@ -306,6 +306,7 @@ class DSAMockModelRunner(ModelRunner):
self.page_size = case.page_size
self.model_config = model_config
self.tp_size = 1
self._kernel_warmed_up = True
self.dp_size = 1
self.pp_size = 1
self.server_args = make_mock_server_args(
@@ -412,6 +412,7 @@ class MockDSV4ModelRunner:
self.sliding_window_size = DSV4_SWA_WINDOW
self.use_mla_backend = True
self.is_draft_worker = False
self._kernel_warmed_up = True
@property
def hybrid_gdn_config(self):
@@ -321,6 +321,7 @@ class DualChunkMockModelRunner(ModelRunner):
self.page_size = case.page_size
self.model_config = model_config
self.tp_size = 1
self._kernel_warmed_up = True
self.dp_size = 1
self.pp_size = 1
self.server_args = make_mock_server_args(
@@ -304,6 +304,7 @@ class MockGDNModelRunner(ModelRunner):
self.sliding_window_size = None
self.use_mla_backend = False
self.is_draft_worker = False
self._kernel_warmed_up = True
@property
def hybrid_gdn_config(self):
@@ -310,6 +310,7 @@ class MockKDAModelRunner(ModelRunner):
self.sliding_window_size = None
self.use_mla_backend = False
self.is_draft_worker = False
self._kernel_warmed_up = True
@property
def hybrid_gdn_config(self):
@@ -319,6 +319,7 @@ class MockLightningModelRunner(ModelRunner):
self.sliding_window_size = None
self.use_mla_backend = False
self.is_draft_worker = False
self._kernel_warmed_up = True
@property
def hybrid_gdn_config(self):
@@ -454,6 +454,7 @@ class MockMamba2ModelRunner(ModelRunner):
self.sliding_window_size = None
self.use_mla_backend = False
self.is_draft_worker = False
self._kernel_warmed_up = True
@property
def hybrid_gdn_config(self):
@@ -306,6 +306,7 @@ class MockMLAModelRunner(ModelRunner):
self.sliding_window_size = None
self.use_mla_backend = True
self.is_draft_worker = False
self._kernel_warmed_up = True
@property
def hybrid_gdn_config(self):