SGLang vs vLLM vs plow

Compare model routing, live memory controls, prefix caching and compiled deployment across three inference runtimes.

Updated

SGLang and vLLM provide broad model support and distributed serving options. plow focuses on compiled model bundles, with multiple models and explicit residency controls inside one Rust server. Compare the deployment model as well as token throughput.

Model routing and lifecycle

Documented capabilities, checked November 4, 2026
CapabilityvLLMSGLangplow
Multiple base modelsStandard serving uses separate servers and a routing layer.Model Gateway routes requests to workers registered by model ID.One process registers separate bundles and routes requests by model name.
Release model memorySleep/wake APIs offload or discard engine state, depending on sleep level.Release/resume memory APIs temporarily release GPU memory.Unload a named model after a bounded drain; explicitly load it again when needed.
Dynamic adaptersLoads and unloads LoRA adapters on a base model.Loads and unloads LoRA adapters on a base model.The lifecycle described here manages complete model bundles.
Reuse shared promptsAutomatic prefix caching over hashed KV blocks.Radix caching, with session-aware cache options.Prefix reuse is enabled by default; cache behavior depends on the compiled model and backend.
Prepare executionCompilation caches and graph capture.Configurable graph capture and compilation options.Hardware-specific execution plans compiled into deployable bundles.

Sources: vLLM’s multi-model FAQ, sleep mode, LoRA and prefix caching; SGLang’s Model Gateway, memory-control implementation, LoRA, session-aware cache and server options.

plow’s model manager, control API and runtime defaults support its column. Platform extensions can differ: vLLM’s Gaudi plugin supports sequential model swaps within one server process.

Where plow is useful

Auto objective follows demand

plowrt serve --objective auto uses the default adaptive policy: latency-oriented rules at light load, throughput-oriented rules as decode width, queue depth or KV pressure grows, and a two-second calm window before returning. It derives compatible decode and prefill behavior from one objective. Fixed latency and throughput modes remain available, and metrics expose policy changes. See the policy implementation and serving-objective reference.

Several models on one host

Register multiple compiled bundles under one endpoint, each with its own checkpoint and serving settings. Keep the memory-fitting set resident, or use managed GPU residency to load a model on demand and evict another when needed. Explicit unload keeps the server running and the model registered by default. CPU/Metal controls support explicit load/unload without automatic eviction. See the load/unload walkthrough.

Co-resident models still compete for compute. plow’s scheduler controls how they take turns; it does not promise the throughput or latency of isolated GPUs.

Language and speech in one server

Supported language, transcription and speech-generation models can share the same server, model listing and metrics. Their checkpoints, tokenizers and defaults remain attached to each bundle. Check available builds before choosing the combination. See the deployment contract and speech serving paths.

Prepared, inspectable deployment artifacts

plow separates compilation, asset download and serving. Bundles carry execution plans and serving defaults; the loader checks runtime requirements and packet/object pairing. A provisioned serve --model starts from local assets. This makes the deployed model configuration inspectable before traffic arrives. See model distribution.

What to test first

Choose tests that match the deployment
NeedCheck
New model or unusual architectureConfirm model, precision and operator support before comparing performance. A plow recipe and a published build are different levels of availability.
Several models sharing memoryCompare resident memory, load/unload behavior, first-request latency after reload and interference between models.
Repeated prompts or agent sessionsTest all three with the same prompt reuse and cache settings. Include cache hits, misses and memory pressure.
Application compatibilityVerify required endpoints, request fields, tool calls and streaming events. OpenAI-compatible does not mean identical feature coverage.

What we have measured

Our selected plow vs vLLM results include workload settings, quality checks, wins and losses. We have no SGLang measurements in that campaign and no comparative model-switching results. The architecture comparison above is not a performance ranking.

Check the Models page for published builds and the architecture article for the compiler and runtime details.