vllm Documentation

A high-throughput and memory-efficient inference and serving engine for LLMs

88,911 stars Python Python 1 file ยท ~2,616 tokens #amd#blackwell#cuda#deepseek#deepseek-v3#gpt#gpt-oss#inference
RAW Doc

1. Project Overview & Quickstart (vllm-project/vllm)

File: README.md

Easy, fast, and cheap LLM serving for everyone

๐Ÿ”ฅ We have built a vLLM website to help you get started with vLLM. Please visit vllm.ai to learn more.
For events, please visit vllm.ai/events to join us.


About

vLLM is a fast and easy-to-use library for LLM inference and serving.

Originally developed in the Sky Computing Lab at UC Berkeley, vLLM has grown into one of the most active open-source AI projects built and maintained by a diverse community of many dozens of academic institutions and companies from over 2000 contributors.

vLLM is fast with:

  • State-of-the-art serving throughput
  • Efficient management of attention key and value memory with PagedAttention
  • Continuous batching of incoming requests, chunked prefill, prefix caching
  • Fast and flexible model execution with piecewise and full CUDA/HIP graphs
  • Quantization: FP8, MXFP8/MXFP4, NVFP4, INT8, INT4, GPTQ/AWQ, GGUF, compressed-tensors, ModelOpt, TorchAO, and more
  • Optimized attention kernels including FlashAttention, FlashInfer, TRTLLM-GEN, FlashMLA, and Triton
  • Optimized GEMM/MoE kernels for various precisions using CUTLASS, TRTLLM-GEN, CuTeDSL
  • Speculative decoding including n-gram, suffix, EAGLE, DFlash
  • Automatic kernel generation and graph-level transformations using torch.compile
  • Disaggregated prefill, decode, and encode

vLLM is flexible and easy to use with:

  • Seamless integration with popular Hugging Face models
  • High-throughput serving with various decoding algorithms, including parallel sampling, beam search, and more
  • Tensor, pipeline, data, expert, and context parallelism for distributed inference
  • Streaming outputs
  • Generation of structured outputs using xgrammar or guidance
  • Tool calling and reasoning parsers
  • OpenAI-compatible API server, plus Anthropic Messages API and gRPC support
  • Efficient multi-LoRA support for dense and MoE layers
  • Support for NVIDIA GPUs, AMD GPUs, Intel GPUs, and x86/ARM/PowerPC CPUs. Additionally, diverse hardware plugins such as Google TPUs, Intel Gaudi, IBM Spyre, Huawei Ascend, Rebellions NPU, Apple Silicon, MetaX GPU, and more.

vLLM seamlessly supports 200+ model architectures on Hugging Face, including:

  • Decoder-only LLMs (e.g., Llama, Qwen, Gemma)
  • Mixture-of-Expert LLMs (e.g., Mixtral, DeepSeek-V3, Qwen-MoE, GPT-OSS)
  • Hybrid attention and state-space models (e.g., Mamba, Qwen3.5)
  • Multi-modal models (e.g., LLaVA, Qwen-VL, Pixtral)
  • Embedding and retrieval models (e.g., E5-Mistral, GTE, ColBERT)
  • Reward and classification models (e.g., Qwen-Math)

Find the full list of supported models here.

Getting Started

Install vLLM with uv (recommended) or pip:

bash
uv pip install vllm

Or build from source for development.

Visit our documentation to learn more.

Contributing

We welcome and value any contributions and collaborations.
Please check out Contributing to vLLM for how to get involved.

Citation

If you use vLLM for your research, please cite our paper:

bibtex
@inproceedings{kwon2023efficient,
  title={Efficient Memory Management for Large Language Model Serving with PagedAttention},
  author={Woosuk Kwon and Zhuohan Li and Siyuan Zhuang and Ying Sheng and Lianmin Zheng and Cody Hao Yu and Joseph E. Gonzalez and Hao Zhang and Ion Stoica},
  booktitle={Proceedings of the ACM SIGOPS 29th Symposium on Operating Systems Principles},
  year={2023}
}

Contact Us

  • For technical questions and feature requests, please use GitHub Issues
  • For discussing with fellow users, please use the vLLM Forum
  • For coordinating contributions and development, please use Slack
  • For security disclosures, please use GitHub's Security Advisories feature
  • For collaborations and partnerships, please contact us at [email protected]

Media Kit


File: benchmarks/kernels/deepgemm/README.md

DeepSeek DeepGEMM Kernels Benchmark

This directory includes benchmarks between DeepSeek's DeepGEMM block fp8 kernels against vLLM's existing triton and CUTLASS-based kernels.

Currently, this just includes dense GEMMs and only works on Hopper GPUs.

Setup

You need to install vLLM in your usual fashion, then install DeepGEMM from source in its own directory:

bash
git clone --recursive https://github.com/deepseek-ai/DeepGEMM
cd DeepGEMM
python setup.py install
uv pip install -e .

Usage

text
/* Detailed source-code truncated for AI context efficiency. */

File: benchmarks/README.md

Benchmarks

This directory used to contain vLLM's benchmark scripts and utilities for performance testing and evaluation.

Contents

  • Serving benchmarks: Scripts for testing online inference performance (latency, throughput)
  • Throughput benchmarks: Scripts for testing offline batch inference performance
  • Specialized benchmarks: Tools for testing specific features like structured output, prefix caching, long document QA, request prioritization, and multi-modal inference
  • Dataset utilities: Framework for loading and sampling from various benchmark datasets (ShareGPT, HuggingFace datasets, synthetic data, etc.)

Usage

For detailed usage instructions, examples, and dataset information, see the Benchmark CLI documentation.

For full CLI reference see:

2. Official Technical Reference & Guides (vllm-project/vllm-docs)

vllm-docs-site

Independent rendering layer for docs.vllm.ai. Consumes markdown from
vllm-project/vllm (vendored as a git submodule at external/vllm) and
renders it through Next.js on Vercel.

Design principle: source markdown stays in the main repo and is never
modified. Site-side content/content-map.yaml provides the overlay; the
renderer infers templates from path + title.

Layout

text
/* Detailed source-code truncated for AI context efficiency. */

Local development

bash
# 1. Install
pnpm install

# 2. Pull the vllm submodule (or set VLLM_REPO_PATH to a local clone)
git submodule update --init --recursive
# offline alternative:
#   export VLLM_REPO_PATH=/path/to/local/vllm

# 3. Build the content bundle
pnpm bundle:latest

# 4. Dev server
pnpm dev        # http://localhost:3030

Iteration loop:

  • After a content/content-map.yaml edit or a apps/docs/ edit, Next.js HMR
    picks it up โ€” no rebuild needed.
  • After a source-markdown change (i.e. external/vllm/docs/**), rerun
    pnpm bundle:latest.
bash
pnpm typecheck   # tsc --noEmit across the workspace
pnpm lint        # next lint
pnpm build       # bundle:latest + next build (production)

Versions

The renderer is single-version today (the loader reads bundle/latest/).
The build-bundle.sh script and pnpm bundle:{stable,nightly} scripts
still exist and accept VLLM_REF=v0.x.y overrides โ€” the multi-version
path is preserved for when stable / nightly channels come back.

bash
VLLM_REF=v0.x.y    pnpm bundle:stable
VLLM_REF=main      pnpm bundle:nightly

Legacy ReadTheDocs URLs (/en/stable/..., /latest/..., etc.) are
redirected back to root by next.config.mjs and vercel.json.

What is intentionally NOT here

  • Markdown frontmatter requirements. Source .md files are consumed
    as-is. Per-page customization lives in content-map.yaml, not on the
    page.
  • A copy of vllm content. We always read from the submodule.
  • Bidirectional sync. The bundle is a build-time artifact only.

Site-authored heroes

Most architecture / flow / topology pages carry an SVG hero infographic.
The 33 site-authored SVGs live under apps/docs/public/_vllm-assets/_site/
and are tracked in git. The build script clears the rest of
_vllm-assets/ on each run (it's a mirror of upstream
external/vllm/docs/assets/) but preserves _site/.

To wire a new hero:

  1. Drop the SVG at apps/docs/public/_vllm-assets/_site/<area>/<name>.svg
  2. Reference it from content-map.yaml pages..hero:
    yaml
    hero:
      type: svg
      src: ../assets/_site/<area>/<name>.svg
      alt: ...
      caption: ...
      aspect: 960/400
  3. For pages inside a sub-directory (features/speculative_decoding/README.md),
    the src needs an extra ../ step: ../../assets/_site/...

The Hero component resolves doc-relative ../assets/ paths to the
/_vllm-assets/ mount automatically.

Status

What's wired:

  • single-version bundle pipeline (bundle/latest/bundle.json)
  • 6 templates, 6 sections, content-map overlay
  • markdown โ†’ HTML pipeline with callouts, math, code-example collapsibles,
    autoref, asset-paths, gh-* url schemes
  • Python extractor scaffold (argparse / api / metrics / examples dumps)
  • header search, theme toggle (light / dark / system), favicon
  • 33 site-authored hero SVGs across high-traffic pages
  • Vercel deploy via scripts/vercel-install.sh + pnpm build

What's deferred:

  • Bringing stable and nightly back as live channels (the bundle
    pipeline already supports VLLM_REF and the CI workflow is multi-leg).
  • Search ranking tuning beyond the MiniSearch defaults.
  • The Choose / decision-flow surface (intentionally absent โ€” see
    CLAUDE.md).