LOCAL LLM HARDWARE

Best GPU for Local LLMs in 2026

Start with the largest model you need to keep in memory. Compare capacity, ownership cost and workload evidence before deciding what to buy.

Reviewed 2026-10-10 · Independent research · No hardware purchased for this guide

EvidenceManufacturer specifications
Memory estimatesEST. weights only
Market pricesPrice check pending
Contents

The short answer: three GPUs worth buying (2026)

These are three capacity candidates, not unconditional buying recommendations. “Best value” is a decision to validate with your local quote; cost per million tokens and performance per dollar are Not yet verified. No speed ranking is inferred from gaming specifications or from a small-model benchmark.

Conditional shortlist — Q4_K_M sample-ratio estimates, not confirmed runtime fits
TierGPUVRAMLargest model it can hold (Q4_K_M)$/GB VRAMStatus
EntryGeForce RTX 5060 Ti (16GB)

A memory-first starter candidate when its local quote and runtime support fit your workload.

16 GB14B planning size
EST. 8.57 GB
Actual artifact + KV fit: Not yet verified
Not yet verifiedPrice check pending; capacity shortlist only
Best valueGeForce RTX 3090 (used candidate)

A conditional capacity candidate, not a verified value winner: used price, warranty and electricity may reverse the decision.

24 GB32B planning size
EST. 19.58 GB
Actual artifact + KV fit: Not yet verified
Not yet verifiedPrice check pending; capacity shortlist only
High endGeForce RTX 5090

A consumer-card capacity upgrade; justify the quote against the extra headroom, not a generic speed ranking.

32 GB32B planning size
EST. 19.58 GB
Actual artifact + KV fit: Not yet verified
Not yet verifiedPrice check pending; capacity shortlist only

Use the memory assumptions before treating a weight-only fit as a runnable model. A real model name and verified artifact fit are pending for each candidate; nominal parameter labels do not identify a downloadable checkpoint.

How much VRAM you actually need

The rows are nominal parameter-count scenarios, not exact counts of named models. Every weight cell is EST. binary GiB calculated from the official sample ratio; no cell is a peak GPU allocation. Capacity comparisons elsewhere retain decimal GB, with exact unit conversion.

EST. weight memory in GiB by nominal scale and official sample ratio; KV cache excluded
Planning scaleFP16 (F16)Q8_0Q6_KQ5_K_MQ4_K_MQ3_K_MQ2_KKV cache
7BEST. 13.0 GiBEST. 6.9 GiBEST. 5.3 GiBEST. 4.6 GiBEST. 4.0 GiBEST. 3.3 GiBEST. 2.6 GiBNot yet verified
8BEST. 14.9 GiBEST. 7.9 GiBEST. 6.1 GiBEST. 5.3 GiBEST. 4.6 GiBEST. 3.7 GiBEST. 2.9 GiBNot yet verified
13BEST. 24.2 GiBEST. 12.9 GiBEST. 9.9 GiBEST. 8.6 GiBEST. 7.4 GiBEST. 6.0 GiBEST. 4.8 GiBNot yet verified
14BEST. 26.1 GiBEST. 13.9 GiBEST. 10.7 GiBEST. 9.3 GiBEST. 8.0 GiBEST. 6.5 GiBEST. 5.1 GiBNot yet verified
32BEST. 59.6 GiBEST. 31.7 GiBEST. 24.5 GiBEST. 21.2 GiBEST. 18.2 GiBEST. 14.9 GiBEST. 11.8 GiBNot yet verified
70BEST. 130.4 GiBEST. 69.3 GiBEST. 53.5 GiBEST. 46.5 GiBEST. 39.9 GiBEST. 32.6 GiBEST. 25.7 GiBNot yet verified

EST. weight GiB = nominal parameters (billions) × sample bits per weight × (10⁹ ÷ 8 ÷ 1024³). The conversion is calculated exactly, rather than using a rounded decimal constant. EST. weight GB = nominal parameters (billions) × sample bits per weight ÷ 8.

