Tagline: Everything you need to run local LLMs on AMD RDNA 3 — software stacks that work, models that fit 16GB VRAM, and real performance numbers.


Purpose

What problem does this solve? Most local LLM guides assume NVIDIA CUDA. AMD users (RX 7800 XT, 16GB) get fragmented advice on Linux vs Windows, ROCm vs Vulkan, and which models actually fit. This guide consolidates everything for one specific, popular AMD card.

Who is it for? AMD GPU owners (especially RX 7800 XT / 16GB class) who want to run local LLMs without fighting the toolchain.

Hardware Specs

ComponentSpec
GPUAMD Radeon RX 7800 XT, 16GB GDDR6
Memory Bandwidth624 GB/s
Compute (FP16)~36.8 TFLOPS
CPURyzen 9 3900X (12C/24T, Zen 2)
RAM32GB DDR4
ArchitectureRDNA 3 (gfx1102)

Key Results / Achievements / Techniques / Concepts

  • Realistic performance: 48-96 t/s on 7-8B, 29 t/s on 13B, 15-35 t/s on 27-34B
  • ROCm 6.x has solid gfx1102 support; Windows works via TheRock or WSL2
  • Sweet spot: Qwen3.6-27B Q4_K_M (~17GB VRAM) — best quality-per-VRAM ratio

Tools & Technologies

Tool / TechnologyDescriptionPort / URL
OllamaEasiest local LLM runner, solid ROCm supportlocalhost:11434
llama.cppFastest inference engine, Vulkan + HIP backendsCLI / localhost:8080
LM StudioGUI-based model discovery + benchmarkingDesktop app
vLLMProduction-grade serving with PagedAttentionlocalhost:8000
ROCm 6.xAMD’s GPU compute platform (Linux)
TheRockCommunity ROCm build for Windows AMD GPUs
ObsidianKnowledge base & documentationLocal Vault

Software Stack Decision Tree

flowchart TD
    Start{Which OS?}
    Start -->|Linux| Linux{Experience level?}
    Start -->|Windows| Win{Workflow?}

    Linux -->|Beginner| Ollama_L[Ollama + Open WebUI]
    Linux -->|Intermediate| LM_L[LM Studio]
    Linux -->|Advanced| CPP_L[llama.cpp HIP/ROCm build]

    Win -->|Simple| Ollama_W[Ollama + Open WebUI]
    Win -->|GUI| LM_W[LM Studio Vulkan]
    Win -->|Performance| CPP_W[llama.cpp Vulkan build]
    Win -->|Dev| WSL[WSL2 + ROCm]

Model Recommendations by VRAM

Fits Entirely in 16GB VRAM (Q4_K_M)

ModelSize (Q4)Est. t/sUse Case
Llama 3.1/3.2 8B~5.5 GB60-96Fast chat, general purpose
Mistral 7B v0.3~4.5 GB70-100Fast, strong for its size
Qwen2.5 7B~5 GB60-90Strong reasoning, coding
Phi-4 14B~9 GB30-40Microsoft’s compact powerhouse
Gemma 2 9B~6 GB50-70Google, excellent instruction following
Qwen2.5 14B~9 GB25-35Best balance of speed+quality on 16GB
Qwen3.6-27B~17 GB~15-25Best quality, needs partial offload

Needs CPU Offloading (16GB VRAM + 64GB RAM)

ModelTotal SizeVRAM UseEst. t/sNotes
Qwen3-Coder-Next (80B/3B)~52 GBFull GPU10-20MoE — only 3B active per token
Gemma 2 27B~17 GBFull GPU + offload15-30Near full GPU fit at Q4
Qwen3.6-27B~17 GBFull GPU20-35Dense 27B, beats 397B MoE on coding
Mixtral 8x7B~26 GBPartial GPU15-25MoE — selective expert offload
Llama 3.1 70B~40 GBPartial GPU5-1564GB RAM makes hybrid viable

Performance Estimates (Research-Based)

ModelQ4_K_MGPU OnlyHybrid (GPU+CPU)Context
Llama 3B~2 GB130 t/sFastest small model
Llama 7B~4.5 GB48 t/sCommunity benchmarked
Qwen2.5 14B~9 GB29 t/sFits entirely
Gemma 2 27B~17 GB20-35 t/sBorderline full GPU
Qwen3.6-27B~17 GB15-25 t/sEdge case, tune carefully
Qwen3-Coder-Next~52 GB10-20 t/sMoE, CPU handles inactive experts
Llama 3.1 70B~40 GB5-15 t/s64GB RAM ideal for hybrid

