[Feature][MiniMax-H3] Support diffusion continuous batching (#5810)

Signed-off-by: princepride <wangzhipeng628@gmail.com>
Signed-off-by: lishunyang12 <lishunyang12@163.com>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: lishunyang12 <lishunyang12@163.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
authored and GitHub committed 2026-08-24 21:08:53 +08:00
1 parent aa69acbd09
commit d150a4fde7
15 files changed
+1834 -140

No files matched your search

+34 -1
View File
@@ -25,7 +25,7 @@ from vllm_omni.diffusion.sched import (
StepScheduler,
)
from vllm_omni.diffusion.sched.interface import CachedRequestData, NewRequestData
from vllm_omni.diffusion.worker.utils import RunnerOutput
from vllm_omni.diffusion.worker.utils import BatchRunnerOutput, RunnerOutput
from vllm_omni.inputs.data import OmniDiffusionSamplingParams
pytestmark = [pytest.mark.core_model, pytest.mark.cpu, pytest.mark.diffusion]
@@ -1559,6 +1559,39 @@ class TestStepScheduler:
assert sched_output.num_running_reqs == 2
assert sched_output.num_waiting_reqs == 0
def test_mixed_batch_error_finishes_only_failed_request(self) -> None:
scheduler = StepScheduler()
scheduler.initialize(SimpleNamespace(max_num_seqs=2))
req_bad = scheduler.add_request(_make_step_request("bad", num_inference_steps=2))
req_good = scheduler.add_request(_make_step_request("good", num_inference_steps=2))
first = scheduler.schedule()
finished = scheduler.update_from_output(
first,
BatchRunnerOutput.from_list(
[
_make_step_output(
req_bad,
step_index=0,
finished=True,
error="invalid request input",
),
_make_step_output(req_good, step_index=1),
]
),
)
assert finished == {req_bad}
assert scheduler.get_request_state(req_bad).status == DiffusionRequestStatus.FINISHED_ERROR
assert scheduler.get_request_state(req_good).status == DiffusionRequestStatus.RUNNING
assert scheduler.get_request_state(req_good).req.sampling_params.step_index == 1
second = scheduler.schedule()
assert second.finished_req_ids == {req_bad}
assert _new_ids(second) == []
assert _cached_ids(second) == [req_good]
def test_step_batch_rejects_different_sampling_key(self) -> None:
scheduler = StepScheduler()
scheduler.initialize(SimpleNamespace(max_num_seqs=3))