An open API service indexing awesome lists of open source software.

https://github.com/webdevtodayjason/vrambudget

vrambudget.com — what LLM fits my hardware? VRAM math + 40 GPUs + 20 models + AVL L3
https://github.com/webdevtodayjason/vrambudget

Last synced: 17 days ago
JSON representation

vrambudget.com — what LLM fits my hardware? VRAM math + 40 GPUs + 20 models + AVL L3

Awesome Lists containing this project

README

          


vrambudget: What LLM fits my hardware? VRAM ~= params × (bits ÷ 8)


![License](https://img.shields.io/github/license/webdevtodayjason/vrambudget?color=FFA947&style=flat-square)
![Stars](https://img.shields.io/github/stars/webdevtodayjason/vrambudget?color=FFA947&style=flat-square)
![Last commit](https://img.shields.io/github/last-commit/webdevtodayjason/vrambudget?color=FFA947&style=flat-square)
![Discussions](https://img.shields.io/github/discussions/webdevtodayjason/vrambudget?color=FFA947&style=flat-square)
![Issues](https://img.shields.io/github/issues/webdevtodayjason/vrambudget?color=FFA947&style=flat-square)
![AVL L3](https://img.shields.io/badge/AVL-L3%20conformant-FFA947?style=flat-square)

**What LLM fits my hardware?**

The math behind local LLM memory budgets. Plug in a GPU and a context length; see what's actually left for weights after the KV cache, runtime overhead, and a safety margin.

[Live site](https://vrambudget.com) · [Run the calculator](https://vrambudget.com/calc) · [Read the math](https://vrambudget.com/the-math) · [Join the discussion](https://github.com/webdevtodayjason/vrambudget/discussions)




40


GPU presets


20


curated models


9


quant formats


64


agent-readable routes


MIT


open source


## The thesis

Every "can I run this LLM" tool lists models and calls it done. They show a green checkmark next to a 70B on a 24GB card and hope you don't ask why. vrambudget skips the magic. There is one formula and three taxes:

```
VRAM ~= params × (bits ÷ 8)
```

That's the floor. Everything else is overhead.

```
weights_budget = total_vram × (1 − safety)
− kv_cache × concurrency
− framework_overhead
```

Three subtractions and one multiplication. Anyone telling you it needs to be more complicated is selling you something.

## How to use the calculator

The calculator is on the home page. Five sliders, four tiles, one bar, three tabs.

### 1. Pick a GPU

Across the top of the calculator: eight family tabs (RTX 50, RTX 40, RTX 30, Apple Silicon, Workstation, Datacenter, AMD, Intel). Each tab reveals every card in that family. Click a card to lock the calculator to its stock VRAM.

For a long-form view of every GPU at once, visit [/gpu](https://vrambudget.com/gpu).

### 2. Tune the four sliders

| Slider | What it does |
|---|---|
| **VRAM** | Total memory on the card. Auto-set from your GPU choice; override freely. |
| **System RAM** | Reserved for future model-split workflows. Not currently in the math. |
| **Context** | Token window. 8K is conservative; 32K and 128K make KV cache the dominant tax. |
| **Concurrency** | How many requests serve in parallel. Each one gets its own KV cache. |
| **Safety headroom** | Percentage of VRAM you refuse to spend. 15 percent is a sane default. |

### 3. Read the four tiles

- **Total VRAM** — device capacity
- **KV cache** — what the context-tax costs you
- **Runtime overhead** — CUDA / kernels / allocator slack
- **Weights budget** — what's actually left for the model

The orange tile is the answer. The budget bar below shows the four pieces stacked so you can see where the VRAM went.

### 4. Find a model

Three tabs below the bar:

- **Curated picks** — the 30 catalog models, grouped by fit (fits / tight / over). Each row picks the highest-bit quantization that fits your budget. Click any model name to open its Hugging Face repo.
- **Search Hugging Face** — live search across HF's GGUF-tagged models. Type a name; results render with the same fit classification keyed to your current budget.
- **By size** — drag a params slider; see all nine quants in a 3×3 matrix with the size and fit class for each.

### 5. Drill into a card or a model

Every GPU card in the grid has a `↗` link to its detail page. Each detail page pre-binds the calculator to that card, plus a fit table of the top 12 models, plus four "compare to" cards for stepping up or down by VRAM.

Same for models: every model name links to `/model/` with the GPU-recommendation matrix across five quants.

## What's in the catalogs

### GPUs (40)

`RTX 50`: 5070 · 5070 Ti · 5080 · 5090
`RTX 40`: 4060 · 4060 Ti 16GB · 4070 · 4070 Super · 4070 Ti Super · 4080 · 4080 Super · 4090
`RTX 30`: 3060 · 3070 · 3080 · 3080 Ti · 3090 · 3090 Ti
`Apple Silicon`: M2 Max 64 · M2 Ultra 192 · M3 Max 64 · M3 Max 96 · M3 Ultra 512 · M4 Pro 64 · M4 Max 128 · M5 Pro 64 · M5 Max 128
`Workstation`: A6000 · RTX 6000 Ada · RTX Pro 6000 · L40S
`Datacenter`: H100 80GB · H200 · B200 · DGX Spark · 2× H100 NVL
`AMD`: RX 7900 XTX · W7900 · MI300X
`Intel`: Arc B580 · Arc Pro B60 · Gaudi 3

### Models (30 curated, refreshed 2026-05)

`Meta`: Llama 3.2 1B · Llama 3.2 3B · Llama 3.1 8B · Llama 3.3 70B · Llama 3.1 405B
`Alibaba`: Qwen 2.5 7B · Qwen 2.5 32B · Qwen 2.5 Coder 32B · Qwen 2.5 72B · Qwen3 30B A3B · Qwen 3.5 9B · Qwen 3.6 27B · Qwen 3.6 35B A3B
`OpenAI`: gpt-oss 20B · gpt-oss 120B
`Mistral`: Mistral 7B v0.3 · Mistral Small 3 · Mixtral 8x7B · Mixtral 8x22B
`Microsoft`: Phi-4 Mini · Phi-4
`Google`: Gemma 2 9B · Gemma 4 E4B · Gemma 4 26B A4B
`DeepSeek`: DeepSeek V3 · DeepSeek R1
`Cohere`: Command R+
`IBM`: Granite 8B Code
`BigCode`: StarCoder2 15B
`01.AI`: Yi 34B

### Quantization formats (9)

`FP16/BF16` · `FP8/INT8` · `Q8_0` · `Q6_K` · `Q5_K_M` · `Q4_K_M` · `Q3_K_M` · `AWQ` · `GPTQ`

### LLM hosting runtimes (5)

`Cross-platform`: Ollama · LM Studio
`Apple Silicon`: MLX · oMLX
`Server`: vLLM

## Keeping the catalog fresh

LLMs ship faster than any curated list can keep up. vrambudget runs three feedback loops at once:

1. **Editorial curation** of `src/lib/models.ts` (~quarterly). The pinned list is canonical orgs only: `meta-llama`, `Qwen`, `openai`, `mistralai`, `microsoft`, `google`, `deepseek-ai`, `ibm-granite`, `bigcode`, `01-ai`, `CohereForAI`. Each entry carries a `releaseQuarter` so it's obvious what's stale. Forks, distills, and uncensored remixes belong on Hugging Face, not here.

2. **Live "Search Hugging Face" tab** in the calculator. Calls `https://huggingface.co/api/models?search=&filter=gguf&sort=downloads` directly from the browser. Always current; classifies each result against your VRAM budget on the fly.

3. **Build-time HF enrichment** (Phase 2, not shipped yet). A `scripts/refresh-hf-stats.ts` will fetch `downloads`, `likes`, and `last_modified` for every curated `hfRepo` at build, write the result into `data/hf-stats.json`, and surface it on each model detail page. Entries below a download threshold will get a build warning so they get reviewed in the next editorial pass.

**How to propose a new model:**

1. Confirm it's canonical (an official org repo, not a community quant)
2. Open a PR to `src/lib/models.ts` with `slug`, `name`, `hfRepo`, `params`, `family`, `type`, `contextK`, `fp16GB`, `summary`, `releaseQuarter`
3. If MoE, set `activeParams` to active-per-forward-pass count
4. CI runs `pnpm build` to validate the static export still emits cleanly

## Agent View Layer (AVL)

Every page on vrambudget ships a parallel agent-readable view at `.agent` (e.g. [`/gpu/rtx-4090.agent`](https://vrambudget.com/gpu/rtx-4090.agent)). The view is TOON-encoded and includes `@meta`, `@intent`, `@state`, `@actions`, `@context`, and `@nav` sections per the [AVL L3 conformance spec](https://agentviewlayer.org). The full manifest lives at [/agent.txt](https://vrambudget.com/agent.txt).

Built with [@frontier-infra/avl](https://github.com/frontier-infra/avl).

## Local development

```bash
pnpm install
pnpm dev # localhost:3000, hot reload
pnpm typecheck # tsc --noEmit
pnpm build # static export to out/, plus postbuild AVL emitter
pnpm start # serve out/ on $PORT (default 3000)
```

`out/` after build contains:

- 64 route HTMLs (home, the-math, /gpu, /model, 40 GPU detail, 20 model detail)
- 64 `.agent` companion files
- `agent.txt`, `sitemap.xml`, `robots.txt`
- 61 OG image PNGs, favicon SVG, apple-touch-icon
- Static assets and font bundles

## Deploy

The project is wired for **Railway** out of the box. `railway.toml` pins Node 22 + pnpm 9 and configures Nixpacks with explicit build/start commands and a `/` healthcheck.

Works on any static host: Cloudflare Pages, Vercel, Netlify, S3+CloudFront, GitHub Pages, plain nginx. Just point at `out/`.

## Stack

- [Next.js 15](https://nextjs.org) (App Router, static export)
- [TypeScript 5](https://www.typescriptlang.org)
- [React 18](https://react.dev)
- [pnpm 9](https://pnpm.io)
- Vanilla CSS · [Geist](https://vercel.com/font) + [JetBrains Mono](https://www.jetbrains.com/lp/mono/)
- [@frontier-infra/avl](https://github.com/frontier-infra/avl) for the parallel agent views
- [Playwright](https://playwright.dev) for end-to-end browser verification

## Roadmap

- **Phase 2: Runtime badges.** Per-model compatibility badges for Ollama, LM Studio, vLLM, and MLX with one-click install commands.
- **Build-time HF enrichment.** Pull download counts, license, and architecture from the HF Hub API at build so curated cards show context beyond what the slug carries.
- **Per-model architecture.** Replace the 13B reference for KV cache with per-model GQA / MQA + head dimensions for tighter estimates.
- **Tokens-per-second.** Bandwidth-based throughput estimates next to the fit pills.
- **Cloud comparison.** This model on your machine vs OpenRouter pricing for the equivalent.

See [issues](https://github.com/webdevtodayjason/vrambudget/issues) for the live list.

## Contributing

Open a PR. Two soft rules:

- **No em dashes** in new copy. Colons, periods, semicolons.
- **Numbers in monospace.** VRAM, params, GB, percentages.

## About the builder

Built by **Jason Brashear**. MSP owner, AI application developer, and 30-year IT veteran out of Texas.

- Personal site: [jasonbrashear.com](https://jasonbrashear.com/)
- Substack: [jasonbrashear.substack.com](https://jasonbrashear.substack.com/)
- Medium: [@jason_81067](https://medium.com/@jason_81067)
- Dev.to: [@webdevtodayjason](https://dev.to/webdevtodayjason)
- X: [@argentAIOS](https://x.com/argentAIOS)
- GitHub: [@webdevtodayjason](https://github.com/webdevtodayjason)

## License

MIT. See [LICENSE](LICENSE). Use it however you want.