tiny-vllm logo

tiny-vllm

jmaczan/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

1.1k stars84 forksLast push 1d C++ Apache-2.0

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-vllm

How 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.

Python runtimePython

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 [tinyg
Source 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:

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:

  1. 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
  2. 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
  3. Train the model - The chosen model archit

For agents

This page has a .md twin and JSON over the API.

Was this helpful?

Anonymous feedback helps us improve pages and translations.