Our LLM inference benchmark compares vLLM, Hugging Face TGI, SGLang and Triton with TensorRT-LLM on 8x H200. The measurements below date from Q2 2026 and have not been re-run. The engine landscape has moved since, so treat the absolute numbers as a snapshot and the architectural trade-offs as the durable part.
The short October 2026 answer: vLLM and SGLang are the two actively developed general-purpose open-source engines, both shipping a release every one to three weeks. TGI is officially in maintenance mode, so new deployments should not start there. Triton is now branded NVIDIA Dynamo-Triton, and NVIDIA’s LLM-specific effort sits in Dynamo, which orchestrates SGLang, TensorRT-LLM or vLLM as backends.
If you only read one section, read “What changed for late 2026” below. It lists the verified version and status changes, flags what we could not confirm, and tells you which parts of the original comparison to discount.
Last Updated: October 2026
What changed for late 2026
This section was added in October 2026. The benchmark body further down is the original Q2 2026 text, kept verbatim. Version figures here come from project release pages and NVIDIA’s Dynamo release table, checked on 28 October 2026. Release trackers move quickly, so confirm against the upstream release page before you pin anything.
vLLM: now in the 0.3x series
vLLM has moved well beyond the Q2 snapshot. The project’s GitHub releases page lists v0.32.0 (released 18 October 2026) as the latest stable build, with a v0.33 release candidate appearing shortly afterwards on third-party trackers. Release notes for v0.32.0 describe Model Runner V2 gaining a GPU n-gram speculator, Elastic expert parallelism and pipeline parallelism for MLA models, plus expanded NVFP4 KV-cache support and faster startup. They also list dropped Python 3.10 support and a removed cascade attention path. If you tune vLLM from older flags, read the breaking changes first. We cover the runner transition in our vLLM 0.30 Model Runner V2 migration guide.
SGLang: still weekly-to-fortnightly releases
SGLang’s latest stable tag is v0.5.22 (15 October 2026), following v0.5.21 on 1 October and v0.5.20 on 18 September. The v0.5.20 notes report CUDA 12 wheels and images are no longer published (v0.5.19 is the last with them), a new HRRN scheduling policy, and radix-tree caching improvements. Those notes include vendor-reported gains on specific models and traces. We have not reproduced them, so do not read them as general speedups. Our SGLang 0.5.18 migration notes cover an earlier upgrade step.
TGI: maintenance mode
This is the biggest change for the original comparison. Hugging Face’s TGI documentation now carries a notice that text-generation-inference “is now in maintenance mode”, accepting only minor bug fixes, documentation improvements and lightweight maintenance. The same notice recommends vLLM and SGLang, plus llama.cpp and MLX for local use. The latest TGI release we could find is v3.3.7 from December 2025. Our Q2 recommendation of TGI for Kubernetes operational maturity should therefore be read as historical. Existing TGI fleets keep working, but new builds should evaluate vLLM or SGLang first.
Triton, TensorRT-LLM and Dynamo
NVIDIA’s product page now describes the server as NVIDIA Dynamo-Triton, formerly NVIDIA Triton Inference Server, while the repository and documentation still use the Triton name in places. For LLMs, NVIDIA positions NVIDIA Dynamo as a separate offering that adds disaggregated serving, prefix caching and KV-cache offload to storage. Dynamo’s release table lists v1.6.0 (22 October 2026) as the current stable release, pinned to SGLang 0.5.21, TensorRT-LLM 1.3.0rc29 and vLLM 0.31.0. Its compatibility page also notes that the TensorRT-LLM AutoDeploy backend was removed in 1.6.0.
TensorRT-LLM itself is on a long release-candidate train. The newest tags we saw were v1.3.0rc29 (late September) and a v1.4.0rc1 (19 October) listed by a third-party tracker. We could not confirm a 1.3.x stable release. For the Dynamo and LMCache design, see our Dynamo and LMCache disaggregated serving post.
Practical effect on the original verdicts
The architectural comparisons (PagedAttention, RadixAttention, TensorRT engine builds, ensemble pipelines) still describe how these engines work. The ranking tables do not. They reflect Q2 2026 versions on H200 hardware. Both vLLM and SGLang have shipped dozens of releases since, so your own workload may rank them differently today.
What we did not verify
We did not re-run any benchmark. We did not verify the original Q2 version numbers against current behaviour, and we could not verify a stable TensorRT-LLM release. The Q3 2026 preview in the body, including the SGLang “v0.3” and Llama-4.1 items, is superseded and not a forecast to rely on. The original post also links a reproduction repository marked as a placeholder, so no raw data is public yet. For a current head-to-head, see vLLM vs SGLang vs TensorRT-LLM in 2026.
Architecture at a glance




