llm.c vs nanochat
Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.
Open source · MIT
A small C/CUDA codebase for training GPT-2-style language models without PyTorch.
Open source · MIT
A minimal, hackable harness for training and chatting with a small GPT-style language model.
The short answer
Choose llm.c if you need…
- Developers who want to see how a GPT-2 style model is trained at the lowest level
- Students learning how neural network layers are implemented in C or CUDA
- People with an NVIDIA GPU who want to reproduce GPT-2 (124M) training
- Readers who want a small reference implementation to compare against PyTorch
Choose nanochat if you need…
- Students who want to see how a full LLM training pipeline fits together
- Developers who want a readable, modifiable LLM training codebase
- Researchers running small experiments on compute-optimal model sizes
- People with access to a multi-GPU cloud node who want a reproducible GPT-2-scale training run
Side-by-side
| llm.c | nanochat | |
|---|---|---|
| Type | Learning resource | AI model / agent |
| Price | Free and open source | Free and open source |
| Licence | MIT | MIT |
| GitHub stars | 31.4k | 59.6k |
| Setup difficulty | Advanced | Advanced |
| How you get it | Clone and build from source | Clone and build from source |
| Main language | Cuda | Python |
| Last code update | 17 months ago | 2 months ago |
What each one is
llm.c
llm.c is a project by Andrej Karpathy that trains GPT-2 style language models using plain C and CUDA instead of a large framework like PyTorch. Its stated focus is pretraining, including reproducing the GPT-2 and GPT-3 model series. The code is meant to be readable, and the README says a CPU reference version fits in about 1,000 lines.
nanochat
nanochat is a codebase for training a large language model end to end, covering tokenization, pretraining, finetuning, evaluation, and inference. It is designed to run on a single GPU node and is meant to be small and easy to modify. The README says you can train a GPT-2-class model for about $48 of cloud GPU time and then talk to it through a command-line chat.
Best for
llm.c
- Developers who want to see how a GPT-2 style model is trained at the lowest level
- Students learning how neural network layers are implemented in C or CUDA
- People with an NVIDIA GPU who want to reproduce GPT-2 (124M) training
- Readers who want a small reference implementation to compare against PyTorch
nanochat
- Students who want to see how a full LLM training pipeline fits together
- Developers who want a readable, modifiable LLM training codebase
- Researchers running small experiments on compute-optimal model sizes
- People with access to a multi-GPU cloud node who want a reproducible GPT-2-scale training run
Strengths
llm.c
- Code is small and direct, making it useful for studying training internals
- The README reports llm.c running a bit faster than PyTorch Nightly (about 7%) in its own benchmark
- Includes a PyTorch reference implementation and unit tests to check correctness
nanochat
- Covers the full LLM pipeline in one codebase, according to the README
- A single --depth setting automatically sets the other hyperparameters
- Includes a public leaderboard that tracks the wall-clock time to reach GPT-2-level capability
Not ideal for
llm.c
- People who want a ready-to-use chatbot or inference app, since the README focuses on training
- Users without a GPU who want practical training speed, because the README says CPU training will not go far
- Teams that need Python-based ecosystem tooling, since the README says the repo only maintains C and CUDA code
nanochat
- People who want a polished chatbot to use day to day: the README says the speedrun model is like talking to a kindergartener
- People without GPU access who expect strong results: the CPU/MPS path shrinks the model and the README says results will be weak
- Anyone needing production-grade support: questions are routed to DeepWiki, Discussions, and Discord rather than a formal support channel
Trade-offs
llm.c
- Requires NVIDIA CUDA hardware for practical training; CPU use is described as a demo
- Setup can be involved: multi-GPU and cuDNN paths need MPI, NCCL, and cuDNN installed
- The README is truncated and the repo has no releases or topics, so some details are unclear
nanochat
- Needs substantial GPU hardware for the main workflow: the README describes an 8x H100 node, and GPUs with under 80GB may need tuning
- The README says the CPU and Apple Silicon path produces weak results and the author has not tested all non-CUDA backends
- Cost figures are estimates tied to provider pricing at the time of writing and depend on your cloud setup
Getting started
llm.c
Clone the repository
git clone https://github.com/karpathy/llm.cDownload the starter pack (fp32 path)
chmod u+x ./dev/download_starter_pack.sh && ./dev/download_starter_pack.shnanochat
Install dependencies with GPU support
uv sync --extra gpuInstall dependencies for CPU or MPS
uv sync --extra cpuFrequently asked questions
What is the difference between llm.c and nanochat?
llm.c: A small C/CUDA codebase for training GPT-2-style language models without PyTorch. nanochat: A minimal, hackable harness for training and chatting with a small GPT-style language model. llm.c suits developers who want to see how a gpt-2 style model is trained at the lowest level, while nanochat suits students who want to see how a full llm training pipeline fits together.
Are llm.c and nanochat free?
llm.c: Free and open source. nanochat: Free and open source.
Is llm.c or nanochat more popular?
nanochat has more GitHub stars (59.6k) than llm.c (31.4k). Popularity isn't the same as fit — check which one matches your use case above.
What are other alternatives to llm.c and nanochat?
Other options people compare them with include llama.cpp, minGPT.
Keep comparing
Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.