Feature Support Matrix
Serving techniques AISimulate simulates for each inference engine. Supported means the technique is replayed within the limits on its linked page; Limited means common configurations are rejected or only an analytical estimate exists, as the row's note says. Techniques supported on their own do not automatically combine: Replay feature support lists the composition boundaries, and the AgentX section covers agentic traffic.
Branch main · commit 00e3b8f35 · source features.toml
Topology and parallelism
| Technique | vLLM | SGLang | TensorRT-LLM | Notes |
|---|---|---|---|---|
| Aggregated serving | Supported | Supported | Supported | Engine-specific scheduler and cache admission. |
| Prefill/decode disaggregation | Supported | Supported | Supported | Independently sized prefill and decode pools. |
| Tensor and expert parallelism | Supported | Supported | Supported | Priced by the performance model; see the FPE matrix per model and GPU. |
| Attention data parallelism | Supported | Supported | Supported | Rank-local scheduling; a grouped pass ends at the slowest rank. |
| Context parallelism | Limited | Limited | Not supported | Prediction only; decode CP depends on the model family. |
| Attention–FFN disaggregation | Limitedanalytical | Limitedanalytical | Limitedanalytical | Analytical estimate only, for fixed-length synthetic requests; no trace replay. |
| Encoder disaggregation (multimodal) | Limitedanalytical | Limited | Limitedanalytical | SGLang replays static Qwen3-VL encoder pools event by event; the analytical estimate adds mean encoder latency for Qwen3-VL and Kimi K3 towers. |
Scheduling and batching
| Technique | vLLM | SGLang | TensorRT-LLM | Notes |
|---|---|---|---|---|
| Continuous batching, chunked prefill | Supported | Supported | Supported | Engine-specific admission and token budgets; SGLang --enable-mixed-chunk (off upstream by default) is not modeled. |
| Prefix caching (G1 reuse) | Supported | Supported | Supported | Backend block and admission rules apply. |
| Sub-block prefix reuse | Limitedhybrid KV | Supported | Not supported | vLLM reuses whole blocks, except hybrid KV models at prefix_match_unit; SGLang matches per token at page size 1; TensorRT-LLM's default partial block reuse is not modeled. |
| Hybrid KV cache (per-request state) | Limited | Not supported | Not supported | Kimi K3 and DeepSeek V4 state in G1, aggregated and P/D; prefix reuse resumes from state snapshots. No G2/G3 or recommend. |
| Frontend tokenization cost | Supported | Supported | Supported | Each worker's tokenizer servers add a fixed plus per-input-token delay. |
| Response detokenization cost | Supported | Supported | Supported | Each emitting worker's detokenizer servers add a fixed plus per-output-token delay before the client sees tokens. |
Speculative decoding
| Technique | vLLM | SGLang | TensorRT-LLM | Notes |
|---|---|---|---|---|
| MTP | Limited | Limited | Limited | 1–5 drafts with a supplied acceptance rate; TensorRT-LLM keeps its legacy scheduling approximation. |
| EAGLE-3, DSPARK | Limited | Limited | Not supported | Linear 1–5 token drafts with a supplied acceptance rate; no tree drafting; model-family gates apply. |
| DFlash, draft model | Limited | Not supported | Not supported | Linear 1–5 token drafts from a draft checkpoint; DFlash covers Llama and DeepSeek V4. |
| N-gram prompt lookup | Limited | Not supported | Not supported | Fixed draft length and acceptance assumption. |
KV cache hierarchy
With KVCR, a worker fetches a cached prefix from a peer worker's G2.
| Tier | vLLM | SGLang / HiCache | TensorRT-LLM | KVCR vLLM | KVCR SGLang | KVCR TensorRT-LLM | Notes |
|---|---|---|---|---|---|---|---|
| G1Device memory | Supported | Supported | Supported | N/A upstream | N/A upstream | N/A upstream | |
| G2 localHost memory per DP rank | Limited | Not supported | Not supported | N/A upstream | N/A upstream | N/A upstream | Requires prefix caching; generic speculation schemes are rejected. |
| G2 sharedHost memory pool across workers | Limited | Not supported | Not supported | Limitedpeer fetch | N/A upstream | N/A upstream | A shared pool needs matching geometry on every role. KVCR needs router hints (idle on CLI traffic), aggregated or P/D prefill pools, no G3. |
| G3 localStorage per worker | Limited | Not supported | Not supported | Not supported | N/A upstream | N/A upstream | Aggregated worker with attention DP 1 only; no P/D, agentic traffic, speculation or recommend. |
| G3 sharedStorage shared by workers | Limited | Not supported | Not supported | N/A upstream | N/A upstream | N/A upstream | Same limits as G3 local. |
KV transfer and routing
| Technique | vLLM | SGLang | TensorRT-LLM | Notes |
|---|---|---|---|---|
| P/D KV transfer timing | Supported | Supported | Supported | Concurrent transfers share per-rank links max-min fairly. vLLM and TensorRT-LLM reserve source-first; SGLang destination-first. |
| KV-aware routing (Dynamo Router) | Supported | Supported | Supported | Requires the optional Dynamo stack. |
| Autoscaling (Dynamo Planner) | Supported | Supported | Supported | Requires the optional Dynamo stack. |
Workloads
| Technique | vLLM | SGLang | TensorRT-LLM | Notes |
|---|---|---|---|---|
| Synthetic and trace replay | Supported | Supported | Supported | Mooncake and compatible trace formats. |
| Multi-turn sessions | Supported | Supported | Supported | Think time between turns. |
| Vision-language on the language worker | Not supported | Limited | Not supported | Fixed synthetic images, PP 1 and attention DP 1; frontend costs from a host cost table. |
AgentX (agentic replay)
Offline engine stack only. Results are qualified functional_only, not hardware accuracy. Rows in other sections do not automatically compose with agentic traffic; these rows do.
| Technique | vLLM | SGLang | TensorRT-LLM | Notes |
|---|---|---|---|---|
| Weka, Agentic Mooncake and agentic Dynamo traces | Supportedfunctional | Supportedfunctional | Not supported | Dependency-graph replay in lanes; Weka is the AgentX source format. |
| Seeded snapshots | Supported | Supported | Not supported | Cut sampled uniformly between 25% and 75% of each play; import AIPerf cuts for parity runs. |
| Warmup, continuous profile | Limited | Limited | Not supported | Sequential lane recycling only (no random or shuffle); AIPerf --cache-bust is not implemented; engine.detokenization is rejected with a profile. |
| G2 host offload | Limited | Not supported | Not supported | One aggregated worker or 1P1D, attention DP 1 on every role, static pools, no speculation. |
| G3 offload, KVCR | Not supported | Not supported | Not supported | G3 is rejected; KVCR stays idle without router hints. |
| Speculative decoding | LimitedHBM only | LimitedHBM only | Not supported | MTP and EAGLE-family schemes with KV kept in GPU memory. |
| KV-aware routing, Planner | Not supported | Not supported | Not supported | The engine stack places requests round-robin without conversation affinity; AgentX on the Dynamo stack needs downstream qualification; agentic formats require planner.policy: disabled. |
Deployment search
| Technique | vLLM | SGLang | TensorRT-LLM | Notes |
|---|---|---|---|---|
| Configuration search (recommend) | Supported | Supported | Supported | Ranks candidates under a GPU budget and SLA. |
| Dynamo deployment generation | Supported | Supported | Supported | Renders the selected candidate for a pinned serving image. |
Combining techniques
Supported techniques are not automatically supported together. Replay feature support lists each composition boundary.
Which models and GPUs? →
The FPE Support Matrix covers model, GPU, backend and version.
How accurate? →
E2E and FPM accuracy dashboards report error against GPU runs.