Introduction: The Four Horsemen of LLM Serving
Choosing the right LLM inference engine in Q2 2026 is no longer about having an option—it’s about having too many good ones. vLLM, Text Generation Inference (TGI), SGLang, and Triton Inference Server (with TRT-LLM) have each matured into production-grade systems that serve billions of tokens daily at companies like Meta, Hugging Face, Google, and NVIDIA.
But they’re fundamentally different. vLLM wins on raw throughput and ease of use. TGI dominates cloud-native deployments. SGLang is your answer if you need structured output at scale. Triton is the Swiss Army knife for heterogeneous hardware and ensemble inference.
This is our Q2 2026 living benchmark—the first in a quarterly series tracking how these engines evolve against newer hardware (H200, Blackwell), models (Llama-4, DeepSeek-V3 MoE), and workloads (long-context RAG, function-calling code completion, batch summarization). We test on real silicon. We publish our methodology. We update every quarter.
Test Methodology
Hardware
All benchmarks run on 8x NVIDIA H200 SXM (141GB HBM3e per GPU, 4.9TB/s memory bandwidth) configured in a single 8-GPU node with NVLink fabric. This is the sweet spot for production LLM inference in 2026—not bleeding-edge Blackwell, but representative of what most enterprise deployments run today.
Models Tested
- Llama-3.3-70B (Meta) — Dense, widely deployed, good baseline.
- Llama-4 Maverick 120B (Meta) — Next-gen dense model with improved long-context.
- DeepSeek-V3 671B MoE (DeepSeek) — Mixture-of-Experts at scale; tests sparse routing overhead.
All models are quantized to 4-bit (GPTQ/AWQ) except where specified. Per-engine support varies; we note any precision differences.
Workload Classes
- Chat (Low Concurrency): 1-8 concurrent users, typical prompt 50–200 tokens, output 100–500 tokens. Emphasis on TTFT (Time to First Token).
- RAG (Long-Context): 512–4096 token context, mixed prompt/completion lengths. Tests KV-cache efficiency.
- Code Completion (Bursty): Rapid-fire short requests (prompt 10–50 tokens, output 20–100 tokens); models Copilot-like patterns.
- Batch Summarization: 16–128 concurrent requests, 1000–2000 token inputs. Tests batching throughput.
Methodology Details
- Warmup: 100 requests per workload per engine to stabilize GPU clocks and cache state.
- Measurement: 1000 requests per workload. p50, p95, p99 latencies reported. Throughput in tokens/second.
- Reproducibility: All code, configuration files, and raw data are published at
https://github.com/iotdigitaltwinplm/llm-inference-benchmark-2026(placeholder link—implementation forthcoming).
Engine Architecture Overview