Quantization Guide

FormatBits/WeightQualitySize vs FP16Recommendation
Q4_K_M~4.5Excellent~25%Sweet spot — start here
Q5_K_M~5.5Near-perfect~33%For quality-critical use
Q3_K_M~3.5Good~20%When you need max context
Q2_K~2.5Degraded~15%Only for fitting large models
Q8_0~8.5Near-lossless~53%Only with ample VRAM
FP1616Lossless100%Reference only, VRAM expensive

Setup Guides

# Install (Linux: ROCm auto-detected, Windows: DirectML)
ollama pull qwen3.6-27b
ollama pull phi-4
ollama pull llama3.2
 
# Test
ollama run qwen3.6-27b "Write a quick sort in Python"
 
# Serve for other apps
ollama serve

Option B: llama.cpp (Best Performance)

# Clone and build with HIP/ROCm support
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
cmake -B build -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1102
cmake --build build --config Release
 
# Run with full GPU offload
./build/bin/llama-cli -m Qwen3.6-27B-Q4_K_M.gguf -n 2048 -ngl 99
 
# Run with partial offload (e.g., 20 layers on GPU, rest on CPU)
./build/bin/llama-cli -m Llama-3.1-70B-Q4_K_M.gguf -n 2048 -ngl 20 -t 24

Option C: LM Studio (GUI + Easy Benchmarking)

  • Download from lmstudio.ai
  • ROCm/Vulkan auto-detection on modern builds
  • Built-in benchmark tool for t/s testing
  • Model browser + one-click download

Optimizations

TechniqueHowBenefit
Layer Offloading-ngl N in llama.cppBalance GPU VRAM vs CPU speed
KV Cache Quantization--cache-type-k q8_0Reduce KV cache VRAM by ~50%
Context Length-c 4096 for 16GB, -c 8192 with 64GB RAMLonger conversations
Thread Count-t 24 (matches 3900X cores)Max CPU throughput for offloaded layers
Batch Size--ubatch-size 512Better GPU utilization for prompt processing
Flash AttentionROCm 6.x + llama.cpp HIP buildFaster attention, less memory

Decision Heuristics

If you need…Start with…Why
Fast local chat7B-14B Q4_K_M in OllamaLeast setup friction and high tokens/sec
Better coding/reasoning14B-27B Q4_K_M in llama.cppMore control over context, layers, and cache
Maximum privacy RAGLocal embeddings + 7B-14B generatorKeeps documents and prompts on-device
Large-model experimentsHybrid CPU/GPU offload64GB RAM makes partial offload viable, but slower
Reproducible blog claimsllama-bench + VRAM screenshotsTurns estimates into publishable evidence

Common Pitfalls

ProblemSymptomFix
ROCm not detecting GPUrocm-smi shows no devicesSet HSA_OVERRIDE_GFX_VERSION=11.0.0
VRAM overflowLLM crashes with CUDA OOM equivalentReduce context (-c 2048), use Q4_K_M
Windows ROCm issuesPoor performance or crashesUse TheRock community builds or WSL2
Thermal throttlingt/s drops after 5-10 minUndervolt GPU, improve case airflow
Model not respondingOllama hangsCheck VRAM usage — likely OOM with too much context

Reflections & Lessons Learned

Key Takeaways

  • Qwen3.6-27B at Q4_K_M is the best model for this case — it’s a dense 27B that beats 397B MoE models on coding benchmarks and fits at the edge of 16GB VRAM
  • Linux + ROCm is the most stable path for AMD. Windows is workable via Vulkan (llama.cpp) or WSL2, but not optimal
  • Start with Ollama, graduate to llama.cpp — Ollama gives you instant results, llama.cpp gives you every tuning knob

Realistic Expectations

  • 30B+ models require partial CPU offload — Q4_K_M of a 27B model uses ~17GB, leaving almost no room for KV cache
  • ROCm stability varies by Linux distribution — Ubuntu 22.04/24.04 is the safest bet

Future Roadmap - Potential Applications

  • Run real benchmarks on this hardware — publish actual t/s, VRAM usage, and model quality scores
  • Test Qwen3-Coder-Next in hybrid mode (GPU for active experts, CPU for inactive)
  • Compare vLLM vs llama.cpp vs Ollama serving performance on the same models