
Three well-lit deployment paths cover the common production patterns — each maps the same router to a different fleet shape.
- Path 1 — Optimized baseline
A single, homogeneous pool of servers with cache-aware routing enabled. The router prefers servers that already hold relevant KV cache for an incoming request; this reduces repeated compute and improves both throughput and tail latency. On identical hardware, enabling cache-aware routing produced the ~3× improvement referenced earlier.

- Path 2 — Split the work (prefill + decode)
Divide your fleet into a prefill pool that reads and processes long prompts (building the KV cache) and a decode pool that performs autoregressive decoding to produce answers. The KV cache flows from prefill servers to decoders so decoders avoid redoing expensive prefix computation. Size each pool to match your traffic shape — this pattern shines when prompts are long or requests are latency-critical.

- Path 3 — Model sharding for very large models
When a model is too big for a single device, one logical serving endpoint is sliced across many GPUs (model parallelism). A single replica spans a group of devices that cooperate to act as one server, enabling inference for the largest models.

- If you see many long, repeated prefixes or heavy prompt processing, split the fleet into prefill and decode pools.
- If the model requires more memory or compute than a single GPU can provide, move to sharded replicas.
- Adjust router cache weighting, batch sizes, and pool sizes to trade off latency vs throughput and cost.
Start with the optimized baseline (cache-aware routing). It delivers a strong, low-risk improvement and gives you a stable platform to evaluate whether you need to split pools or adopt model sharding.

- llm-d routing and cache-aware strategies — see your llm-d router documentation for API details and routing parameters.
- Best practices for model sharding and device placement — follow your framework’s model parallelism guides for optimal memory and performance planning.