Inputs to the arithmetic — sample ratios are not universal quantization constants
FormatBits / weightBasis
FP16 (F16)16.0005Llama-3.1-8B sample ratio
Q8_08.5008Llama-3.1-8B sample ratio
Q6_K6.5633Llama-3.1-8B sample ratio
Q5_K_M5.7036Llama-3.1-8B sample ratio
Q4_K_M4.8944Llama-3.1-8B sample ratio
Q3_K_M3.996Llama-3.1-8B sample ratio
Q2_K3.1593Llama-3.1-8B sample ratio

All ratios, including F16 and Q8_0, come from llama.cpp's Llama-3.1-8B example and retain the published precision. Q8_0 is not raw INT8. BF16 has the same nominal storage width as FP16, but an actual mixed-format artifact still needs inspection. Applying sample ratios to other scales is an explicit extrapolation: tensor mixtures, embeddings, vocabulary and conversion options can change the result. Actual GGUF size for each row is Not yet verified; no universal percentage error bound is established by this source.

These estimates exclude KV cache, runtime buffers, activations, vision components and allocator overhead. A nominal parameter label alone cannot explain every difference from a published file size. Compare the exact artifact and byte count instead of forcing the nominal-size estimate to match it.

For a conventional attention cache: EST. KV GB = 2 × layers × KV heads × head dimension × cached tokens × concurrent sequences × cache bits ÷ 8 ÷ 10⁹. Architecture and cache configuration must be known; sliding-window or hybrid models can require a different formula.

KV cache from three readable official configurations

Head dimension = hidden_size ÷ num_attention_heads. The following examples use the configured context length and a single sequence with a full-context cache. Configs specify BF16 model weights; F16 here is an explicit cache-payload scenario, not a claim about the runtime's default cache precision.

EST. KV payload from verified configs — binary units, no runtime allocation overhead
Model / official configLayers / KV heads / head dimensionF16 KiB per tokenRaw 8-bit KiB per tokenContext tokensF16 cache GiBActual quantized cache
Qwen2.5-7B-Instruct28 / 4 / EST. 128EST. 56 KiB/tokenEST. 28 KiB/token32768EST. 1.75 GiBNot yet verified
Mistral-7B-v0.332 / 8 / EST. 128EST. 128 KiB/tokenEST. 64 KiB/token32768EST. 4.00 GiBNot yet verified
Qwen2.5-Coder-32B-Instruct64 / 8 / EST. 128EST. 256 KiB/tokenEST. 128 KiB/token32768EST. 8.00 GiBNot yet verified

The raw 8-bit column is payload-only arithmetic. It is not the actual Q8_0 cache size: block scales, supported cache formats and allocation behavior need runtime verification. Likewise, a raw 4-bit payload is not proof of actual Q4 cache memory. No fixed extra memory allowance or long-context performance guarantee is asserted. All other models retain Not yet verified KV values.

VRAM calculator — planned · Choose a model briefing · Mistral Large 4 VRAM notes

VRAM tiers: what 8, 12, 16, 24, 32, 48, 96GB each buy you

“Headroom” below is an EST. screening rule: reserve 20% of nominal capacity after allocating the estimated weights. It is an editorial margin, not a verified KV allowance or a promise of comfortable speed. “Tight” fits the estimated weights but exceeds that screening limit; “cannot hold” means the weights alone exceed capacity.

EST. Q4_K_M capacity screening using the sample ratio and an explicit reserve
VRAM tierLargest with screening headroomTight planning scalesCannot hold these weights
8 GB planning tier8B planning size13B14B, 32B, 70B
12 GB planning tier14B planning sizeNone in this table32B, 70B
16 GB planning tier14B planning sizeNone in this table32B, 70B
24 GB planning tier14B planning size32B70B
32 GB planning tier32B planning sizeNone in this table70B
48 GB planning tier32B planning size70BNone in this table
96 GB planning tier70B planning sizeNone in this tableNone in this table

For every tier, the largest model that will run comfortably at your target context is Not yet verified. Confirm the exact artifact and peak allocation before buying. Lower quantization may introduce quality tradeoffs, and a model spilling into CPU memory has a different latency profile.

Picks by budget