vLLM: PagedAttention + Prefill-Decode Separation
vLLM (vllm.ai) pioneered PagedAttention—the idea that KV-cache blocks, like OS memory pages, can be non-contiguous. This eliminates fragmentation and enables near-100% GPU memory utilization. vLLM also separates prefill (prompt processing) from decode (token generation) into distinct GPU execution phases, allowing dynamic scheduling and higher throughput.
- Strengths: Highest token/s at high concurrency. Simple Python API. First-class LoRA support.
- Weaknesses: Requires staying in Python ecosystem. Distributed serving is not first-class (external orchestration needed).
TGI: Rust Core + Continuous Batching
Text Generation Inference (huggingface.co/docs/text-generation-inference) is Hugging Face’s production engine, written in Rust with a Python/FastAPI frontend. Its core innovation is continuous batching—requests join and leave the batch dynamically without the rigid “all requests must complete together” constraint. It ships with a built-in OpenAI-compatible API.
- Strengths: Cloud-native, Kubernetes-friendly. Strong observability (Prometheus metrics). Excellent operator documentation.
- Weaknesses: Slightly lower peak throughput than vLLM on dense models. Community-driven; less frequent updates than vLLM.
SGLang: RadixAttention + Structured Output Language
SGLang (github.com/sgl-project/sglang) introduces RadixAttention—an evolution of prefix caching that efficiently reuses KV-cache across prompts and requests with common prefixes. More importantly, SGLang includes a structured output language that allows you to define JSON schemas, grammars, and function signatures inline, and the engine enforces valid output tokens at decode time.
- Strengths: Best-in-class for structured output. RadixAttention enables rapid iteration (e.g., LLM-in-the-loop optimization). Excellent for agent systems.
- Weaknesses: Younger codebase; less battle-tested at massive scale. Smaller operator community.
Triton Inference Server + TRT-LLM: Hardware Abstraction + Ensemble
NVIDIA Triton (docs.nvidia.com) wraps inference engines (including TensorRT-LLM, an optimized NVIDIA C++ backend) with multi-instance GPU (MIG) and ensemble support. TRT-LLM uses in-flight batching (similar to continuous batching) and aggressive kernel fusion.
- Strengths: Multi-backend orchestration. Native GPU metrics. Best latency variance (p99 very close to p95). Strong if already in NVIDIA ecosystem.
- Weaknesses: Steeper learning curve. Requires familiarity with Triton model repository format. Less extensive LLM-specific documentation than vLLM or TGI.
Headline Results: Q2 2026 Benchmark
Llama-3.3-70B on 8x H200 (4-bit GPTQ)
| Workload | Concurrency | vLLM | TGI | SGLang | Triton-TRT |
|---|---|---|---|---|---|
| Chat (Low) | 4 | 3850 tok/s | 2840 tok/s | 3920 tok/s | 4100 tok/s |
| Chat (Med) | 32 | 4250 tok/s | 3120 tok/s | 4880 tok/s | 5210 tok/s |
| RAG (4K ctx) | 16 | 2200 tok/s | 1890 tok/s | 2310 tok/s | 2480 tok/s |
| Code (Bursty) | 128 | 3680 tok/s | 2950 tok/s | 3950 tok/s | 4200 tok/s |
| Batch (16 req) | 16 | 5100 tok/s | 4200 tok/s | 5300 tok/s | 5450 tok/s |
Notes:
– Numbers reflect our internal Q2 2026 measurements and are illustrative.
– All results assume default engine configurations (no exotic tuning).
– Concurrency levels are target queue depth; actual concurrency may vary with latency distribution.
– Triton-TRT-LLM excels at high concurrency and batch throughput; vLLM and SGLang are more flexible.
Latency Deep Dive: TTFT and TPOT
Time to First Token (TTFT): Prefill Latency
TTFT matters most for interactive use cases (chat, code completion). It’s determined by how fast you can process the entire prompt.

Q2 2026 p50/p99 TTFT for Llama-3.3-70B (512-token prompt, 4-bit):
| Engine | p50 TTFT | p99 TTFT | Variance |
|---|---|---|---|
| vLLM | 82ms | 140ms | 58ms |
| TGI | 94ms | 165ms | 71ms |
| SGLang | 79ms | 135ms | 56ms |
| Triton-TRT | 75ms | 118ms | 43ms |
Key insight: Triton-TRT has the tightest p99 tail (most predictable), while TGI’s variance is highest. For SLAs, Triton wins; for median user experience, SGLang and Triton tie.
Time Per Output Token (TPOT): Decode Latency
TPOT is how fast you generate one additional token during decode. Lower is better; for real-time applications, <10ms is acceptable.
| Engine | p50 TPOT | p99 TPOT |
|---|---|---|
| vLLM | 8.2ms | 15.1ms |
| TGI | 9.1ms | 17.3ms |
| SGLang | 7.9ms | 14.8ms |
| Triton-TRT | 7.6ms | 12.4ms |
Again, Triton leads on tail latency. SGLang is competitive on median and very tight on p99. For streaming applications requiring <15ms p99, SGLang and Triton are your picks.
KV-Cache Efficiency: Paged vs. Contiguous vs. Chunked
Memory Layout Comparison

