DWISE: Denoising Workload-Informed Scheduling Engine
Organizations: University of Bristol, Bristol, United Kingdom · University of Oxford, Oxford, United Kingdom
Abstract
Unlike autoregressive large language models (AR-LLMs), diffusion LLMs (dLLMs) generate text by iteratively denoising many tokens in parallel, offering a promising path to efficient inference. Existing serving frameworks, however, schedule dLLM requests with policies designed for AR models, namely first-come-first-served (FCFS) admission and prefill priority. We find that both policies are ill-suited to dLLMs, wasting much of their speed. FCFS ignores that a dLLM request's decoding cost is highly heterogeneous and unknown at arrival, causing severe head-of-line blocking. Prefill priority, widely used in AR-LLM serving to keep time-to-first-token low, sharply cuts dLLM efficiency, as rounds that run only prompts leave most of the batch idle. We present DWISE, a Denoising Workload-Informed Scheduling Engine for efficient dLLM serving. DWISE schedules requests by their remaining work, measured in a block-level unit shared by prefill and denoising, so both phases share a round. To predict the unknown denoising workload, DWISE combines a lightweight prompt-based predictor at admission with a single refinement from the first denoising round's hidden states, which capture model-specific information absent from the prompt and require no additional model execution. Implemented in SGLang and evaluated on five models from three dLLM families under bursty workloads, DWISE reduces mean end-to-end latency over SGLang by 5.4 on average and up to 14.9 while preserving task accuracy. The code will be released publicly.
Figures & tables
| Workload | Serving | Train |
|---|---|---|
| Open-ended | 1,973 | 986 |
| ShareGPT ( ShareGPT Team, 2023 ) | 1,085 | 542 |
| MBPP ( Austin et al., 2021b ) | 505 | 250 |
| HumanEval ( Chen et al., 2021 ) | 87 | 46 |
| IFEval ( Zhou et al., 2023 ) | 296 | 148 |
| Single-answer | 1,973 | 987 |
| LLaDA2.0-mini | LLaDA2.1-mini | LLaDA2.2-mini | SDAR-8B | DiffusionGemma | ||||||
| B | P | B | P | B | P | B | P | B | P | |
| Mean latency (s) | ||||||||||
| SGLang | 603.1 | 597.4 | 545.5 | 535.9 | 576.6 | 571.7 | 9053 | 8973 | 325.9 | 262.7 |
| MLFQ | 716.0 | 721.8 | 625.9 | 616.9 | 651.0 | 654.4 | 11382 | 12141 | 346.2 | 282.1 |
| SSJF | 739.3 | 728.4 | 602.7 | 584.6 | 647.4 | 611.7 | 11912 | 10936 | 323.5 | 264.2 |
| LTR | 702.7 | 679.6 | 645.3 | 613.9 | 664.2 | 597.3 | 12217 | 11577 | 326.9 | 266.1 |
| Prefill-only (%) | Idle | Filled | |||
|---|---|---|---|---|---|
| Policy | Rounds | rounds | time | slots (%) | slots/round |
| SGLang | 63,926 | 94.6 | 78.2 | 96.1 | 5.0 |
| DWISE | 2,819 | 3.0 | 11.2 | 11.6 | 113.2 |
| FCFS | SSJF | S 3 | LTR | TRAIL | DWISE | |
|---|---|---|---|---|---|---|
| B | 251.7 | 282.6 | 188.4 | 271.1 | 198.5 | 76.9 |
| P | 228.0 | 256.9 | 165.1 | 248.3 | 160.7 | 48.5 |
| Arrival | Predictor | Ratio | Mean (s) | p50 (s) | |
|---|---|---|---|---|---|
| B | Admission only | 1.03 | 0.714 | 80.8 | 58.4 |
| Raw refinement | 1.16 | 0.890 | 80.2 | 55.2 | |
| Calibrated | 1.00 | 0.890 | 76.9 | 51.9 | |
| P | Admission only | 1.03 | 0.716 | 51.9 | 17.2 |
| Raw refinement | 1.16 | 0.891 | 50.9 | 15.4 | |
| Calibrated | 1.00 | 0.891 | 48.5 | 13.7 |
| Refine | Once | Per block | Per 4 rounds | Per round |
|---|---|---|---|---|
| Mean (s) | 48.5 | 49.5 | 51.0 | 51.0 |
| p50 (s) | 13.7 | 13.9 | 15.0 | 14.7 |
| Preemptions / request | 0.34 | 0.75 | 0.90 | 1.14 |
| Reach (%) | 37.0 | 5.5 | 4.9 | 0.0 |
| Predictor ( s) | 795 | 809 | 828 | 777 |
Appendix figures & tables10 assets
Supplementary material from the paper’s appendix.
Appendix
| Rounds per request | |||||
|---|---|---|---|---|---|
| Model | p50 | p90 | max | Prompt | 1st round |
| LLaDA2.0-mini | 110 | 236 | 292 | 0.657 | 0.809 |
| LLaDA2.1-mini | 46 | 149 | 279 | 0.740 | 0.868 |
| LLaDA2.2-mini | 53 | 189 | 296 | 0.723 | 0.863 |
| SDAR-8B | 97.5 | 252 | 317 | 0.697 | 0.853 |
| DiffusionGemma | 10 | 18 | 48 | 0.697 | 0.809 |
| Predictor | Time (ms, single request) | |
|---|---|---|
| Ridge | 0.535 | 0.42 |
| MLP (256–256) | 0.701 | 0.44 |
| XGBoost (100, depth 6) | 0.706 | 0.65 |
| LightGBM (500, 31 leaves) | 0.709 | 0.46 |
| LightGBM (1,000, 63 leaves) | 0.689 | 0.54 |
| ExtraTrees (100) | 0.722 | 3.57 |
| Arrival | Policy | Mean latency (s) | Speedup |
|---|---|---|---|
| B | SGLang | 528.0 7.8 | 1.00 |
| DWISE | 74.3 0.4 | 7.10 0.14 | |
| P | SGLang | 521.8 6.8 | 1.00 |
| DWISE | 48.7 1.1 | 10.72 0.14 |
| Policy | Runs compared | Identical (%) | |
|---|---|---|---|
| DWISE | same trace | 98 | 0.998 |
| DWISE | different traces | 92 | 0.994 |
| SGLang | different traces | 37 | 0.972 |
| (Hard) MCQ | Other | All | |
|---|---|---|---|
| Requests | 23% | 77% | 100% |
| Work | 3.1% | 96.9% | 100% |
| , SSJF | first | ||
| , LTR | first | ||
| , DWISE adm. | – | ||
| , DWISE ref. | – |
| B | P | |||||
|---|---|---|---|---|---|---|
| Config | SGLang | DWISE | Sp. | SGLang | DWISE | Sp. |
| 1 GPU | 543.0 | 73.0 | 7.4 | 540.2 | 45.9 | 11.8 |
| TP=2 | 498.1 | 74.5 | 6.7 | 483.5 | 46.1 | 10.5 |
| TP=4 | 457.4 | 64.7 | 7.1 | 439.4 | 36.0 | 12.2 |
| TP=4+EP=4 | 454.2 | 65.4 | 6.9 | 444.7 | 38.3 | 11.6 |
| Budget | Tok. | Rnd. | SGLang | DWISE | Sp. | ||
|---|---|---|---|---|---|---|---|
| B | 256 | 176 | 62 | 526.2 | 73.0 | 7.21 (2.12) | 0.894 |
| 512 | 295 | 100 | 607.3 | 104.9 | 5.79 (1.99) | 0.889 | |
| 1,024 | 425 | 144 | 688.7 | 145.3 | 4.74 (1.78) | 0.892 | |
| 2,048 | 536 | 180 | 782.1 | 175.8 | 4.45 (1.74) | 0.886 | |
| P | 256 | 177 | 62 | 568.7 | 45.4 | 12.54 (2.45) | 0.894 |
| 512 | 294 | 100 | 610.0 | 76.6 | 7.97 (2.01) | 0.890 |
| Arrival | Policy | Mean | p50 | p99 |
|---|---|---|---|---|
| B | SGLang | 525.2 | 541.1 | 1035.4 |
| DWISE | 67.1 | 45.2 | 472.3 | |
| P | SGLang | 521.5 | 570.5 | 983.8 |
| DWISE | 40.0 | 6.8 | 403.3 |
| B | P | |||
|---|---|---|---|---|
| Category | p99 | Max | p99 | Max |
| Chat | 1048 215 | 1050 244 | 1009 196 | 1016 224 |
| Instruction | 1045 246 | 1049 260 | 960 219 | 962 233 |
| Code | 1038 81 | 1041 130 | 950 44 | 952 116 |
| Math | 1040 83 | 1043 133 | 950 52 | 954 114 |
| Multiling. math | 1038 121 | 1045 125 | 953 86 | 958 105 |
| Held-out category | Admission | Refined |
|---|---|---|
| Hard MCQ | 0.200 0.154 | 0.481 0.463 |
| MCQ | 0.237 0.185 | 0.686 0.602 |
| Code | 0.251 0.202 | 0.657 0.539 |
| Math | 0.259 0.069 | 0.540 0.399 |
| Multilingual math | 0.087 0.163 | 0.755 0.623 |
| Long context | 0.338 n/a | 0.352 0.178 |
Diffusion Model Serving
Diffusion model serving optimizes the scheduling, execution, and resource use of diffusion models to meet latency and throughput goals.
See all 19 papers