These dollar bands are user-selected budget scenarios, not verified market-price brackets. Each card below is a candidate to obtain a quote for; inclusion does not mean it is currently sold inside that band. Current prices and price-per-GB comparisons are pending.

Around $400 scenario

A first local workstation: obtain quotes before choosing; avoid sacrificing needed memory to meet this scenario.

  • GeForce RTX 5060 — 8 GB; Price check pending.
  • GeForce RTX 5060 Ti (16GB) — 16 GB; Price check pending.
  • GeForce RTX 3090 (used candidate) — 24 GB; Price check pending.

$800–1,500 scenario

A developer prioritizing model capacity, warranty and a supported backend over gaming specifications.

  • GeForce RTX 3090 (used candidate) — 24 GB; Price check pending.
  • AMD Radeon RX 7900 XTX — 24 GB; Price check pending.
  • GeForce RTX 5070 Ti — 16 GB; Price check pending.

$1,600+ scenario

A capacity-led workstation or serving prototype; professional cards may exceed this starting budget substantially.

  • GeForce RTX 5090 — 32 GB; Price check pending.
  • NVIDIA RTX 6000 Ada Generation — 48 GB; Price check pending.
  • NVIDIA RTX PRO 6000 Blackwell Workstation Edition — 96 GB; Price check pending.

Compare delivered total including tax, a suitable power supply, cooling and any system upgrade. A card with more memory is not automatically cheaper to own or faster for your workload.

Used RTX 3090 vs new RTX 5060 Ti / 5070

Used versus new — rated card power is not whole-system inference consumption
CandidateVRAMRated card powerDelivered price$/GBWhole-system power
GeForce RTX 3090 (used candidate)24 GB350 WPrice check pendingNot yet verifiedNot yet verified
GeForce RTX 5060 Ti (16GB)16 GB180 WPrice check pendingNot yet verifiedNot yet verified
GeForce RTX 507012 GB250 WPrice check pendingNot yet verifiedNot yet verified

A used card becomes a defensible choice only if its delivered cost per GB, verified condition and workload support beat your alternatives after accounting for operating costs. Estimated electricity cost is Not yet verified: rated board power cannot replace measured whole-system draw or a local tariff.

  • Ask about transferability of warranty and the return window; do not assume either exists.
  • Inspect connectors, cooling, fan noise and thermal behavior under a sustained load.
  • Ask for prior usage and repair history. Mining history or remaining life cannot be inferred from a listing or model name.
  • Confirm case clearance, power connectors and a power supply matched to the full system.

NVIDIA's runtime support matrix distinguishes FP8 weight execution from FP8 cache support. Ampere is not listed for per-tensor FP8 weights; Blackwell is, but an FP8 checkpoint still needs a compatible kernel and model. File loading or conversion is not proof of native FP8 acceleration in Ollama, LM Studio or llama.cpp.

Get the missing tariff and usage inputs in the cost comparison before declaring the used card an economic winner.

24GB vs 32GB: what the extra money buys

The nominal upgrade adds EST. 8.00 GB of memory, an EST. 33.33% capacity increase. That is capacity arithmetic, not a speed improvement. The actual price premium is Price check pending.

EST. headroom before KV cache and runtime overhead — same functions as the planning table
Planning case24 GB headroom32 GB headroomDecision
32B Q4_K_M, weights EST. 19.58 GBEST. 4.42 GBEST. 12.42 GBLong context: compare the remaining capacity with the architecture-specific cache. No context length is guaranteed.
70B Q3_K_M, weights EST. 34.97 GBEST. -10.97 GBEST. -2.97 GBLower quantization: negative headroom requires offload or more memory; positive headroom still needs cache and buffers.
  1. For the smaller case, retain the same model and format, then check whether your target context and concurrency fit the additional headroom.
  2. For the larger case, validate quality at the lower-bit format. Offload may make loading possible, but RAM, transport and latency can change the decision.
  3. If you need multiple concurrent contexts, spend the extra capacity on cache only after calculating the real cache layout.

EST. dollars per added GB = delivered price difference ÷ added capacity. Its numeric value, additional context tokens and offload speed are Not yet verified. Compare ownership costs before accepting a premium.