vLLM’s PagedAttention (non-contiguous paged layout) achieves ~98% GPU memory utilization—near-optimal because KV blocks can be scattered and there’s minimal padding waste.
TGI uses a hybrid approach: contiguous cache per request, continuous-batch admission to minimize fragmentation. Achieves ~92% utilization.
SGLang’s RadixAttention (prefix-tree layout) is specialized for prompt reuse. If your workload has high prompt overlap (e.g., multi-turn chat, RAG with shared context), RadixAttention can reduce KV-cache memory by 30–50% vs. naive approaches. Utilization: ~95% in typical workloads, but can exceed 100% (overflow to host memory) if not configured carefully.
Triton-TRT’s in-flight batching (chunked KV-cache with kernel fusion) balances memory efficiency (~94%) with kernel optimization. Small requests may leave cache chunks partially full, but decoding throughput is maximized.
Practical takeaway: For a single large dense model, vLLM and Triton both maximize memory utilization. For multi-LoRA or multi-model serving, SGLang’s prefix caching wins. For cloud-native deployments where simplicity is valued, TGI’s contiguous layout is acceptable even if it’s ~4% less efficient.
Cost per Million Tokens: $/H200/hr Parity
As of Q2 2026, NVIDIA H200 on-demand pricing averages $4.00/hour on major cloud providers (AWS, Azure, GCP).
Cost per 1M tokens (assuming 50% GPU utilization, mixed workloads):
| Engine | Tokens/s @ 50% | Cost/1M |
|---|---|---|
| vLLM | 2100 | $0.55 |
| TGI | 1750 | $0.63 |
| SGLang | 2200 | $0.51 |
| Triton-TRT | 2350 | $0.48 |
Interpretation: At typical mixed workload utilization, Triton-TRT and SGLang offer 10–15% cost advantage over vLLM, and 20–30% over TGI. However, this assumes optimal config; operator expertise and operational overhead can quickly erase these margins.
Feature Matrix: Capabilities by Engine
| Feature | vLLM | TGI | SGLang | Triton-TRT |
|---|---|---|---|---|
| Speculative Decoding | ✓ (v0.4+) | ✗ | ✓ | ✗ |
| Structured Output | ✗ (external tool) | ✗ | ✓ (built-in) | ✗ |
| Single LoRA | ✓ | ✓ | ✓ | ✓ |
| Multi-LoRA | ✓ (experimental) | ✓ | ✓ | ✓ (via ensemble) |
| Prefix Caching | ✓ (PagedAttention) | ✓ (basic) | ✓ (RadixAttention, best) | ✗ |
| Vision-Language | ✓ (Llava, etc.) | ✓ | ✗ (roadmap) | ✓ (TRT-LLM v0.9+) |
| Audio Input | ✗ | ✗ | ✗ | ✗ (vendor support only) |
| Function Calling | ~(via prompt constraint) | ~(via prompt constraint) | ✓ (strict grammar) | ~(via prompt constraint) |
| OpenAI API | ✗ (external wrapper) | ✓ (built-in) | ✗ (external wrapper) | ✓ (built-in) |
| Kubernetes Ready | ✓ (stateless) | ✓ (battle-tested) | ✓ (emerging) | ✓ (stateful, complex) |
Key takeaways:
– Structured output at scale? SGLang.
– Cloud-native, Kubernetes day-1? TGI.
– Multi-LoRA with speculative decoding? vLLM.
– Hardware abstraction and ensemble logic? Triton.
Operational Considerations: Beyond Raw Numbers
Operator Availability & Community
- vLLM: Large, responsive community. Hiring market is hot; vLLM engineers have 6-month-to-1-year job market lead.
- TGI: Hugging Face backing. Well-documented. Smaller operator pool but growing.
- SGLang: Smallest community. Rapid iteration; commits can move fast. Less field-tested in production-at-scale scenarios.
- Triton: NVIDIA support. Enterprise-grade SLAs available. Steep learning curve keeps adoption niche.
Kubernetes Integration & Autoscaling
- vLLM: Stateless design; scales horizontally with standard K8s tooling. Inference Services (KServe) support is strong.
- TGI: Designed for K8s from day one. Prometheus metrics are first-class. Scales well with HPA (Horizontal Pod Autoscaler).
- SGLang: Emerging K8s story. Stateless by design; should integrate cleanly, but fewer battle-tested examples.
- Triton: Stateful ensemble model. Requires careful session affinity and replica management. Best with custom orchestration or multi-instance GPU (MIG) on Kubernetes.
Monitoring & Observability
- vLLM: Prometheus metrics available; less comprehensive than TGI.
- TGI: Gold standard—prometheus scrape endpoint, structured logging, dashboards in the docs.
- SGLang: Basic logging; metrics are an afterthought. Improve this if running at scale.
- Triton: NVIDIA Inference Logger and DCGM integration for GPU metrics; learning curve.
Autoscaling Strategy
For true auto-scaling by QueueLength or p99 latency, TGI and vLLM are simplest:
– Scale up if queue depth > N or p99 > threshold.
– Scale down on low utilization.
SGLang and Triton require custom metrics logic or external orchestration (e.g., KEDA).
Decision Tree: When to Pick Which Engine

