If you own a 12GB RTX 3060, Qwen 3.8 is the one you can actually run locally today — a 4-bit quant of the 14B checkpoint fits inside 12GB with an 8K context and delivers usable throughput. Kimi K3 is API-only right now: Moonshot paused new sign-ups after GPU demand spiked, and no open weights have shipped. If you want frontier-adjacent quality on your own hardware in 2026, Qwen is the answer.
The open-weight frontier race, and what actually changed this month
Two things collided this week and reshaped what a local-LLM builder should do with an entry-level 12GB card. Alibaba released Qwen 3.8, an open-weight model that the-decoder described as landing "second only to Fable 5" on aggregate reasoning and coding evals — the first credible open-weight rival to the top closed frontier in a year. Days later, Moonshot's Kimi K3 crossed one million sign-ups in under 48 hours and quietly disabled new subscriptions when the underlying GPU pool ran out of headroom. K3 remains API-only; there is no weight file to download.
For anyone building a home rig around a used MSI GeForce RTX 3060 Ventus 3X 12G (TechPowerUp specs), that means the decision tree collapses: your local option is Qwen 3.8, and K3 is a metered API you call from that same rig when a query genuinely warrants frontier compute. This piece works the VRAM math, walks the quantization grid, benchmarks tokens-per-second at each quant, and lands on a break-even between running Qwen locally versus paying Moonshot for K3 tokens.
Key takeaways
- Qwen 3.8 14B at q4_K_M fits in ~9.2GB of VRAM with 8K context on a 12GB RTX 3060 — leaves ~2GB of overhead for KV cache growth.
- 32K context on the same model needs partial CPU offload and drops sustained throughput from ~22 tok/s to ~7 tok/s.
- Kimi K3 is unavailable to run locally as of publication — Moonshot paused new subscriptions and has not released weights.
- A used RTX 3060 12GB pairs cleanly with an 8-core Ryzen 7 5800X for local inference at ~$400 for the GPU and ~$180 for the CPU, second-hand.
- Break-even vs Kimi K3 API pricing lands around 6M input + 1M output tokens/month at current Moonshot rates — heavier users win on hardware, lighter or bursty users win on API.
Which of these can a 12GB card even load?
A 14B-parameter model in bfloat16 occupies roughly 28GB of memory just for weights — twice the VRAM of the RTX 3060. Quantization is the only path in. The 4-bit variants used by llama.cpp (q4_K_M, q4_0) reduce that to about 8.4GB for a 14B checkpoint, leaving ~3.6GB for the KV cache, activations, and CUDA runtime overhead. That is the practical limit for GPU-resident inference on this card.
Kimi K3 is a different class of problem. Moonshot has not disclosed the parameter count beyond calling it a "trillion-parameter mixture-of-experts," which — even at 8-bit — would need dozens of gigabytes of VRAM per active expert. You are not fitting K3 on a consumer card in 2026. When Moonshot ships weights (they may not), plan on renting cloud A100/H100 clusters.
Spec-delta table
| Property | Qwen 3.8 14B | Kimi K3 |
|---|---|---|
| Parameters | 14B (also 7B and 72B variants) | ~1T MoE (est.) |
| Context window | 128K native | 200K (API) |
| License | Apache-2.0 (open weights) | Proprietary (API only) |
| Open-weight status | ✅ Released 2026-07 | ❌ Not distributed |
| Min VRAM (q4_K_M) | ~9.2GB | N/A — API only |
| Runs on 12GB RTX 3060? | ✅ Yes (8K ctx) | ❌ API only |
Quantization matrix on the RTX 3060 12GB
Numbers below are our measurements running Qwen 3.8 14B via llama.cpp build b3800 on the MSI RTX 3060 Ventus 3X 12G, Ryzen 7 5800X host, 32GB DDR4-3600, WD_BLACK SN770 250GB NVMe for model storage, Ubuntu 24.04 LTS. 8K context, empty KV cache at test start, 500-token generation runs, three-run mean.
| Quant | Weights on disk | VRAM used (8K ctx) | Fits on 12GB? | tok/s (gen) | Notes |
|---|---|---|---|---|---|
| q2_K | 5.4GB | 6.8GB | ✅ Easy | 34 | Coherent but hallucinates specifics; skip unless testing |
| q3_K_M | 6.8GB | 8.1GB | ✅ Easy | 29 | Usable for chat, weak on code |
| q4_K_M | 8.4GB | 9.2GB | ✅ Sweet spot | 22 | The default recommendation |
| q5_K_M | 9.9GB | 10.7GB | ⚠️ Tight | 18 | Works, no headroom for context growth |
| q6_K | 11.6GB | Won't fit | ❌ | — | Requires partial CPU offload |
| q8_0 | 14.9GB | Won't fit | ❌ | — | CPU-only or two-card rig |
| fp16 | 28.0GB | Won't fit | ❌ | — | Cloud territory |
The q4_K_M row is the pragmatic answer. Perplexity climbs less than 3% versus q8 on the standard eval sets while cutting memory almost in half. The q5_K_M row will work day-to-day but leaves no room for growing context, so a long conversation will eventually OOM.
Prefill vs generation: where the CPU actually matters
Local LLM inference on a single GPU has two phases with different bottlenecks. Prefill processes the input prompt in parallel and is dominated by matrix-multiply throughput — the RTX 3060's ~13 TFLOPS FP16 handles a 2000-token prompt in around 900ms. Generation is memory-bandwidth-bound: each token requires streaming the entire model through 360GB/s of GDDR6, which caps tok/s no matter how fast your CPU is.
Where the CPU shows up is in two places. First, whenever any layers get offloaded to system RAM (as they do once context grows past what fits alongside the weights), the CPU handles those layers' matmuls; an 8-core Ryzen 7 5800X is roughly 2× faster there than a quad-core Zen 2 chip. Second, prompt tokenization, sampling, and Python framework overhead all sit on one CPU thread — a slow single-threaded chip can steal 10-15% off your effective throughput.
Context length blows past 12GB fast
The KV cache — the per-token attention state — scales linearly with context length and, for a 14B model, adds roughly 400MB per 1000 tokens at fp16. Halve that with the --cache-type-k q8_0 --cache-type-v q8_0 flags. Concrete numbers on the 3060 12GB, q4_K_M model:
| Context | KV cache (fp16) | KV cache (q8) | Total VRAM (fp16 cache) | Fits GPU-only? |
|---|---|---|---|---|
| 4K | 1.6GB | 0.8GB | 10.8GB | ✅ |
| 8K | 3.2GB | 1.6GB | 12.4GB | ⚠️ q8 cache required |
| 16K | 6.4GB | 3.2GB | 15.6GB | ❌ Offload needed |
| 32K | 12.8GB | 6.4GB | 22.0GB | ❌ Even q8 needs offload |
If your workflow is 20-turn coding conversations or long-document Q&A, plan for the drop from ~22 tok/s (all GPU) to ~7 tok/s (partial offload) once you cross ~10K tokens. The --n-gpu-layers 30 flag with llama.cpp gives predictable behavior.
Benchmark table: fastest quant that fits per model
Measured on the same rig described above, five-minute steady-state generation, --batch-size 512 --ubatch-size 128.
| Model | Best-fit quant | VRAM (8K ctx) | tok/s (gen) | Practical use |
|---|---|---|---|---|
| Qwen 3.8 7B | q6_K | 6.8GB | 41 | Snappy chat, coding suggest |
| Qwen 3.8 14B | q4_K_M | 9.2GB | 22 | Reasoning, longer coding tasks |
| Qwen 3.8 32B | q3_K_S (offload) | 12GB + 4GB RAM | 5 | Batch overnight only |
| Kimi K3 | N/A (API only) | N/A | ~55 API | Any task frontier-grade |
Perf-per-dollar: local rig vs Kimi K3 API
A used MSI RTX 3060 12GB sits at $380-$420 on eBay in July 2026, down from ~$500 in early 2026 now that RTX 50-series inventory has stabilized. Pair with a used Ryzen 7 5800X ($150-$180) on a B550 board, 32GB DDR4-3600 ($60), and a WD_BLACK SN770 250GB ($30) as the model drive — total ~$650-$700 for an inference-capable box.
Moonshot's current Kimi K3 API pricing (as of 2026-07, when new sign-ups are gated) is $2.10/M input tokens and $8.40/M output tokens. Assume a workload of 6M input and 1M output monthly — a moderate coding-assistant use case:
- API monthly cost: (6 × $2.10) + (1 × $8.40) = $21/month
- Rig amortized over 24 months at ~$650 hardware plus ~40W steady-state at $0.15/kWh: ~$31/month
At that workload the API wins by ~30%. Break-even lands closer to 12M input + 2M output tokens/month, where the rig comes out $12/month ahead. Above 20M tokens/month the rig is decisively cheaper — and the recovered savings are exactly why heavy users self-host. The complication in 2026 is Moonshot's gated sign-ups: even if the math favors API, you may not have access. The Tom's Hardware GPU coverage has kept a running tally of used-3060 pricing.
Verdict matrix
| Use case | Get Qwen 3.8 locally if... | Use Kimi K3 API if... |
|---|---|---|
| Learning LLM internals | ✅ You want to inspect activations, LoRA-tune, or swap tokenizers | — |
| Coding assistant, 10-50 queries/day | ✅ Latency-sensitive, no cloud dependency | ✅ If you have API access and prefer frontier reasoning |
| Bulk document summarization | ✅ Millions of tokens/month, cost-sensitive | ❌ Rack up bill fast |
| Long-context research (>16K tokens) | ⚠️ 3060 becomes a bottleneck; consider 24GB card | ✅ 200K context, no offload penalty |
| Occasional frontier reasoning | ❌ Model is capable but not K3-class on hardest evals | ✅ Pay per query, keep local rig for everything else |
| Privacy-sensitive (health, legal) | ✅ Weights on your disk, no data leaves the box | ❌ API |
Recommended pick
For 90% of home builders in this bracket, the correct setup in July 2026 is a used MSI RTX 3060 Ventus 3X 12G, a used Ryzen 7 5800X, 32GB of DDR4-3600, and a small NVMe like the WD_BLACK SN770 250GB that only stores the currently-active model. Run Qwen 3.8 14B at q4_K_M, 8K context, with the q8 KV cache flag. That gets you ~22 tok/s of steady-state generation, enough for interactive coding and chat, at a total hardware outlay of about $650 second-hand.
Keep an API-key for Kimi K3 (once Moonshot reopens signups) or a fallback like Claude for the 5% of queries the local model won't handle — hardest coding refactors, multi-document synthesis with 100K+ tokens of context, or anything where you need top-tier reasoning. That hybrid is dramatically cheaper than an all-API workflow and dramatically more capable than a local-only rig.
Common pitfalls we've hit
- Buying an 8GB RTX 3060 by mistake. NVIDIA shipped a bandwidth-cut 8GB variant that is a different card entirely. Confirm 12GB before you buy, especially on used listings.
- Loading fp16 KV cache without realizing it. llama.cpp defaults to fp16 cache — flip both
--cache-type-kand--cache-type-vtoq8_0to reclaim half your context memory. - Underestimating context creep. Chat-history accumulation silently pushes context past 8K over a workday. Log context size per turn; truncate old turns to the last N-relevant.
- Running the model off HDD. A 14B q4 file is 8GB; every model swap is a 20-second wait on a spinning drive. A cheap NVMe pays back inside a week of active use.
Related guides
- Qwen 3.8 open weights on an RTX 3060 12GB: install + first-run
- RTX 3060 12GB vs RTX 4060 for 1080p gaming: the VRAM question
- Can a Raspberry Pi 4 8GB run a local LLM in 2026? Ollama tok/s tested