Inference vs fine-tuning vs production serving

Inference starts with resident weights, then adds caches and runtime allocations. Decode and prompt processing stress different parts of the system; enough VRAM makes a configuration feasible but does not determine its speed.

Fine-tuning adds training activations, gradients and optimizer state. Adapter training can reduce some allocations, but method, precision, sequence length and batch configuration must be specified before assigning a memory requirement.

Production serving adds concurrent caches, scheduling, startup behavior and availability requirements. A single-user fit is not a serving capacity test. Record both time to first token and sustained decoding under representative concurrent load; this guide has no comparable performance record or performance-per-dollar score.

Which GPU for Ollama, LM Studio and llama.cpp

Choose the exact model format and operating system before the runtime. Backend compatibility is necessary, while the model's weights and cache remain the main capacity inputs; defaults and offload policies can change peak allocation.

  • Ollama hardware support: verify NVIDIA or AMD support against the current OS-specific list. The Radeon candidate is listed, but a supported backend is not a memory or speed guarantee.
  • LM Studio requirements: confirm the current application and runtime support on your machine; use its model-loading controls to observe allocation.
  • llama.cpp documentation: select a supported CUDA, HIP, Metal, Vulkan or CPU/GPU hybrid backend. Validate the binary's options for your installed version.

Apple Silicon uses unified system memory. A supported Metal backend can share it with inference, but the OS and other applications also consume it. Do not equate installed unified memory with dedicated VRAM, or transfer this guide's card-power figures to a Mac.

Buy vs rent vs API: where the crossover is

No numeric crossover is asserted. The inputs below are intentionally empty until a dated quote, local tariff and representative workload are supplied; this avoids turning an assumed utilization rate into a buying recommendation.

Cost comparison — USD, output-token denominator; workload matching required
OptionRequired inputsCurrent resultFormula / decision
Buy locallyCard price: Price check pending
Whole-system watts, active hours, tariff, amortization months and monthly output tokens: Not yet verified
Not yet verified(Card cost ÷ amortization months + monthly electricity) ÷ monthly output tokens × 1,000,000
Rent a GPUHourly rate: Price check pending
Output tokens per billed hour: Not yet verified
Not yet verifiedHourly rate ÷ output tokens per billed hour × 1,000,000; include idle, storage and transfer charges.
Use an APIModel-specific input and output prices: Price check pending
Input/output token ratio: Not yet verified
Not yet verifiedOutput rate + input rate × input/output token ratio; normalize caching, batch and request mix.

EST. monthly electricity = measured whole-system watts ÷ 1,000 × active hours × local USD/kWh. Current result: Not yet verified. No local tariff or idle-load record is available.

EST. crossover output tokens/month = fixed monthly ownership cost ÷ (effective API USD per output token − local variable USD per output token). Current result: Not yet verified. If the denominator is not positive, this simplified model has no positive cost crossover.

Below a verified positive threshold, an API can cost less under the specified workload; above it, ownership may be cheaper. Privacy, uptime, model quality and maintenance remain separate constraints. Include the rest of the PC, financing, repairs and idle electricity for a complete ownership comparison; the displayed card-only formula is a partial cost model.

Performance per dollar is also Not yet verified. Divide comparable output tokens per second by a dated delivered hardware price only after fixing model, quantization, context and concurrency; do not substitute vendor AI TOPS.

Setup: driver → runtime → pull a model → measure your own speed

Install the supported vendor driver, confirm your GPU is detected, then install a runtime from its official documentation. Select an available model whose exact quantized artifact fits your system; the following commands are templates, not evidence that a future model is downloadable.

# Replace MODEL_TAG with an available model tag from your chosen model's documentation.
ollama pull MODEL_TAG
ollama show MODEL_TAG
ollama run MODEL_TAG
ollama ps

Official Ollama quickstart · Generate API timing fields · llama.cpp benchmark documentation.

Use a fixed prompt and record cold and warm runs separately. The generate API exposes prompt and output token counts with their durations. Compute output tokens/second as eval_count ÷ eval_duration × 10⁹ when the duration is in nanoseconds; do not combine prompt evaluation and decoding into a single unexplained speed figure.