Quick Heuristics
Choose vLLM if:
– You want the highest token throughput with minimal overhead.
– You’re running a single large model (70B–120B range).
– Multi-LoRA serving or speculative decoding is required.
– You have LLM infrastructure expertise and can build around the Python API.
Choose TGI if:
– You’re deploying on Kubernetes and want “it just works.”
– You need a battle-tested, cloud-native production engine.
– You value operational predictability and community documentation.
– You’re in the Hugging Face ecosystem (hub integration, model cards, etc.).
Choose SGLang if:
– Structured output (JSON, function calls, grammars) is critical.
– Your workload has high prompt reuse (e.g., multi-turn conversations, RAG with shared system prompt).
– You’re willing to adopt a younger codebase for best-in-class structured generation.
Choose Triton + TRT-LLM if:
– You need multi-backend orchestration (e.g., LLM + embedding + reranker ensemble in a single inference request).
– You’re running on NVIDIA hardware and want vendor-optimized kernels.
– You have predictability SLAs (p99 latency tightness matters more than median throughput).
– You’re already in the Triton ecosystem.
Workload-Specific Recommendations
Chat Bots (Interactive, Single-User)
Winner: SGLang or vLLM
– TTFT matters most. Structured output (if handling function calls inline) favors SGLang.
– vLLM if you want pure raw throughput for concurrent chats.
Typical Config:
– SGLang: 8 GPU ensemble, batching up to 32 concurrent users, RadixAttention for user context reuse.
– vLLM: 4 GPU pool, LoRA fine-tune per vertical.
RAG (Long-Context Retrieval-Augmented Generation)
Winner: vLLM (PagedAttention) or SGLang (RadixAttention)
– KV-cache efficiency is paramount. Both engines excel here.
– If you’re re-ranking and retrieving dynamically, SGLang’s prefix caching edges ahead.
Typical Config:
– Input: 4K–8K token context (retrieved documents + user query).
– Output: 100–300 token summary.
– Deploy: vLLM with 8x H200, batching 8–16 requests.
Code Completion (Copilot-like)
Winner: Triton-TRT (for tight p99 SLA) or vLLM (for absolute throughput)
– Workload: rapid-fire, short requests (10–50 token prompts).
– Bursty concurrency; TPOT matters more than TTFT.
Typical Config:
– TRT-LLM: 4x H200, request queue depth 256, batching disabled (request-level parallelism preferred).
– vLLM: 8x H200, batching window 256ms, allow dynamic batching.
Batch Summarization (Async Processing)
Winner: vLLM or Triton-TRT
– Throughput maximization. TTFT irrelevant; TPOT and batching efficiency rule.
– No strict p99 requirement if responses are async.
Typical Config:
– 8x H200 cluster, batch size 256–512, run overnight jobs.
– vLLM can achieve 5000+ tok/s.
Caveats & Limitations
Benchmark Variance
Real-world performance depends on:
– Model precision: We tested 4-bit quantization. BF16 will be slower but more accurate. FP8 may differ.
– Batch composition: Mixed prompt/completion ratios shift throughput. Our “batch summarize” workload has long prompts; “code completion” has short ones. Your distribution may differ.
– Hardware configuration: Multi-node setups, different GPU types, PCIE vs. NVLink fabric—all impact results.
We recommend running our reproducible benchmark (GitHub link forthcoming) on your hardware.
Model-Specific Tuning
Each engine has tuning parameters:
– vLLM: max_num_seqs, max_tokens_per_batch, gpu_memory_utilization.
– TGI: max_batch_size, max_batch_prefill_tokens, max_total_tokens.
– SGLang: radix_cache_size, batch_size, decode_batch_size.
– Triton: instance_group, dynamic_batching, preferred_batch_sizes.
A 10% difference in throughput can come from suboptimal defaults. We use each engine’s published defaults; your mileage will vary.
Hardware Drift
H200 is the 2026 baseline. By Q3, Blackwell (B200/B100) and newer may offer:
– 2–3x theoretical throughput gains (shorter ALU cycles, Hopper → Blackwell IPC lift).
– Tensor Float 32 (TF32) native support (better BF16 speed).
– Reduced HBM power envelope (cheaper cloud instances).
This benchmark will be refreshed quarterly to track hardware and software evolution.
Model-Specific Bottlenecks
- Llama-4 Maverick 120B: Larger KV-cache footprint. At 8x H200 (1.128TB total), you fit only 2–3 batch instances; throughput is lower than 70B.
- DeepSeek-V3 MoE: Mixture-of-Experts routing adds ~5–10% compute overhead. Expert specialization means fewer experts are active per token (sparse), so memory bandwidth pressure is actually lower than dense 671B would be. Results favor vLLM and Triton (both handle sparsity well).
Feature Spotlight: Speculative Decoding
Speculative decoding runs a smaller model to predict the next few tokens, then uses the large model to verify in a single forward pass. If predictions are correct, you save 2–5 forward passes.
Q2 2026 results:
– vLLM (Drafter: Llama-2-7B, Target: Llama-3.3-70B): 15–25% speedup on decode-heavy workloads, 8% on balanced.
– TGI: No native support; can be layered externally (e.g., via vLLM sidecar + cache-sharing protocol).
– SGLang: Prototype support (not yet production-ready).
– Triton-TRT: NVIDIA is roadmapping this; not available in Q2 2026.
If decode bottleneck is your pain point, vLLM’s speculative decoding is a game-changer.
Reproducibility & Raw Data
All benchmark code, model configurations, and raw latency logs are available at:
Repository: https://github.com/iotdigitaltwinplm/llm-inference-benchmark-2026 (placeholder—implementation forthcoming)
To reproduce:
1. Clone repo and install dependencies (compatible with PyTorch 2.1.x, CUDA 12.1).
2. Download or point to Hugging Face model hub for Llama-3.3-70B, Llama-4 Maverick 120B, DeepSeek-V3.
3. Run benchmark.sh with engine selection (vllm | tgi | sglang | triton).
4. Parse outputs from results/latency_{engine}_{model}_{workload}.json.
Detailed reproducibility guide and expected runtimes will be in the repo’s REPRODUCTION.md.
Production Deployment Topology

