vLLM vs SGLang vs TensorRT-LLM in 2026: LLM Inference Engine Benchmark Deep-Dive
Why the Serving Engine Is the Highest-Leverage Infra Decision for 2026 Agent Fleets
This comparison is based on official documentation, benchmark papers, and vendor-published results — we did not run these engines hands-on. Every figure below traces to a primary source, and vendor self-reports are attributed as such.
The serving engine sits between your model weights and every user request. It manages the KV cache, schedules batches, decodes tokens, and enforces output structure. For agent fleets — where each task spawns dozens of tool-calling loops, each with its own prefix-heavy context — the engine’s architectural bets determine your p99 latency, your GPU utilization, and ultimately your per-token cost.
Four engines dominate the 2026 conversation:
- vLLM bets on a unified scheduler (V1) built atop PagedAttention’s block-based KV-cache management S1.
- SGLang bets on RadixAttention, a prefix tree that reuses KV cache across requests S2.
- TensorRT-LLM bets on compiled engine graphs — you build a static execution plan before serving S11.
- LMDeploy bets on TurboMind, a mixed 4/8-bit precision engine for low-cost self-hosting S3.
All four are Apache-2.0 licensed, so the license costs nothing — the real cost is GPU time or per-token margins. Choose wrong, and you’re paying for idle silicon or latency you can’t explain.
What this post is and isn’t
This is a sourced comparison: a synthesis of official docs, peer-reviewed papers, and vendor-published benchmarks. It is not a hands-on benchmark — we did not run these engines, and no first-person measurement claims appear anywhere in this post. Every number carries its source and qualifier.
How We Compared: Vendor-Published Evidence, Not Hands-On Runs
Our sourcing rules were strict:
- Primary sources only. We used the 19 verified sources listed below — official docs, arXiv papers, vendor repos, and independent leaderboards. No aggregator comparison blogs.
- Attribution rule. Vendor self-reports are labeled as such (“SGLang reports…”, “per NVIDIA…”).
- Honesty rule. Any number not traceable to a cited source was deleted. If we couldn’t verify it, it’s not here.
- Version pinning. We compare version-to-version claims exactly as published — the SGLang paper’s 6.4× claim is not merged with the LMSYS blog’s 5× claim, because they used different baselines and workloads.
The rubric we pre-committed to:
| Criterion | Weight |
|---|---|
| Throughput | 20% |
| TTFT / latency | 15% |
| Ease of deployment | 15% |
| Agentic workload (tool calling, structured outputs) | 25% |
| Cost efficiency | 25% |
Builder A — vLLM: PagedAttention and the V1 Unified Scheduler
PagedAttention KV-cache paging
vLLM’s founding insight is PagedAttention: the KV cache is managed in fixed-size blocks, like virtual memory pages in an OS S1. This eliminates fragmentation — the paper reports 2–4× throughput vs FasterTransformer and Orca at the same latency, with near-zero KV-cache waste S1. Instead of pre-allocating contiguous KV space, blocks are allocated on demand and shared where possible.
vLLM V1 (2025): unified scheduler + prefix caching on by default
The V1 re-architecture (announced January 2025) unified the scheduler and persistent batch handling. The vLLM team reports up to 1.7× throughput vs V0 — without multi-step scheduling S6. That qualifier matters: multi-step scheduling could push the number higher, but the 1.7× figure stands on its own.
V1 also enabled prefix caching by default, with a design that costs less than 1% throughput even at a 0% cache-hit rate S6. That’s the key production trade-off: you get caching benefits on prefix-heavy traffic without paying a penalty when cache misses are total. V1 also integrated FlashAttention 3 S6.
Ecosystem and serving surface
vLLM’s docs describe a mature serving surface: OpenAI-compatible API, structured outputs, and broad platform support S4. It’s NVIDIA-first per official docs S4, though the repo is Apache-2.0 and widely deployed S5. For teams that want a drop-in replacement for an OpenAI-style endpoint, vLLM’s ecosystem is the safest default.
Builder B — SGLang: RadixAttention and Compressed FSM Decoding
RadixAttention prefix tree
SGLang’s core bet is RadixAttention: a radix tree that stores KV cache for shared prefixes across requests S2. When a new request shares a prefix with a previous one — a system prompt, a tool schema, a conversation history — the shared KV blocks are reused instead of recomputed. The 2024 LMSYS launch blog describes the mechanics in detail S10.
Structured decoding numbers — with qualifiers
Two published claims exist, and they must not be merged:
- The paper (NeurIPS 2024): SGLang reports up to 6.4× higher throughput vs “state-of-the-art inference systems” on agent control, JSON decoding, RAG, and multi-turn chat S2. The baselines are not named individually in that headline claim.
- The LMSYS launch blog (Jan 2024): SGLang measured up to 5× throughput vs Guidance and vLLM on agent/reasoning/extraction/chat/few-shot workloads, with baselines vllm v0.2.5, guidance v0.1.8, TGI v1.3.0, on Llama-7B (1×A10G FP16) and Mixtral-8x7B (8×A10G) S10.
These are different workloads, different baselines, different versions. Treat them as separate data points.
2026 production scale
SGLang’s docs state: “SGLang reports powering 400k+ GPUs and trillions of tokens/day” S7 — that is a vendor self-report, not an independent measurement. The project also claims day-0 support for new flagship models and runs on NVIDIA, AMD, Intel Xeon, Google TPU, and Ascend NPU S7. The vendor site lists adopters including NVIDIA, xAI, Oracle, AMD, LinkedIn, and Google Cloud S9.
Builder C — TensorRT-LLM: Compiled Graphs and a Quantized Model Zoo
Compile-first approach
TensorRT-LLM’s architecture is fundamentally different: you build a static engine graph before serving S11. The build step compiles the model into optimized CUDA kernels, which means higher peak performance but a longer setup path. NVIDIA provides trtllm-bench and trtllm-serve as the benchmarking and serving entry points S12.
FP8/FP4 quantized model zoo
NVIDIA maintains a quantized model zoo, including DeepSeek-R1-FP4 S11. FP4 quantization roughly halves memory bandwidth vs FP8, which matters for large models on a fixed GPU budget. The trade-off is accuracy risk — you must validate per-model.
Scale-out
Per NVIDIA’s repo, TensorRT-LLM integrates with NVIDIA Dynamo for scale-out serving, offers AutoDeploy in beta for automated engine building, and includes agent-flow support for agentic traffic patterns S11. NVIDIA describes these as “state-of-the-art optimizations” — that’s vendor language, not our assessment.
The Honorable Mention — LMDeploy’s TurboMind (Cross-Check Lane)
LMDeploy’s TurboMind engine uses mixed 4-bit/8-bit precision to cut memory and bandwidth S3. As of August 2026, the repo documents CUDA 13.0 and Blackwell support S13. We treat LMDeploy as a cross-check lane, not a fourth full contender — its published benchmark surface is thinner, but its cost story is compelling for teams that want maximum throughput per dollar on quantized models.
Head-to-Head: The Comparison Table
| Engine | Architecture bet | License | Hardware | Quantization support | Prefix caching | Best-fit workload |
|---|---|---|---|---|---|---|
| vLLM | PagedAttention KV paging; V1 unified scheduler + persistent batch S1S6 | Apache-2.0 S5 | NVIDIA-first per official docs S4 | FP8/FP4 + GPTQ/AWQ formats per official docs S4 | Yes — enabled by default in V1, <1% penalty at 0% hit rate S6 | High-concurrency OpenAI-compatible serving, broad ecosystem S4S5S6 |
| SGLang | RadixAttention prefix tree + compressed FSM decoding S2S10 | Apache-2.0 S8 | NVIDIA, AMD, Intel Xeon, Google TPU, Ascend NPU S7 | FP8/INT8 + common quant formats per official docs S7 | Yes — RadixAttention on by default S2S10 | Prefix-heavy agentic traffic, structured outputs S2S10 |
| TensorRT-LLM | Compiled engine graphs (C++/Python), NVIDIA Dynamo scale-out S11S12 | Apache-2.0 S11 | NVIDIA GPUs only S11S12 | FP8/FP4 quantized model zoo (e.g., DeepSeek-R1-FP4) S11 | Yes — KV-cache reuse per official docs S12 | NVIDIA-only fleets chasing peak utilization S11S12 |
| LMDeploy | TurboMind mixed 4/8-bit precision engine S3 | Apache-2.0 S13 | NVIDIA; CUDA 13.0/Blackwell (Aug 2026) S13 | 4-bit/8-bit mixed precision S3 | Supported per official docs S14 | Low-cost quantized self-hosting at scale S3S13 |
Feature comparison compiled from vendor documentation and papers — this is not a measured benchmark.
Hosted Provider Pricing: Together vs Fireworks vs DeepInfra
All prices below are as of 2026-08-20 and come from the cited pricing pages. All four engines are Apache-2.0, so the license is $0 — the real cost is either GPU time (self-host) or per-token margins (hosted).
Per-token tiers with cached-input discounts
Together AI (vLLM-based), per 1M tokens S17:
| Model | Input | Cached | Output |
|---|---|---|---|
| DeepSeek V4 Flash 0731 | $0.14 | $0.03 | $0.28 |
| DeepSeek V4 Pro 0813 | $1.32 | $0.13 | $3.96 |
| gpt-oss-120B | $0.15 | — | $0.60 |
| Qwen3.5-397B-A17B | $0.60 | $0.35 | $3.60 |
DeepInfra (vLLM/SGLang), per 1M tokens (1024k context) S19:
| Model | Input | Cached | Output |
|---|---|---|---|
| DeepSeek-V4-Flash-0731 | $0.08 | $0.016 | $0.18 |
| DeepSeek-V4-Pro | $1.30 | $0.10 | $2.60 |
| Kimi-K3 | $2.85 | $0.285 | $14.25 |
| Qwen3.5-397B-A17B | $0.45 | $0.22 | $3.00 |
All DeepInfra models run on H100/A100 (vendor-stated) S19.
GPU on-demand rates
Fireworks (SGLang-based) rents GPUs by the hour S18:
| GPU | Current rate | From Sep 1, 2026 |
|---|---|---|
| H100 80GB | $7.00/hr | $8.00/hr |
| B200 180GB | $10.00/hr | $13.00/hr |
| B300 288GB | $12.00/hr | $15.00/hr |
| GB300 288GB | $18.00/hr | $20.00/hr |
Fine-tuning rates run $0.50–$40 per 1M training tokens S18. We do not quote unverified Fireworks per-token numbers.
The self-host cost formula
For self-hosting, the illustrative math is:
$/1M-token-served ≈ (GPU $/hr) ÷ (throughput in tokens/hr)
Using Fireworks’ H100 rate of $7.00/hr as the GPU price floor S18, an engine serving 1M tokens/hr costs ~$7 per 1M tokens in GPU time alone. This is illustrative math — not a measured result — and your actual throughput depends on model size, batch composition, and quantization.
Agentic Workloads: Tool Calling, Structured Outputs, and Prefix Caching
Agent loops are prefix-heavy by construction: every tool call re-sends the system prompt, the tool schemas, and the conversation history. That’s why prefix caching is the single most important feature for agentic traffic — it converts repeated prefix computation into KV-cache hits.
The structured-output paths differ per engine:
- vLLM supports structured outputs (JSON schema, grammar) with default-on prefix caching S4S6.
- SGLang uses compressed finite-state-machine decoding to constrain output while sharing prefix KV S2.
- TensorRT-LLM adds agent-flow support for agentic patterns S11.
The evaluation standard is BFCL V4, which covers Non-Live AST, Live, Multi-Turn, Web Search, Memory, and Relevance Detection S16. We deliberately do not quote leaderboard scores — the benchmark is the standard, not the numbers.
For deeper context, see our prompt caching guide and our MCP server performance benchmarking post.
How to Choose: A Decision Guide for 2026
Pick vLLM if…
You want the safest default: a mature, OpenAI-compatible serving surface, default-on prefix caching with <1% overhead at 0% hit rate S6, and the broadest ecosystem S4. If you’re serving high-concurrency traffic and your team already knows the vLLM API, this is the lowest-risk choice.
Pick SGLang if…
Your traffic is prefix-heavy — agent loops, multi-turn chat, RAG with shared contexts. SGLang’s RadixAttention and compressed-FSM decoding produced the strongest published results on exactly those workloads S2S10. The vendor’s production scale claim — 400k+ GPUs — is self-reported, but the architectural fit is real S7.
Pick TensorRT-LLM if…
You’re all-in on NVIDIA and want peak utilization. The compile-first approach means you invest setup time upfront for higher sustained throughput S11. The FP4 model zoo (e.g., DeepSeek-R1-FP4) is a differentiator S11. But you’re locked to NVIDIA GPUs S11S12.
And LMDeploy if…
You want maximum throughput per dollar on quantized models. TurboMind’s mixed 4/8-bit precision directly attacks memory bandwidth S3, and CUDA 13.0/Blackwell support keeps it current S13. It’s a cross-check lane, not a primary recommendation — but for cost-constrained self-hosting, it deserves a pilot.
For operational context, see our agent observability guide.
FAQ: vLLM vs SGLang vs TensorRT-LLM
Is SGLang faster than vLLM? Not universally: the SGLang paper reports up to 6.4× higher throughput than state-of-the-art systems on agent control, JSON decoding, RAG, and multi-turn chat S2, and the 2024 LMSYS launch blog measured up to 5× over vLLM v0.2.5 and Guidance v0.1.8 S10; vLLM V1’s 2025 re-architecture closed part of the gap with up to 1.7× over V0 S6 — the winner depends on workload and on which versions are compared.
Does vLLM support prefix caching? Yes — vLLM V1 enables prefix caching by default with a zero-overhead design that costs less than 1% throughput even at a 0% cache-hit rate S6, and the mechanism descends from PagedAttention’s block-based KV-cache management S1.
Which engine should I use for tool calling? For tool-calling-heavy traffic, SGLang’s compressed-FSM structured decoding and RadixAttention produced the strongest published results — up to 6.4× on agent-control workloads S2; vLLM offers structured outputs with default-on prefix caching S4S6, TensorRT-LLM adds agent-flow support S11, and BFCL V4 is the standard evaluation to measure against S16.
Is TensorRT-LLM free? Yes — TensorRT-LLM is open source under Apache-2.0, so there is no license fee S11S12; the real costs are NVIDIA-only hardware, the engine-compilation step that lengthens setup, and GPU time whether self-hosted or rented S18.
vLLM vs SGLang for production in 2026? Both are production-grade in 2026: vLLM pairs a mature ecosystem and OpenAI-compatible serving with default-on prefix caching S4S6, while SGLang reports powering 400k+ GPUs and trillions of tokens per day with day-0 flagship-model support S7 (vendor-reported); choose by workload shape — prefix-heavy agentic traffic favors SGLang, ecosystem breadth favors vLLM S10.
Do hosted APIs make the engine choice moot? No — hosted pricing encodes the engine: Together AI’s vLLM-based serverless tiers charge $0.14 input per 1M tokens for DeepSeek V4 Flash 0731 versus $0.03 cached S17, DeepInfra’s vLLM/SGLang tiers charge $0.08 input versus $0.016 cached S19, and Fireworks’ SGLang-based fleet rents H100s at $7.00/hr S18 — so cached-input economics decide agent costs.
The Bottom Line: Our Verdict (Judge Section)
Throughput: SGLang — the published evidence is strongest here: up to 6.4× on agent-control workloads S2 and up to 5× in the LMSYS measurement S10, though both claims are version- and workload-specific.
TTFT / latency: Tie — vLLM and SGLang. Neither publishes a decisive TTFT advantage in the sources we verified; vLLM’s V1 scheduler S6 and SGLang’s RadixAttention S2 both target latency, but no head-to-head TTFT measurement exists in our source set.
Ease of deployment: vLLM — the OpenAI-compatible API and mature docs S4 make it the lowest-friction path; TensorRT-LLM’s compile step S11 is the highest-friction.
Agentic workload: SGLang — compressed-FSM decoding plus RadixAttention is purpose-built for tool-calling loops S2S10.
Cost efficiency: LMDeploy — mixed 4/8-bit precision directly cuts memory bandwidth per token S3, which is the dominant cost lever in self-hosting.
Overall recommendation: Pick SGLang if your traffic is prefix-heavy agentic workloads; pick vLLM if you want the safest ecosystem default; pick TensorRT-LLM if you’re NVIDIA-only and want peak utilization; pick LMDeploy if cost per token is your binding constraint. See our arena archive for past comparisons.
How This Guide Was Built (E-E-A-T Block)
Who: NiteAgent editorial. When: 2026-08-20. How sources were verified: all 19 sources returned HTTP 200 on 2026-08-20 and were read in full — we did not cite a page we hadn’t opened. What we deliberately did NOT do: run benchmarks, measure latency, or generate any first-party performance data. How readers can audit: every figure above carries an inline link to its source; cross-check any number by opening the cited page. For more, see our blog.
← Back to all posts


