



VRAM is the primary bottleneck for multi-user serving: it must hold the full model plus each user’s KV cache. The KV cache grows with sequence length, so both concurrent sessions (concurrency) and generated sequence length (latency per user) consume memory.
- Concurrency is capped by leftover VRAM after loading the model. Once the scratchpad budget is full, new requests must wait, be rejected, or cause eviction of existing scratchpads.
- Sequence length matters: longer conversations (more tokens) increase per-user cache and reduce how many users fit concurrently.
- Model size matters: some models are too big to fit on a single GPU at all. For those you need multi-GPU strategies that trade latency and complexity for capacity.
Techniques to serve larger models or more users
- Model sharding / model parallelism — split the model across multiple GPUs so the whole model can be served, at the cost of cross-GPU communication and increased latency. See NVIDIA’s model parallel resources for details.
- Memory offloading — move parts of the model or KV cache to host RAM or NVMe when not actively used; reduces VRAM pressure but adds latency.
- Quantization — reduce model parameter precision (e.g., 8-bit, 4-bit) to shrink memory footprint, often with modest accuracy impact.
- Dynamic batching & adaptive batching windows — tune batch assembly to hit throughput targets while respecting latency constraints.
- Eviction and persistence policies — evict cold sessions’ KV caches from GPU (or persist to slower storage) to make room for hot sessions.
- Set concurrency limits per GPU based on measured leftover VRAM after model load.
- Enforce sequence-length caps or token-rate limits per session to bound KV growth.
- Use dynamic batching with a latency-aware scheduler (maximize throughput without missing SLAs).
- Evaluate quantization and mixed precision to reduce footprint before adding sharding complexity.
- Monitor VRAM usage and queue lengths to detect when evictions or autoscaling are needed.
- NVIDIA — model parallelism and multi-GPU training/serving resources: https://developer.nvidia.com/
- Hugging Face — inference scaling and optimization guides: https://huggingface.co/docs/transformers/main/en/optimization
- Papers & tooling for memory offload and quantization: look up DeepSpeed, ZeRO, and quantization libraries for specific implementations.