tiny-vllm
Build your own high performance LLM inference engine in C++ and CUDA - a smaller version of vLLM
GraphCanon updated today · GitHub synced today
Decision brief
For those needing a compact yet potent LLM inference engine built on C++ and CUDA, tiny-vllm presents an accessible framework inspired by its larger sibling, vLLM.
Good fit when
- When you require a lightweight solution for deploying large language model inference in environments with limited resources but still demand high performance.
- If the infrastructure supports C++ and CUDA and there is a need to develop custom solutions without the overhead of vLLM.
Avoid when
- Avoid using tiny-vllm if the application requires the full feature set offered by its larger counterpart, vLLM, as it has been trimmed for lightweight use.
- Do not choose this tool when working in environments that do not support CUDA or where a higher abstraction level is preferred over direct C++ and CUDA implementation.
Observed Jul 15, 2026 · Source: enrich:decision_facts
Verify the decision
Maintenance and security
Full trust report- Maintenance
- Very active (1d since push)
- As of today
- Provenance
- Not a fork · Personal account
- As of today
- Security (OSV)
- No lockfile
- As of 1mo
Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.
Install
git clone https://github.com/jmaczan/tiny-vllmHow it fits your stack(1)
Typed graph edges - alternatives, integrations, successors, and dependencies. Ranked by relationship type, not raw GitHub stars.
Relationship graph
Optional deeper exploration of typed edges and category neighbours.
Similar tools
Same-category neighbours not already linked as typed edges.
Evidence and technical details
Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.
Overview
tiny-vllm is a C++ and CUDA-based framework for creating lightweight yet powerful large language model (LLM) inference engines, inspired by but scaled down from vLLM.
Capability facts
- Languages
- c++
Source: github.language · Aug 25, 2026
Categories
Compatibility
Sourced claims from the README excerpt - not unsourced marketing copy.
Source: README excerpt (regex_v1, Aug 25, 2026)
. **Design the model** - engineers and researchers use high level language like Python with tensor library like [PyTorch](https://github.com/pytorch/pytorch) or [tinygSource link
Tags
README
tiny-vllm
You're going to build a high performance LLM inference engine with C++ and CUDA - tiny-vllm, a younger and smaller sibling of vLLM
We will learn a lot along the way, make mistakes and derive the ideas and maths from scratch
This repository consists of two things: 1. a full source code of the inference server and 2. a course where I lead you through the process of implementing the engine. Feel invited to use it as a learning tool on your learning path or if you are a lecturer, feel welcome to use it as a teaching resource at your university
The inference engine consists of:
- load a real LLM model from Safetensors (Llama 3.2 1B Instruct)
- full LLM forward pass (prefill + decode)
- all computation with CUDA kernels
- KV cache
- static batching
- continuous batching
- online softmax, FlashAttention-like
- PagedAttention
Make yourself a hot beverage and let's begin
- tiny-vllm
- Intro: LLM, vLLM, models, inference servers
- Technical prerequisities
- Safetensors and your model
- How floating-point numbers work and why we use bfloat16
- GPU and CPU memory
- Single token inference
- Tokenization
- Embeddings
- CUDA kernel engineering - embeddings
- RMSNorm and parallel reduction in CUDA
- RoPE
- Residual connections
- cublasGemmEx
- The column-major to row-major transposition trick
- Prefill vs decode
- Why KV cache exists
- Attention
- GQA
- SiLU
- Softmax
- Causal mask
- Argmax
- Feed forward network
- Buffer reuse
- Static batching
- Continuous batching
- Online softmax
- Paged Attention
- Paged KV cache
- Paged Attention CUDA kernel
Intro: LLM, vLLM, models, inference servers
It's easy to get lost with so much going on recent years. Let's unpack it
LLM is a model. Physically, LLM is a file which contains a lot of float numbers. Conceptually, these numbers represent weights of operations. Weights are learned/discovered/found during training phase. Some of the operations use these weights. Every operation is a function, which takes some data as input, do something with it and produces data as output. Operations and their order are defined by LLM's architecture. Every model has its own architecture, which is designed by engineers and researchers.
The process of going from 0 to LLM writing a text is like this:
- Design the model - engineers and researchers use high level language like Python with tensor library like PyTorch or tinygrad to design model's architecture. They train small versions of the model, make experiments with different operations, data and hyperparameters (parameters for operations). It's the phase of figuring out the specification
- Implement the model - Once they decide on final model architecture and prepare the data for training, they write the code that defines the final model. It can be also in PyTorch or similar
- Train the model - The chosen model archit
For agents
This page has a .md twin and JSON over the API.