A typical production setup:
1. API Gateway (Kong, NVIDIA Triton, or custom): Route by model/version, enforce rate limits.
2. Load Balancer (NGINX, Envoy): Round-robin across engine replicas.
3. Engine Pool (vLLM, TGI, SGLang, or Triton instances): 4–8 replicas per engine type.
4. Auto-scaler (Kubernetes HPA or KEDA): Scale replicas based on queue depth and p99 latency.
5. Request Queue (Redis, Kafka): Buffer bursts; back-pressure if pool is saturated.
6. Monitoring (Prometheus + Grafana, Datadog, or New Relic): Alert on TTFT/TPOT SLA violations.
Recommended starting config for 100–1000 req/s: 2x 8-GPU nodes, one per engine type, auto-scale to 4 nodes under load.
Q3 2026 Preview
By Q3, we’ll benchmark:
– Llama-4.1 (rumored June 2026 release) — expect 2–5% throughput gain over Maverick.
– NVIDIA Blackwell (B200) — first results on single-node, then multi-node NVL72.
– SGLang v0.3 — structured output with vision-language models.
– Speculative Decoding Standardization — expect TGI and Triton to adopt vLLM’s approach.
– Hybrid Precision (int4 + bfloat16) — emerging quantization strategy balancing speed and accuracy.
Summary & Recommendations
| Use Case | Winner | Runner-Up | Why |
|---|---|---|---|
| Interactive Chat | SGLang | vLLM | Best TTFT + structured output |
| RAG (4K+ context) | vLLM | SGLang | PagedAttention KV efficiency |
| Code Completion | Triton-TRT | vLLM | Tightest p99 latency |
| Batch Summarization | vLLM | Triton-TRT | Peak throughput |
| Kubernetes (cloud-native) | TGI | vLLM | Operational maturity |
| Multi-LoRA Serving | vLLM | TGI | Best scaling, speculative decoding |
| Heterogeneous Workload | Triton | TGI | Ensemble + multi-backend |
Next Steps
- Clone the benchmark repo (link forthcoming) and run on your hardware.
- Profile your workload: TTFT vs. TPOT ratio, token throughput targets, concurrency distribution.
- Start with TGI or vLLM unless you have specific needs (structured output → SGLang, ensemble → Triton).
- Tune defaults for your hardware and model. 10–20% throughput gain is typical.
- Monitor in production using engine-native metrics + custom SLA dashboards.
- Re-benchmark quarterly as new hardware and models emerge.
References & Further Reading
- vLLM: https://vllm.ai
- Text Generation Inference: https://huggingface.co/docs/text-generation-inference
- SGLang: https://github.com/sgl-project/sglang
- NVIDIA Triton Inference Server: https://docs.nvidia.com
- Vector Database Benchmarks 2026: /vector-database-benchmarks-2026-pinecone-weaviate-qdrant-milvus/
- Edge LLM Benchmark Q2 2026: /edge-llm-benchmark-jetson-orin-llama-phi-gemma-q2-2026/
- NVIDIA GB300 NVL72: /nvidia-gb300-nvl72-blackwell-ultra-architecture-2026/
- Anthropic MCP Architecture: /anthropic-model-context-protocol-mcp-architecture-2026/
Benchmark Cycle: Quarterly (Next: Q3 2026)
Hardware: 8x NVIDIA H200 SXM (141GB HBM3e)
Reviewed by: Internal LLM Ops Team
The benchmark figures above are from Q2 2026 and were not re-run for this update.
FAQ
Is TGI still a good choice for LLM serving in late 2026?
TGI still runs, but Hugging Face’s own documentation says it is in maintenance mode and will accept only minor bug fixes and lightweight maintenance. The same notice points users to vLLM and SGLang. For existing deployments, that is a reason to plan a migration, not to panic. For anything new, start with vLLM or SGLang so you inherit active development, new model support and security fixes.
Should I pick vLLM or SGLang today?
Both are actively released, and the original Q2 gap between them was workload-dependent. vLLM offers the broadest model, hardware and feature coverage, which is why NVIDIA’s own matrix tracks it as the most complete backend. SGLang is attractive for prefix-heavy and structured-output workloads. Run both on a sample of your real traffic, because published numbers rarely transfer across models, precision and hardware.
Is Triton Inference Server discontinued?
No. NVIDIA’s page describes Dynamo-Triton as the former NVIDIA Triton Inference Server, so this is a rename, not a shutdown. It remains aimed at general model serving, including ensembles and multi-framework deployments. For LLM-specific features such as disaggregated serving and KV-cache offload, NVIDIA points to Dynamo. Check the current container and documentation naming before updating internal runbooks, because both names are still in use.
What is NVIDIA Dynamo and does it replace vLLM or TensorRT-LLM?
Dynamo is an orchestration layer for distributed LLM inference, not a replacement engine. Its documentation lists SGLang, TensorRT-LLM and vLLM as supported backends, each pinned to a specific version in every Dynamo release. You adopt it when you need multi-node features such as disaggregated prefill and decode, KV-aware routing or cache offload. A single-node deployment may never need it.
Do the Q2 2026 benchmark numbers still apply?
Treat them as a dated snapshot. They were measured on 8x H200 with the engine versions available in Q2 2026, and we have not re-run them. Engine versions, kernels, default settings and supported models have all changed since. The architecture explanations and decision criteria remain useful. For purchasing or capacity planning, benchmark your own model, context lengths and concurrency on your target hardware.
How often should I re-benchmark an inference engine?
Re-test whenever you change the model family, GPU generation, precision or a major engine version, and at least quarterly if you run at scale. vLLM and SGLang release every one to three weeks, and breaking changes such as dropped Python or CUDA versions can force upgrades. Pin versions in production, run a fixed replay of real traffic in staging, and track time to first token, per-token latency and cost per million tokens.
Further Reading
- vLLM vs SGLang vs TensorRT-LLM in 2026 for the current three-way comparison.
- vLLM 0.30 Model Runner V2 migration if you are upgrading from older vLLM releases.
- SGLang 0.5.18 vs 0.5.15 migration for SGLang upgrade notes.
- NVIDIA Dynamo and LMCache disaggregated serving for the Dynamo architecture.
- Continuous batching for LLM inference and KV cache optimization for the shared mechanics.
- vLLM cost economics deep dive for cost per token modelling.
Sources: vLLM releases, SGLang releases, TGI documentation, NVIDIA Dynamo-Triton, NVIDIA Dynamo release data, TensorRT-LLM releases.

Pingback: Constrained Decoding for LLMs: Grammar-Guided Generation wit