How to Install Llama 3.3 70B on RTX 4090 — Step-by-Step
Last updated 2026-07-09
The honest, data-driven playbook for running Meta's 70B flagship on a single 24 GB RTX 4090 — the two paths that actually work, and the one that doesn't.
By Mohamed Meguedmi · 9 min read
Key Takeaways
- A single RTX 4090 (24 GB) cannot hold Llama 3.3 70B at the standard Q4_K_M tier. The 4-bit weights alone are ~42 GB — nearly double the card's VRAM.
- Two honest single-card paths exist: run Q4_K_M with CPU offload (~2–4 tok/s, full quality) or drop to a 2-bit
IQ2_XSGGUF (~21 GB, ~15–22 tok/s, with visible quality loss). - Ollama is the fastest route to a working prompt — one command — but it defaults to Q4 and will silently spill into system RAM on a 4090.
- For usable 4-bit speed, two RTX 4090s (48 GB) is the real answer, serving Q4_K_M fully on-GPU at ~16–20 tok/s.
- Budget at least 64 GB system RAM and a fast NVMe SSD no matter which path you pick.
The 24 GB Reality Check
Every guide that promises Llama 3.3 70B "running on your RTX 4090 in 5 minutes" glosses over one number: the model does not fit. Meta's Llama-3.3-70B-Instruct is a 70-billion-parameter model. At the community-standard 4-bit tier (Q4_K_M), the weights occupy roughly 42.5 GB before you add a single token of context. A 4090 has 24 GB. There is no configuration flag that changes this arithmetic.
Llama 3.3 70B is worth the effort — Meta positions it as matching the older 405B model on many instruction-following tasks — but you must choose your compromise up front. Here is the VRAM budget for the default Q4_K_M path:
| Component | Approx. size |
|---|---|
| Q4_K_M weights | ~42.5 GB |
| KV cache @ 8K context (fp16) | ~2.5 GB |
| CUDA + framework overhead | ~1.5 GB |
| Total required | ~46.5 GB |
| RTX 4090 VRAM | 24 GB |
| Deficit | ~22.5 GB |
That deficit is the whole story. You close it in one of two ways: keep the full Q4 quality and push ~22 GB of layers onto the CPU/RAM (slow), or shrink the model itself with a heavier quantization until it fits in VRAM (fast, lower quality). The table below shows the trade space.
| Quantization | File size | Fits in 24 GB? | Single-4090 speed | Quality |
|---|---|---|---|---|
| Q4_K_M | ~42.5 GB | No — offload ~20 GB to RAM | ~2–4 tok/s | Reference 4-bit |
| IQ3_XXS | ~27.5 GB | Partial — ~5 GB to RAM | ~6–9 tok/s | Good |
| IQ2_M | ~24.1 GB | Tight, short context only | ~12–16 tok/s | Noticeable loss |
| IQ2_XS | ~21.1 GB | Yes, at 2–4K context | ~15–22 tok/s | Real degradation |
Community reports on r/LocalLLaMA occasionally cite 40–60 tok/s for IQ2_XS under ideal batching. Treat those as ceilings, not expectations — sustained interactive speed on a single 4090 lands in the 15–25 tok/s band.
What You Need Before You Start
Regardless of path, provision this first:
- GPU: RTX 4090 24 GB (or 2× for the recommended Q4 path). Driver 550+ with CUDA 12.4 or newer.
- System RAM: 64 GB minimum. The Q4 offload path parks ~20 GB of weights in RAM; 32 GB will thrash.
- Storage: 60–90 GB free on NVMe. GGUF files stream from disk on first load.
- OS: Linux (Ubuntu 22.04/24.04) is fastest; Windows 11 with WSL2 works. Native Windows is fine for Ollama.
Confirm the GPU is visible before installing anything:
nvidia-smi --query-gpu=name,memory.total,driver_version --format=csvPath A — Fastest Setup with Ollama (Q4, Offloaded)
If you want a working chat in minutes and can tolerate 2–4 tok/s, Ollama is the shortest route. It auto-splits layers between GPU and CPU. It does not warn you that it is doing so.
- Install Ollama. On Linux:
curl -fsSL https://ollama.com/install.sh | sh. On Windows/macOS, download the installer from ollama.com. - Pull the model.
ollama pull llama3.3:70bfetches the Q4_K_M build (~43 GB). Expect a long download. - Run it.
ollama run llama3.3:70b. Ollama offloads as many layers as fit into 24 GB and computes the rest on CPU. - Verify the split. While generating, run
ollama ps— a healthy single-4090 line reads something like55%/45% CPU/GPU. That CPU fraction is why you are seeing single-digit tok/s. - Cap the context to save VRAM. Create a Modelfile:
FROM llama3.3:70bthenPARAMETER num_ctx 4096, and build it withollama create llama33-4k -f Modelfile. A smaller KV cache lets one or two more layers stay on-GPU.
Verdict on Path A: correct answer only for offline, batch, or overnight jobs where quality matters more than latency. It is not an interactive experience.
Path B — Maximum GPU Residency with llama.cpp (IQ2_XS)
To get responsive generation from one card, you must make the model small enough to live in VRAM. That means a 2-bit importance-matrix quant and llama.cpp for fine-grained layer control.
- Build llama.cpp with CUDA.
git clone https://github.com/ggml-org/llama.cpp && cd llama.cpp, thencmake -B build -DGGML_CUDA=ON && cmake --build build --config Release -j. - Download an IQ2_XS GGUF. Bartowski's Llama-3.3-70B-Instruct-GGUF repo publishes it:
huggingface-cli download bartowski/Llama-3.3-70B-Instruct-GGUF --include "*IQ2_XS*" --local-dir ./models. - Load fully onto the GPU.
./build/bin/llama-server -m ./models/Llama-3.3-70B-Instruct-IQ2_XS.gguf -ngl 99 -c 4096 --host 0.0.0.0 --port 8080. The-ngl 99flag forces all layers to GPU;-c 4096keeps the KV cache small enough to fit alongside the ~21 GB of weights. - Watch VRAM headroom. Run
nvidia-smiduring load. You want ~1–2 GB free. If it OOMs, drop context to-c 2048or add--cache-type-k q8_0 --cache-type-v q8_0to shrink the KV cache. - Query it. The server exposes an OpenAI-compatible endpoint at
http://localhost:8080/v1/chat/completions.
Verdict on Path B: the best single-card compromise for interactive use. Accept that 2-bit weights measurably degrade reasoning and coding accuracy versus Q4 — for those tasks a 4-bit 32B-class model on the same 4090 often beats a 2-bit 70B.
Performance: What Speed to Actually Expect
Numbers below are single-token generation throughput measured on a 4090 with DDR5-6000 system RAM and a short prompt. Your mileage shifts with RAM speed, context length, and background load.
| Configuration | On-GPU weights | Prompt eval | Generation | First-token latency |
|---|---|---|---|---|
| Q4_K_M, Ollama offload | ~55% | ~40 tok/s | ~2–4 tok/s | 1.5–3 s |
| IQ3_XXS, partial offload | ~85% | ~120 tok/s | ~6–9 tok/s | ~1 s |
| IQ2_XS, all-GPU | 100% | ~600 tok/s | ~15–22 tok/s | <0.5 s |
| Q4_K_M, dual 4090 | 100% | ~700 tok/s | ~16–20 tok/s | <0.5 s |
The dual-4090 row is the punchline: two cards holding Q4_K_M entirely in VRAM deliver both full quality and the same interactive speed as a single-card 2-bit build. If you are pricing a purchase rather than working with hardware you already own, model that second card against a used 48 GB workstation GPU using our cost calculator before committing.
Tuning & Common Mistakes
- Don't leave context at 128K. Llama 3.3 supports a long context window, but a large KV cache eats the exact VRAM you need for weights. Start at 4K and raise only if a task demands it.
- Quantize the KV cache with
q8_0in llama.cpp to reclaim ~1–1.5 GB — often the difference between all-GPU and one spilled layer. - Ignore
num_gqatweaks copied from old blog posts. Modern Ollama and llama.cpp read grouped-query attention from the GGUF metadata; hand-set values silently break inference. - Close other VRAM consumers. A browser with hardware acceleration or a desktop compositor can hold 1–2 GB — enough to force an OOM on the IQ2_XS path.
- Re-benchmark after driver updates. CUDA 12.x point releases have shifted 70B throughput by 10–15% in both directions.
Once you have a working endpoint, you can plug it into automated comparisons: BestLLMfor publishes an open public API under CC BY 4.0 and an open-source MCP server so you can pull our quantization and throughput data straight into your own tooling. Cross-reference your measured tok/s against our benchmarks to confirm your setup is healthy.
Verdict — Should You Run 70B on One 4090?
Yes, with clear eyes about the trade-off. A single 4090 gives you either full quality at unusable speed, or usable speed at reduced quality — not both. Match the path to the job:
| Your situation | Recommended setup | Expected speed | Editorial verdict |
|---|---|---|---|
| Offline/batch, quality is king | Q4_K_M + Ollama offload | 2–4 tok/s | Acceptable |
| Interactive chat on one card | IQ2_XS via llama.cpp | 15–22 tok/s | Best single-card option |
| Coding/reasoning on one card | 4-bit 32B-class model instead | 30–45 tok/s | Often the smarter buy |
| You can add a second GPU | Dual 4090, Q4_K_M all-GPU | 16–20 tok/s | Recommended |
Our position: if 70B-class quality is non-negotiable and you want an interactive experience, a second 24 GB card is the correct investment — a 2-bit squeeze onto one 4090 sacrifices the very reasoning quality that makes the 70B worth running. For a single-card owner who wants speed today, a 4-bit 32B model frequently outperforms a 2-bit 70B on real tasks. Browse the full field in our model catalog and see how the tiers stack up in our local-LLM guides before you buy more hardware.
Frequently Asked Questions
Can you actually run Llama 3.3 70B on a single RTX 4090?
Yes, but with compromises. At the standard Q4_K_M tier the model needs ~42 GB and must offload ~20 GB to system RAM, yielding only 2–4 tok/s. To keep it fully in the 24 GB of VRAM you must drop to a 2-bit IQ2_XS quant (~21 GB), which runs at 15–22 tok/s but with measurable quality loss.
How much VRAM does Llama 3.3 70B need?
About 42.5 GB for Q4_K_M weights, plus 2–3 GB of KV cache and overhead — roughly 46 GB total. A 2-bit IQ2_XS build shrinks the weights to ~21 GB, which fits a single 24 GB card at short context. Full 4-bit quality requires ~48 GB, i.e. two RTX 4090s.
What token speed should I expect on an RTX 4090?
Roughly 2–4 tok/s for Q4_K_M with CPU offload, 6–9 tok/s for IQ3_XXS partial offload, and 15–22 tok/s for IQ2_XS running entirely on the GPU. Two 4090s serving Q4_K_M reach 16–20 tok/s at full quality.
Is IQ2_XS quality good enough for real work?
For casual chat and summarization, usually. For coding, math, and multi-step reasoning, the 2-bit quantization causes visible accuracy drops — a 4-bit 32B-class model on the same card often produces better answers faster.
Should I use Ollama or llama.cpp?
Use Ollama for the quickest working setup and the full-quality Q4 offload path. Use llama.cpp when you need precise control — forcing all layers onto the GPU with -ngl 99, quantizing the KV cache, and tuning context to fit a 2-bit model entirely in VRAM.
Do I really need 64 GB of system RAM?
For the Q4 offload path, yes — about 20 GB of weights live in system RAM, and 32 GB leaves no headroom for the OS and cache. The all-GPU IQ2_XS path uses far less RAM, but 64 GB remains the safe baseline for flexibility.
For running local LLMs comfortably, an RTX 5070 Ti (16 GB VRAM) is the best value for money.
Amazon Check RTX 5070 Ti price →As an Amazon Associate, BestLLMfor earns from qualifying purchases, at no extra cost to you. It does not influence our independent rankings.