Your own measurement log — fill from the exact installed configuration
FieldWhat to record
Model and artifactModel ID, revision or checksum, file size and exact quantization
MachineGPU, driver, OS, runtime version and backend
WorkloadPrompt, cached context, output tokens, context limit and concurrent sequences
AllocationPeak GPU memory, offloaded layers, system RAM and cache precision
TimingsCold/warm status, prompt throughput, decode throughput and time to first token
Cost inputsDelivered quote date, tariff region/date, wall-power record and billed hours

The Mistral release announcement includes a future weight-release roadmap. Check its current download and runtime availability before attempting local setup; this guide supplies no Mistral Large 4 pull command or consumer-card fit claim.

FAQ

Questions cover the supplied search intents and official runtime documentation. They are not presented as a verified live Google People Also Ask sample.

How much VRAM do I need for a local LLM?

Start with the exact model artifact, quantization and context length. The weight table provides EST. planning values, while KV cache, runtime buffers and concurrency still need separate allowances. See the assumptions and pending inputs →

What is the best GPU for LLM inference?

Choose enough memory for your model and a backend supported on your operating system. A purchase winner by cost or speed is Not yet verified without dated quotes and a comparable workload; use the cost framework before buying. See the assumptions and pending inputs →

Should I choose 24GB or 32GB?

Use the capacity-upgrade table to compare the weight-only headroom for your chosen format. More capacity can support a longer context or more concurrent requests, but the context increase is Not yet verified without the model architecture and runtime. See the assumptions and pending inputs →

Is a used RTX 3090 worth it?

It can be a reasonable capacity purchase if its delivered price, condition and supported runtime satisfy your needs. Warranty, cooling, prior usage and wall power remain purchase-specific; current price and cost per token are Not yet verified in the cost table. See the assumptions and pending inputs →

Does VRAM matter more than speed?

Insufficient memory forces a different quantization, offload or model. Once capacity is adequate, prompt processing, decoding, bandwidth, kernels and concurrency all matter; this guide does not assume all consumer GPUs have the same speed. See the assumptions and pending inputs →

Can I run a 70B model locally?

Possibly, with an appropriate quantized artifact and enough combined resources. Full GPU residency and acceptable latency are different questions: lower-bit weights may still exceed a consumer card, and CPU offload needs system memory and workload verification. See the assumptions and pending inputs →

Which GPU should I use for Ollama?

Check Ollama's current hardware list for the exact GPU and operating system. Then validate your chosen model and context locally; compatibility alone is not a throughput guarantee. See the assumptions and pending inputs →

Is 16GB enough?

It is a useful planning tier for smaller quantized models, subject to the exact artifact and context. The screening table deliberately separates headroom from tight weight fits; a model's peak allocation is Not yet verified until you load it. See the assumptions and pending inputs →

Can Apple unified memory replace dedicated VRAM?

A supported Metal runtime can use shared system memory for inference. That memory also serves the operating system and applications, so the installed total is not a dedicated GPU allocation or a directly comparable bandwidth specification. See the assumptions and pending inputs →

Can an RTX 3090 run FP8 models?

Reading an FP8 checkpoint, converting its weights and executing native FP8 matrix operations are different capabilities. NVIDIA's TensorRT-LLM matrix does not list Ampere for per-tensor FP8 weight execution, while Blackwell support still depends on the runtime, kernel and model. See the assumptions and pending inputs →

When is an API cheaper than buying a GPU?

Compare fixed ownership cost plus variable electricity with input and output API charges for the same workload. The numeric crossover is Not yet verified because quotes, tariffs and usage are missing; the cost section exposes the formula instead of inventing a threshold. See the assumptions and pending inputs →

Can I use the same card for fine-tuning and serving?

Inference weight estimates do not include gradients, optimizer state or training activations. Concurrent serving also changes cache allocation; obtain separate workload records before treating either use as covered by an inference fit. See the assumptions and pending inputs →

Methodology & sources

