Appearance
Last week I watched someone run an agentic workflow on a 2017 laptop. Seventh-gen i5, 8 GB of RAM, no GPU. The task: scan the local network, find every running llama.cpp server, and write a script that queries them all. The model chugged along at 10 tokens per second, iterating on the code through several write-run-feedback cycles. Twenty minutes later, the task was done.
Same week, a different thread: the rent-versus-buy math for an 8-GPU H200 server. The box costs $370k. Renting the equivalent runs $35.20 an hour. At a realistic 60% sustained utilization, hardware-only break-even lands at 24 months.
These two stories bookend the current state of local inference, and they're the same story. The hardware floor keeps dropping, and the models keep needing less compute for useful work. Local inference is getting cheap from both ends at once.
Key numbers
- 10 tok/s: useful agent work on a 2017 i5 with 8 GB RAM
- 40%: tokens and wall-clock time of the base model, at equal quality, from Swift-1.5
- $370k vs $35.20/hr: buy versus rent equivalent for an 8x H200
- 24 months: break-even at 60% sustained utilization
- 2k tokens: entire system prompt of KoboldCpp's built-in agent, tools included
- €24: the VW Golf radiator cooling a dual-3090 rig
The potato tier: 1B active parameters redraw the hardware floor
Ling 3.0 Tiny is an 8-billion-parameter MoE with 1B active. That split is the whole trick: store 8B weights and compute only 1B per token. Quantized to Q6, it fits in a few gigabytes of RAM, and a 2017 CPU keeps pace. No optimization needed. I built llama.cpp, grabbed the first Q6 quant I found, and got about 10 tok/s.
10 tok/s is useless for interactive chat and fine for agents. A background task that finishes in 20 minutes doesn't need a datacenter. The script it produced, a network scanner for llama.cpp servers with several code-run-feedback iterations, would have been an hour or two of manual work in 2020.
The realization that follows is the one that matters: every laptop made since 2015 is now a candidate for background intelligence. The hardware exists, it's already paid for, and it sits idle most of the time. The marginal cost of running a small MoE on it is near zero. Edge AI is a software update to machines that already exist. No new product category required.
The enthusiast tier: dual 3090s, NVLink, and a Golf radiator
Between the potato and the datacenter sit the hobby builds, and the standout this month is the 2400cc Inference Racer. Two second-hand AORUS RTX 3090 XTREME WATERFORCE cards, a naked ThinkPad motherboard with a Ryzen 7 7840U and 64 GB of RAM, cooled by a €24 VW Golf radiator and roughly 2.4 liters of coolant. One card glows teal, the other red. The builder has no idea why, and has accepted this as the official color scheme.
The parts that shouldn't work are the ones I want to walk through. One 3090 hangs off the motherboard's WWAN slot at PCIe Gen4 x1. The other hangs off an SSD slot at Gen2 x4. Before it would boot, the BIOS needed a whitelist removal, a reworked PCIe power-up sequence, and all power-saving states disabled. The leak rate, under 100 ml/day as long as the coolant stays cool, is treated as excellent.
The NVLink bridge is the saving grace. Once inference starts, cross-GPU traffic flows over NVLink instead of the host bus, so the x1/x4 host topology barely matters. That's the practical lesson for budget multi-GPU builds: spend on NVLink, or watch model-parallel traffic crawl over a x1 link.
The rig serves Qwen3.8-27B through vLLM at decent speed, and it spans two tiers of the economics in one box. Detach the 3090s and it boots as a low-idle server, running smaller models on the 7840U's 64 GB of shared RAM through Vulkan and llama.cpp. That's the configuration running the household bot.
Quick take: local inference isn't getting cheap because hardware got cheap. It's getting cheap because models need less compute for useful work, and that gain lands hardest on hardware you already own.
The model-side lever: Swift cuts the overthinking
Hardware gets you half the gains. The other half comes from models that need less compute per useful task.
The Swift line from UkisAI takes Qwen3.8 models and trains the overthinking out of them with RL. The Flash variant is the best demonstration so far. I compared Qwen3.8-Flash-Next against Swift-1.5-Qwen3.8-Flash-Next on the same Aider coding benchmark, same reasoning effort, comparable Q5 quant builds with Q8_0 enhancer quants.
| Metric | Qwen3.8-Flash-Next | Swift-1.5-Flash-Next |
|---|---|---|
| First-try pass rate | 40.2% | 41.1% |
| Retry pass rate | 90.7% | 86.9% |
| Median tokens per case | 17,646 | 6,991 |
| Median seconds per case | 1,542 | 608 |
| Tokens per solved case | 24,800 | 10,500 |
| Well-formed diffs | 98.1% | 100.0% |
The quality gap sits inside benchmark noise: 99 of 107 paired cases agree, the net difference is four lost cases, and the McNemar p-value lands around 0.29. The token gap does not sit inside noise. Median tokens per case drop to 40%, median time to 40%.
The mechanism shows up in the long tail. The base model loops back through its own reasoning on hard problems, sometimes for 200k tokens. Swift almost never does. On the 20 most token-hungry cases in my run, Swift used 29% of the tokens and still solved 16 of 20 against base's 17 of 20. Its most expensive case burned 44k tokens. Base burned 203k.
The savings compound down the stack. Half the tokens means half the KV cache, so the same card fits more context, or a smaller card fits the same context. It means about 2.5x the throughput on batched workloads. And it bends the buy-versus-rent math from the model side: the same task costs 60% less compute no matter where it runs. Swift ships as GGUF for llama.cpp, MLX for Apple Silicon, AWQ and GPTQ for vLLM, FP8 for AMD, and NVFP4 for Blackwell, so these savings are available at every hardware tier in this article.
The high end: H200, rent versus buy
At the top of the stack, the question is purely financial. When does owning beat renting?
Running the public numbers: an 8-GPU HGX H200 server lands between $320k and $420k, with $370k a reasonable midpoint. The median on-demand rate across 34 providers was $4.40 per GPU-hour, which makes the full box $35.20 an hour. The $2-3 figures people quote are spot pricing, and spot isn't something you build a steady service on.
Hardware-only break-even: 14.4 months at 100% utilization, 24 months at 60%, 36 months at 40%. Very few small teams sustain 100%. Then come the four costs that don't show up in that headline math:
- Power and cooling. Colocation quotes came in higher than the hardware budget.
- Depreciation. Whatever resale value you assumed for datacenter parts, halve it. Last-gen demand is thin.
- Your own time. Racking, cabling, patching, nursing upgrades.
- Idle hours. Owned GPUs bill you whether your workload is running or not.
The working rule: at 60% sustained utilization over two years, buying wins. Below 40%, renting wins. In between, hybrid, own the steady inference load and rent the training bursts. Full transparency: the person who ran this math works for a company that sells hosted NVIDIA systems, so read the conclusion with that bias in mind. The assumptions are published, and the arithmetic holds up.
The software layer catches up: KoboldCpp ships an agent
Hardware is inert without software that turns tokens into work, and the gap between "a model" and "a thing that sorts files and builds a website" is exactly what agent frameworks close. Most existing harnesses are heavy. KoboldCpp now ships one behind a single checkbox.
Nine built-in tools, a system prompt of about 2k tokens including all tools, three approval modes for tool calls, MCP support through an mcp.json file, AGENTS.md support, and context compaction. It wants 28k context and 8k generation tokens, plus 12 GB of VRAM for a comfortable experience. That is exactly the used-3090 tier from the racer build. It also connects to any OpenAI-compatible backend, so rented GPUs work too.
One design detail deserves attention: MCP tools execute on the server while agent tools execute on the client. That separation defines the security model. For a tool whose docs tell you to exercise caution when approving tool calls, that boundary matters.
The dark side of the same story: a fake site, kobolcpp.com, is outranking the real project on Google through blackhat SEO and serving malware through popups. If you install KoboldCpp, use the official GitHub releases and nothing else. This kind of squatting will keep happening as local AI grows, and any download link that isn't in the project's own README should be treated as hostile.
What this means for on-prem versus cloud
The recurring question in the community threads is whether AI follows the cloud playbook: everything in-house in the early 2000s, then a mass migration to someone else's servers, then maybe a migration back. The utilization math suggests it won't be a single trajectory. Steady inference is a 24/7, predictable workload, which is exactly what amortizes owned hardware. Bursty training and experimentation are what rentals are good at. Your utilization curve decides the split, not a blanket preference.
What the community is saying: this week's threads split three ways. The potato-laptop post read like a moment of recognition, people feeling the same awe about a 2017 i5 that a GPU rig triggered two years ago. The radiator build drew plenty of engineering respect, plus jokes about the color scheme. The H200 math drew the standard pushback, people quoting spot rates as if they were on-demand, and the author's commercial ties getting named early. Fair on both counts. The published assumptions are the contribution.
If local inference follows anything, it's the pattern below. Each tier has its own economics, and they don't compete with each other.
| Tier | Hardware | What runs | Best for |
|---|---|---|---|
| Potato | Old laptop, CPU only, 8 GB RAM | 1B-active MoE at ~10 tok/s | Background agents, local automation |
| Enthusiast | Dual used 3090s, NVLink | 27B models via vLLM | Personal coding agent, self-hosted chat |
| Datacenter | 8x H200 HGX, ~$370k | Frontier-class models, training | Product inference above 60% utilization |
Common Pitfalls
Things I keep seeing go wrong when people take local inference seriously:
Building multi-GPU without NVLink. If two cards share a model and only talk over host PCIe, a Gen4 x1 link throttles you to a crawl. Either add NVLink or duplicate the model across cards so they never need to exchange weights. The racer build works because inter-GPU traffic bypasses the host bus entirely.
Break-even math with fantasy assumptions. Run utilization at 40%, not 100%. Halve your resale estimate for datacenter parts. Count your own time. Break-even moves from 14 months at full blast to 36 months at 40%, and power and cooling push the real curve longer. Below 40%, rent.
Deploying the base reasoning model when a token-compressed variant exists. On the Qwen3.8 family, test the Swift variant before you commit. I measured 40% of the tokens and 40% of the wall clock with equal quality, and the savings hit every resource you pay for. C++ workloads compress hardest, at 29% of base token use.
Downloading from anywhere except the official repo. The kobolcpp.com phishing site is live and ranked. Treat every download link you didn't find in the project's own README as hostile, including Google results that look official.
Judging CPU inference by chat latency. 10 tok/s is unusable for chat and perfectly usable for background agents. Benchmark potato hardware on agentic tasks, not on conversation feel.
One thing to remember: the cheapest intelligence is hardware you already own, running a model small enough to be useful on it. That sentence wasn't true two years ago. It's true now, and model efficiency does the heavy lifting, not hardware discounts.
The Bottom Line
Three takeaways that map to concrete situations:
- If you're running steady inference for a product and can hold near 60% GPU utilization for two years, buy the hardware. Rent payments overtake the purchase price at month 24, and everything after that is margin.
- If you're deploying to edge or commodity hardware, standardize on small-active MoE models and token-compressed variants like Swift. A 40% token cut is what turns 10 tok/s from a demo into a working background agent.
- If you're assembling a multi-GPU rig, prioritize NVLink over host PCIe bandwidth, because cross-GPU traffic needs its own path. Watch this space: single-binary agent harnesses are collapsing the software gap, and bundled local agents on 12 GB cards should be the default way people run these machines within a year.