[Diffusion] Add Worker contracts and RPC plumbing for Scheduler-managed paged KV cache (#5550)

Signed-off-by: Acerak01-fy <wfy2003324@163.com>
Signed-off-by: Hongsheng Liu <liuhongsheng4@huawei.com>
Co-authored-by: Hongsheng Liu <liuhongsheng4@huawei.com>
This commit is contained in:
Wang fuyinandHongsheng Liu authored and GitHub committed 2026-08-11 14:55:42 +08:00
1 parent 322600bfb2
commit af3faa6c1e
10 files changed
+622 -13

No files matched your search

+11 -2
View File
@@ -41,6 +41,7 @@ from vllm_omni.diffusion.data import (
OmniSleepTask,
OmniWakeTask,
)
from vllm_omni.diffusion.diffusion_kv.metadata import DiffusionKVMetadata
from vllm_omni.diffusion.distributed.parallel_state import (
destroy_distributed_env,
init_distributed_environment,
@@ -422,6 +423,7 @@ class DiffusionWorker:
req: OmniDiffusionRequest | list[OmniDiffusionRequest],
od_config: OmniDiffusionConfig,
kv_prefetch_job: KVPrefetchJob | None = None,
diffusion_kv_metadata: DiffusionKVMetadata | None = None,
) -> DiffusionOutput:
"""Execute a forward pass by delegating to the model runner.
@@ -457,7 +459,10 @@ class DiffusionWorker:
profiler = self._get_profiler()
ctx = profiler.annotate_context_manager("diffusion_forward") if profiler else nullcontext()
with ctx:
output = self.model_runner.execute_model(req, kv_prefetch_job=kv_prefetch_job)
kwargs: dict[str, Any] = {"kv_prefetch_job": kv_prefetch_job}
if diffusion_kv_metadata is not None:
kwargs["diffusion_kv_metadata"] = diffusion_kv_metadata
output = self.model_runner.execute_model(req, **kwargs)
if profiler:
profiler.step()
@@ -1350,6 +1355,7 @@ class WorkerWrapperBase:
req: OmniDiffusionRequest,
od_config: OmniDiffusionConfig,
kv_prefetch_job: KVPrefetchJob | None = None,
diffusion_kv_metadata: DiffusionKVMetadata | None = None,
) -> DiffusionOutput:
"""
Execute a forward pass.
@@ -1362,7 +1368,10 @@ class WorkerWrapperBase:
Returns:
DiffusionOutput with generated results
"""
return self.worker.execute_model(req, od_config, kv_prefetch_job=kv_prefetch_job)
kwargs: dict[str, Any] = {"kv_prefetch_job": kv_prefetch_job}
if diffusion_kv_metadata is not None:
kwargs["diffusion_kv_metadata"] = diffusion_kv_metadata
return self.worker.execute_model(req, od_config, **kwargs)
def execute_stepwise(self, scheduler_output: DiffusionSchedulerOutput) -> BaseRunnerOutput:
"""Execute one diffusion step."""