Reviewed 2026-10-10. Initial edition: source-linked capacity shortlist, shared weight arithmetic, conditional budget scenarios and an unfilled cost framework. No hardware was purchased for this guide. There are no site-owned speed, power or benchmark observations.

  • Every numeric data field carries a source URL, access date and evidence kind. Official specification data is distinct from our arithmetic and editorial assumptions.
  • The weight planning table uses binary GiB; GPU-capacity comparisons use decimal GB. Conversions are exact. Planning scales are nominal inputs; sample ratios are extrapolated, not universal constants. Actual artifact sizes remain pending.
  • The screening reserve is EST. 20% of nominal capacity, chosen for this table only. It does not validate a particular KV cache, runtime buffer or comfortable throughput.
  • Memory arithmetic, fit classification and capacity differences come from the shared pure functions used throughout this page. Missing architecture or cost inputs return unknown rather than zero.
  • Local output-token cost amortizes card price and adds electricity; rental cost normalizes billed hours; effective API cost includes input as well as output charges. Different quality, caching or concurrency prevents a fair price-only comparison.
  • Electricity tariff, whole-system draw, idle load and amortization period are pending. No region-independent tariff or rated-power-as-wall-power assumption is used.
  • GPU prices, used transaction records, quotes, rental plans and model-specific API costs are pending. Budget labels are planning scenarios, not market quotes.

Consult the model directory and Mistral VRAM research for model-specific uncertainty. Return to Local LLM guides or the planned calculator entry; the calculator is not implemented in this edition.

GeForce RTX 5060 Ti (16GB)Official memory and board-power specification; not a whole-system consumption or price measurement. Accessed 2026-10-10.
GeForce RTX 5070 TiOfficial memory and board-power specification; not a whole-system consumption or price measurement. Accessed 2026-10-10.
GeForce RTX 3090 (used candidate)Official memory and board-power specification; not a whole-system consumption or price measurement. Accessed 2026-10-10.
GeForce RTX 5090Official memory and board-power specification; not a whole-system consumption or price measurement. Accessed 2026-10-10.
NVIDIA RTX 6000 Ada GenerationOfficial memory and board-power specification; not a whole-system consumption or price measurement. Accessed 2026-10-10.
NVIDIA RTX PRO 6000 Blackwell Workstation EditionOfficial memory and board-power specification; not a whole-system consumption or price measurement. Accessed 2026-10-10.
AMD Radeon RX 7900 XTXOfficial memory and board-power specification; not a whole-system consumption or price measurement. Accessed 2026-10-10.
Qwen2.5-7B-Instruct official configLayers, hidden size, attention heads, KV heads and configured context; derived F16 cache payload is arithmetic, not peak allocation. Accessed 2026-10-10.
Mistral-7B-v0.3 official configLayers, hidden size, attention heads, KV heads and configured context; derived F16 cache payload is arithmetic, not peak allocation. Accessed 2026-10-10.
Qwen2.5-Coder-32B-Instruct official configLayers, hidden size, attention heads, KV heads and configured context; derived F16 cache payload is arithmetic, not peak allocation. Accessed 2026-10-10.
llama.cpp quantization referenceEffective bits per weight for an upstream Llama-3.1-8B example; extrapolation to other scales is EST. Accessed 2026-10-10.
Ollama hardware supportBackend and operating-system compatibility lists. Accessed 2026-10-10.
Ollama FAQContext, memory and runtime questions. Accessed 2026-10-10.
Ollama quickstart and CLIPull, run and inspect a local model. Accessed 2026-10-10.
Ollama generate APIToken counts and timing fields for your own measurements. Accessed 2026-10-10.
LM Studio system requirementsSupported systems; hardware availability alone does not guarantee model fit. Accessed 2026-10-10.
llama.cpp project documentationCUDA, HIP, Metal, Vulkan and CPU/GPU hybrid inference. Accessed 2026-10-10.
llama.cpp benchmark toolReproducible workload recording, not benchmark results from this site. Accessed 2026-10-10.
NVIDIA TensorRT-LLM quantization matrixRuntime-specific FP8 support; weight operations differ from cache formats. Accessed 2026-10-10.
Mistral Large 4 release and weight-release roadmapRelease announcement and future weight availability, not a downloadable consumer-card configuration. Accessed 2026-10-10.