AMD ROCm Setup for Local LLMs: Radeon, Strix Halo, MI300X
Want to go deeper than this article?
Free account unlocks the first chapter of all 25 courses — RAG, agents, MCP, voice AI, MLOps, real GitHub repos.
Got the hardware sorted? Now build on it. You know what to buy — the courses show you what to actually run, fine-tune, and ship on it. First chapter free, no card.
TL;DR: Yes, you can run local LLMs on AMD GPUs. Install AMD's ROCm v7 driver on Ubuntu (Ollama's docs require it on Linux), then Ollama, llama.cpp or vLLM detect the GPU. A Radeon RX 7900 XTX (24GB, 960 GB/s) has a decode ceiling of ~195 tok/s on Llama 3.1 8B Q4_K_M (4.9GB), within about 5% of an RTX 4090's ~205 tok/s ceiling; both are bandwidth ceilings, not measurements, and real engines land well below them. For cards Ollama does not list, set HSA_OVERRIDE_GFX_VERSION.
Updated November 2, 2026: AMD's release history now lists ROCm 7.14.0 (July 15, 2026) and 7.14.1 (September 2, 2026), plus a new ROCm Core SDK line, 10.0.0 (August 26) and 10.1.0 (October 5, 2026), built with AMD's TheRock system. ROCm 7.2.0 shipped on January 21, 2026. Ollama's own docs ask for the "AMD ROCm v7 driver" on Linux, which the 7.2.4 quick-start commands below install. Every speed on this page is a labelled bandwidth ceiling (vendor memory bandwidth divided by the model file size), and prices are dated. If you just want the model list for a 7900 XTX, see best AI models for the RX 7900 XTX; if you are deciding whether to buy one, see the RX 7900 XTX local AI guide.
AMD ROCm has become a credible alternative to NVIDIA CUDA for local LLM inference. Token generation is limited by memory bandwidth, and on that measure AMD's 24GB card sits within a few percent of NVIDIA's. Strix Halo (Ryzen AI Max+ 395) puts 128GB of unified memory in a mini-PC, enough to hold a 70B model at Q4 or Q8. And the MI300X, with 192GB of HBM3 at 5.3 TB/s, has more memory and bandwidth than an H100 (80GB, 3.35 TB/s).
This guide covers installing ROCm, configuring your GPU, running Ollama / llama.cpp / vLLM / PyTorch on AMD, FlashAttention support, bandwidth ceilings versus CUDA cards, and the common gotchas, across Radeon RX 7000/9000-series, Strix Halo and CDNA 3 (MI300X / MI325X).
Table of Contents
- The State of ROCm in 2026
- Supported AMD Hardware
- ROCm vs CUDA: What's Actually Different
- Installation: Ubuntu, Fedora, WSL2
- Verifying Your Install
- Ollama on ROCm
- llama.cpp on ROCm
- vLLM on ROCm
- PyTorch on ROCm
- FlashAttention on AMD
- Quantization on ROCm
- Tuning the Radeon RX 7900 XTX
- Strix Halo / Ryzen AI Max+ 395
- MI300X / MI325X for Servers
- HSA_OVERRIDE_GFX_VERSION: Unofficial Cards
- Performance Benchmarks
- Troubleshooting
- FAQ
Reading articles is good. Building is better.
Free account = the first chapter of all 25 courses, with a per-chapter AI tutor. No card.
The State of ROCm in 2026
For two years AMD users were second-class citizens in local AI. That changed through 2024-2026. Today:
- Ollama, llama.cpp, vLLM, PyTorch, JAX and Triton all ship ROCm builds; ROCm 10.1's release notes list PyTorch 2.14.0 and vLLM 0.29.0.
- Ollama's supported list (its GPU docs) covers the RX 6800 through RX 9070 series, Radeon PRO W7000, Ryzen AI Max+ 395 and Instinct MI100-MI350X.
- FlashAttention-2 has a ROCm implementation for CDNA 3 and RDNA 3/4.
- Strix Halo / Ryzen AI Max+ put 128GB of unified memory on a desktop platform.
- MI300X (192GB HBM3, 5.3 TB/s) has more memory and bandwidth than an H100 SXM (80GB, 3.35 TB/s) on AMD's and NVIDIA's spec sheets.
- Radeon RX 7900 XTX has a decode ceiling within ~5% of an RTX 4090 (960 vs 1,008 GB/s). Its price has risen with the memory shortage: $1,820.99 new (Amazon, listed October 17, 2026) and $1,175 used (eBay) on videocardprices.com on November 2, 2026, against a $999 launch price.
What still lags: training tooling parity, FP8 on consumer cards (hardware on RDNA 4, absent on RDNA 3), some xformers paths, CUDA-only projects, and a few framework kernels.
For pure inference, ROCm is a real choice. For training large models, NVIDIA still has the deeper ecosystem.
ROCm versions in 2026
AMD's ROCm release history (rocm.docs.amd.com, read November 2, 2026):
| Version | Release date |
|---|---|
| 7.2.0 | January 21, 2026 |
| 7.2.4 | May 29, 2026 |
| 7.14.0 | July 15, 2026 |
| 7.14.1 | September 2, 2026 |
| 10.0.0 (ROCm Core SDK) | August 26, 2026 |
| 10.1.0 (ROCm Core SDK) | October 5, 2026 |
What changed that matters for local LLMs:
- The 7.x line. ROCm 7.2 brought official RDNA 4 (RX 9070 / 9070 XT, gfx1200/gfx1201) support and Windows builds alongside Linux; Ollama now requires a ROCm v7 driver.
- TheRock. ROCm 10.1's release notes say that "since ROCm 7.14, ROCm uses TheRock as its build and release system." The 10.x Core SDK installs from a new repository (
stable.repo.amd.com) with per-architecture packages such asamdrocm10.1-gfx1100, or as pip wheels. - Wider OS and device coverage. The 10.1 notes list Ubuntu 26.04.1, Windows 11 25H2 for Radeon and Ryzen, the RX 7900 series (gfx1100), RX 9070 series (gfx1201) and Strix Halo (gfx1151).
Practical guidance: for Ollama or llama.cpp on a Radeon card, install the ROCm v7 driver with AMD's quick-start below. Reach for the 10.x Core SDK when you build software against ROCm yourself (PyTorch, vLLM from source). Pin whichever version rocminfo reports clean for your card.
Supported AMD Hardware
Supported AMD hardware
Rows marked with a gfx target match Ollama's Linux support list and AMD's ROCm hardware tables.
| GPU / APU | Architecture | gfx | VRAM | Best For |
|---|---|---|---|---|
| Radeon RX 7900 XTX | RDNA 3 (Navi 31) | gfx1100 | 24 GB | Best Radeon for LLMs |
| Radeon RX 7900 XT | RDNA 3 | gfx1100 | 20 GB | Mid-range LLM |
| Radeon RX 7900 GRE | RDNA 3 | gfx1100 | 16 GB | 14B models |
| Radeon RX 9070 XT | RDNA 4 (Navi 48) | gfx1201 | 16 GB | Supported since ROCm 7.2; FP8 hardware |
| Radeon Pro W7900 | RDNA 3 | gfx1100 | 48 GB | Workstation 70B |
| Radeon Pro W7800 | RDNA 3 | gfx1100 | 32 GB | Workstation 32B |
| Ryzen AI Max+ 395 | RDNA 3.5 + Zen 5 | gfx1151 | up to 128 GB unified | 70B in mini-PC |
| MI210 | CDNA 2 | gfx90a | 64 GB HBM2e | Server inference |
| MI250 / 250X | CDNA 2 | gfx90a | 128 GB HBM2e | Multi-GPU server |
| MI300A | CDNA 3 + Zen 4 | gfx940 | 128 GB HBM3 | APU server |
| MI300X | CDNA 3 | gfx942 | 192 GB HBM3 | 70B at FP16 on one GPU |
| MI325X | CDNA 3 | gfx942 | 256 GB HBM3e | Largest CDNA 3 memory |
Supported by Ollama without an override, and cards that need one
Ollama's GPU docs (read November 2, 2026) list these LLVM targets as supported on Linux, so no override is needed:
| GPU | gfx | Override |
|---|---|---|
| RX 6800 / 6800 XT / 6900 XT / 6950 XT | gfx1030 | none needed |
| RX 7800 XT / 7700 XT / 7700 | gfx1101 | none needed |
| RX 7600 / 7600 XT | gfx1102 | none needed |
| RX 9070 / 9070 GRE / 9060 series | gfx1200 / gfx1201 | none needed |
| Ryzen AI 9 HX 370-class (Strix Point) | gfx1150 | none needed |
| Ryzen AI Max+ 395 (Strix Halo) | gfx1151 | none needed |
| RX 6700 XT / 6750 XT | gfx1031 | 10.3.0 |
| RX 6600 / 6650 XT | gfx1032 | 10.3.0 |
| Ryzen 7040/8040 (780M iGPU) | gfx1103 | 11.0.0 (closest supported target, gfx1100) |
The override rows work for inference on Ollama / llama.cpp but are unsupported. See HSA_OVERRIDE_GFX_VERSION below. If your card predates this table entirely — Vega, Polaris — no override will save you and the practical route is a Vulkan backend instead of ROCm; the MLC-LLM cross-platform setup guide walks through that path.
ROCm vs CUDA: What's Actually Different
| Concept | NVIDIA CUDA | AMD ROCm |
|---|---|---|
| Compute API | CUDA C++ | HIP (CUDA-source-compatible) |
| Driver | nvidia-smi | rocm-smi |
| Math library | cuBLAS | hipBLAS / rocBLAS |
| DNN library | cuDNN | MIOpen |
| Collective comms | NCCL | RCCL |
| Profiler | Nsight Systems / Compute | rocprof / Omniperf |
| Compiler | nvcc | hipcc |
| Container runtime | nvidia-container-toolkit | rocm-container-runtime |
| Tensor core equivalent | Tensor Cores | Matrix Cores (CDNA), WMMA (RDNA) |
| FP8 | Ada / Hopper / Blackwell | MI300X (CDNA 3), RDNA 4 hardware; RDNA 3 lacks |
The good news: HIP is mostly source-compatible with CUDA. hipify translates CUDA code automatically, so most frameworks ship both backends from the same codebase.
The bad news: kernels hand-tuned for NVIDIA Tensor Cores (FlashAttention-3, fused MoE kernels, etc.) need separate AMD implementations and tend to lag.
Run this on your own machine and stop paying every month
Pay once and keep it. No renewal, no per-token bill, and nothing you feed it ever leaves your hardware.
Installation: Ubuntu, Fedora, WSL2
Version note (November 2, 2026): Ollama's docs require the AMD ROCm v7 driver on Linux. The commands below are AMD's ROCm quick-start for Ubuntu 24.04 (ROCm 7.2.4), read on November 2, 2026. The newer ROCm Core SDK 10.1.0 installs from a different repository; see the box after this block.
Ubuntu 22.04 / 24.04 (recommended)
# 1. Register AMD's repository (Ubuntu 24.04; use jammy instead of noble for 22.04)
wget https://repo.radeon.com/amdgpu-install/7.2.4/ubuntu/noble/amdgpu-install_7.2.4.70204-1_all.deb
sudo apt install ./amdgpu-install_7.2.4.70204-1_all.deb
sudo apt update
# 2. Kernel driver
sudo apt install "linux-headers-$(uname -r)" "linux-modules-extra-$(uname -r)"
sudo apt install amdgpu-dkms
# 3. ROCm and GPU access for your user
sudo apt install python3-setuptools python3-wheel
sudo usermod -a -G render,video $LOGNAME
sudo apt install rocm
# Reboot
sudo reboot
The older amdgpu-install --usecase=rocm route still exists on the 6.x and 7.x installer packages if you prefer it.
ROCm Core SDK 10.1 (TheRock). AMD's current install page (rocm.docs.amd.com/en/latest/install/rocm.html) uses a new apt repository at https://stable.repo.amd.com/rocm/core/packages/ubuntu2404/ with a keyring at /etc/apt/keyrings/amdrocm.gpg, then per-architecture packages such as sudo apt install amdrocm10.1-gfx1100 for an RX 7900-series card. The kernel driver comes separately from the amdgpu-install 31.60 package (https://repo.radeon.com/amdgpu-install/31.60/ubuntu/noble/amdgpu-install_31.60.316000-1_all.deb). Copy the repository block from AMD's page rather than retyping it.
Fedora 39+
sudo dnf install rocm-hip rocm-hip-devel rocm-comgr rocm-runtime
sudo usermod -aG render,video $USER
sudo reboot
WSL2 (Windows 10/11)
AMD's ROCm 10.1 release notes list Windows 11 25H2 as supported for Radeon and Ryzen, and Ollama runs natively on Windows on the RX 7600-7900 XTX with a ROCm v7 / HIP7-capable driver, so WSL2 is no longer the only option. The same release notes describe ROCm workloads under WSL2 as a technical preview. WSL2 uses the AMD Software: Adrenalin Edition driver on the Windows side; the commands below are the older 6.2 WSL usecase, which still installs.
# Inside WSL2 Ubuntu 22.04
wget https://repo.radeon.com/amdgpu-install/6.2/ubuntu/jammy/amdgpu-install_6.2.60200-1_all.deb
sudo apt install ./amdgpu-install*.deb
sudo amdgpu-install -y --usecase=wsl,rocm --no-dkms
Critical: --no-dkms because WSL uses the Windows driver. Skip the Linux kernel module install.
Docker
docker run -it --rm \
--device /dev/kfd --device /dev/dri \
--group-add video --group-add render \
--security-opt seccomp=unconfined \
rocm/dev-ubuntu-22.04:6.2 bash
The /dev/kfd (Kernel Fusion Driver) and /dev/dri devices are how ROCm reaches the GPU.
Verifying Your Install
# Should list your GPU
rocminfo | grep -A 5 "Agent"
# GPU utilization, temp, power
rocm-smi
# Detailed
rocm-smi --showallinfo
Expected output for a Radeon RX 7900 XTX:
Agent 2
*******
Name: gfx1100
Marketing Name: Radeon RX 7900 XTX
Vendor Name: AMD
Feature: KERNEL_DISPATCH
...
If you see only gfx000 or no agents, your driver did not load — check dmesg | grep amdgpu.
Ollama on ROCm
Ollama ships ROCm libraries and auto-detects supported GPUs.
curl -fsSL https://ollama.com/install.sh | sh
The installer prints the detected backend. Supported cards (RX 6800 through RX 9070, Strix Halo) need nothing else. For a card outside Ollama's list:
# RX 6700 XT / 6750 XT (gfx1031) or RX 6600-series (gfx1032)
HSA_OVERRIDE_GFX_VERSION=10.3.0 ollama serve
# Set persistently in systemd
sudo mkdir -p /etc/systemd/system/ollama.service.d
sudo tee /etc/systemd/system/ollama.service.d/override.conf <<EOF
[Service]
Environment="HSA_OVERRIDE_GFX_VERSION=10.3.0"
EOF
sudo systemctl daemon-reload
sudo systemctl restart ollama
Verify GPU is being used:
ollama run llama3.1:8b "hi"
# In another terminal:
rocm-smi
# Should show >0% GPU utilization during inference
ollama ps
# PROCESSOR should read 100% GPU
llama.cpp on ROCm
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
# Build with HIP backend
HIPCXX="$(hipconfig -l)/clang" \
HIP_PATH="$(hipconfig -R)" \
cmake -B build \
-DGGML_HIP=ON \
-DAMDGPU_TARGETS=gfx1100 \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./build/bin/llama-cli -m model.gguf -ngl 999 -fa
AMDGPU_TARGETS should match your GPU's gfx version. For multiple GPUs, use gfx1100;gfx1101.
llama.cpp Vulkan (alternative)
For unsupported AMD GPUs, the Vulkan backend works on anything with Vulkan 1.2:
cmake -B build-vk -DGGML_VULKAN=ON
cmake --build build-vk -j
Vulkan is often a little slower than HIP/ROCm on cards ROCm supports, but it works on RX 5000-series, Intel Arc, and many integrated GPUs; benchmark both on your card with llama-bench. See our Intel Arc A770 guide for similar patterns.
vLLM on ROCm
docker pull rocm/vllm:latest
docker run --device /dev/kfd --device /dev/dri \
--group-add video --group-add render \
--security-opt seccomp=unconfined \
--shm-size 16G \
-p 8000:8000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
rocm/vllm:latest \
vllm serve meta-llama/Llama-3.1-8B-Instruct \
--max-model-len 16384
For supported AWQ quantization on RDNA 3:
vllm serve casperhansen/llama-3.1-8b-instruct-awq \
--quantization awq \
--max-model-len 16384
FP8 weights work on MI300X/MI325X but not on RDNA 3. INT8 (W8A8) works on both.
For full vLLM tuning, see our vLLM Complete Setup Guide — most flags are identical between CUDA and ROCm.
PyTorch on ROCm
# Stable wheel for ROCm 6.2
pip install torch torchvision --index-url https://download.pytorch.org/whl/rocm6.2
# Verify
python -c "import torch; print(torch.cuda.is_available(), torch.cuda.get_device_name(0))"
torch.cuda.is_available() returns True even on AMD because the HIP runtime maps to the CUDA API. torch.version.hip returns the ROCm version.
Hugging Face Transformers
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained(
"meta-llama/Llama-3.1-8B-Instruct",
torch_dtype=torch.bfloat16,
device_map="auto",
)
Most Hugging Face models work unchanged. Exceptions: anything that imports xformers (use attn_implementation="sdpa" instead) or bitsandbytes (use AWQ / GPTQ instead, or the bitsandbytes-rocm fork).
FlashAttention on AMD
RDNA 3 (RX 7900-series)
git clone https://github.com/ROCm/flash-attention
cd flash-attention
GPU_ARCHS="gfx1100" python setup.py install
This is AMD's fork; upstream FlashAttention-2 also has CK (Composable Kernel) support. Check the fork's README for which RDNA targets it currently builds for.
CDNA 3 (MI300X)
pip install flash-attn --no-build-isolation
Upstream FlashAttention-2 supports MI300X via CK kernels in v2.5+.
Use in llama.cpp / vLLM / PyTorch
- llama.cpp:
-faflag (auto-detected) - vLLM: auto-detected
- PyTorch:
torch.nn.functional.scaled_dot_product_attentionautomatically uses FlashAttention when shapes are favorable
Performance impact
| Workload | RX 7900 XTX (no FA) | RX 7900 XTX (FA2) | What changes |
|---|---|---|---|
| Llama 3.1 8B, 8K ctx | not measured | not measured | Small effect on decode; prompt processing is faster |
| Llama 3.1 8B, 16K ctx | not measured | not measured | Attention memory drops, so more context fits beside the weights |
| Llama 3.1 8B, 32K ctx | not measured | not measured | Long contexts that would run out of VRAM can fit |
We have not measured FlashAttention on a 7900 XTX, so this table gives the mechanism rather than numbers. Decode speed is capped by memory bandwidth either way (~195 tok/s ceiling for the 4.9GB Llama 3.1 8B Q4_K_M at 960 GB/s); FlashAttention mostly cuts attention memory and speeds up long prompts. Measure your own card with llama-bench -fa 0,1.
Same pattern as NVIDIA: FlashAttention matters most at long context.
Quantization on ROCm
| Format | RDNA 3 (RX 7900) | RDNA 4 (RX 9070) | CDNA 3 (MI300X) |
|---|---|---|---|
| FP16 / BF16 | ✅ | ✅ | ✅ |
| FP8 | ❌ | ⚠️ HW yes, SW WIP (Navi 48) | ✅ (E4M3, E5M2) |
| INT8 (W8A8) | ✅ | ✅ | ✅ |
| AWQ-INT4 | ✅ | ✅ | ✅ |
| GPTQ-INT4 | ✅ | ✅ | ✅ |
| GGUF Q4_K_M / Q5_K_M | ✅ (llama.cpp) | ✅ | ✅ |
For RDNA 3, AWQ-INT4 with vLLM or Q5_K_M / Q4_K_M with llama.cpp are the practical defaults. For MI300X, FP8 + AWQ-INT4 + INT8 W8A8 all work.
RDNA 4 FP8 caveat: the RX 9070 / 9070 XT (gfx1201) has native FP8 hardware, but framework support for FP8 kernels on consumer RDNA 4 has trailed the MI300X path. Check your vLLM version's ROCm notes before relying on it. The most reliable RX 9070 XT inference path is llama.cpp / Ollama (HIP or Vulkan) with GGUF Q4_K_M / Q5_K_M.
See AWQ vs GPTQ vs GGUF for the underlying theory.
Tuning the Radeon RX 7900 XTX
Power and thermals
# Cap board power at 290W (AMD lists 355W typical board power)
# Decode is bandwidth-bound, so a moderate cap often costs little speed; measure it
sudo rocm-smi --setpoweroverdrive 290
# Lock GPU clock for predictable latency
sudo rocm-smi --setperflevel high
# Fan curve
sudo rocm-smi --setfan 70%
llama.cpp recipe
./build/bin/llama-server \
-m llama-3.1-8b-instruct-q5_k_m.gguf \
-ngl 999 \
-c 16384 \
-fa \
--cache-type-k q8_0 --cache-type-v q8_0 \
-t 8 \
--host 0.0.0.0 --port 8080
vLLM recipe
vllm serve casperhansen/llama-3.1-8b-instruct-awq \
--quantization awq \
--max-model-len 16384 \
--gpu-memory-utilization 0.92 \
--enable-prefix-caching \
--enable-chunked-prefill \
--max-num-batched-tokens 8192
Multi-GPU 7900 XTX
# llama.cpp tensor split for 2x 7900 XTX
./llama-cli -m 70b-q4.gguf -ngl 999 --tensor-split 24,24
# vLLM TP=2
vllm serve <70b-awq-model> --tensor-parallel-size 2 --quantization awq
7900 XTX does not support NVLink/Infinity Fabric Link, so multi-GPU is PCIe-only (PCIe 4.0 x16 is 32 GB/s per direction on paper). With llama.cpp's default layer split, the cards take turns, so the single-stream ceiling for a 70B Q4_K_M (42.5GB) stays at one card's bandwidth: ~23 tok/s ceiling (960 / 42.5). Tensor parallelism in vLLM can do better, but PCIe traffic limits the gain; measure it on your board.
Strix Halo / Ryzen AI Max+ 395
The most interesting AMD platform of 2025-2026 for local AI.
Hardware
- CPU: Zen 5, 16 cores / 32 threads, up to 5.1 GHz boost
- GPU: RDNA 3.5, 40 CUs, gfx1151 — marketed as the Radeon 8060S iGPU
- Memory: Up to 128 GB LPDDR5X-8000 over a 256-bit bus, ~256 GB/s theoretical; up to 96 GB assignable to graphics via AMD Variable Graphics Memory (more on Linux)
- NPU: XDNA 2, 50 TOPS per AMD (separate accelerator)
- Power: 55-120W configurable
- Form factor: Mini-PC (Framework Desktop, Asus, HP, GMKtec) and laptops
For a full platform deep-dive (model fits, BIOS VRAM allocation and buying advice) see our dedicated Ryzen AI Max+ 395 / Strix Halo guide.
Why it matters
128 GB of unified memory holds models no consumer NVIDIA card can: Llama 3.1 70B at Q4_K_M (42.5GB in Ollama) or Q8_0 (75GB) fits with room for context. A 70B at FP16 (141GB) does not fit. The catch is bandwidth: at ~256 GB/s, a dense 70B has a low decode ceiling, so the platform is at its best with MoE models that read few active parameters per token, such as gpt-oss:120b (65GB, 5.1B active). On November 2, 2026, 128GB Strix Halo systems listed at $3,919 (Minisforum MS-S1 Max) and $4,349 (Beelink) on their vendor stores, with the Framework Desktop out of stock. The closest alternative is a high-memory Mac; compare them in our DGX Spark vs Strix Halo vs Mac Studio guide.
Setup
# No override needed: Ollama's docs list the Ryzen AI Max+ 395 (gfx1151) as supported
# Ryzen APUs on Ubuntu 24.04.4+ use the inbox kernel driver (AMD install docs)
# ROCm user-space for building other software (ROCm Core SDK 10.1 package for gfx1151)
sudo apt install amdrocm10.1-gfx1151 # after adding AMD's stable.repo.amd.com repository
# Reserve memory for the iGPU in BIOS (UMA / VGM setting)
# Windows allows up to 96GB; Linux can map more through GTT
Performance (Llama 3.1 70B)
Bandwidth ceilings at ~256 GB/s, using the file sizes Ollama lists for each llama3.1:70b tag:
| Quant | tok/s | Notes |
|---|---|---|
| BF16 / FP16 (141GB) | does not fit | Larger than 128GB of unified memory |
| Q8_0 (75GB) | ~3 tok/s ceiling | Fits, with room for context |
| Q5_K_M (50GB) | ~5 tok/s ceiling | Good balance of quality and size |
| Q4_K_M (42.5GB) | ~6 tok/s ceiling | Smallest common build |
| AWQ-INT4 (vLLM) | ~6 tok/s ceiling | Similar ~4-bit size; vLLM on gfx1151 is newer territory |
These are upper bounds (bandwidth / file size), not measurements. For comparison, 2x RTX 4090 with a layer split has a ~24 tok/s ceiling on the same Q4_K_M file (1,008 GB/s / 42.5GB) at much higher cost and power. Strix Halo's case is capacity per dollar and per watt, not speed on dense 70B models.
Caveats
- LPDDR5X bandwidth (~256 GB/s) is much lower than a 24GB discrete card (936-1,008 GB/s), so on models that fit in 24 GB the decode ceiling is roughly a quarter of a discrete GPU's.
- GPU and CPU share the memory bus — heavy CPU workloads steal bandwidth from inference.
- Long prompt prefill is slower than on discrete GPUs because the 40-CU iGPU has far less compute.
MI300X / MI325X for Servers
Specs
| GPU | VRAM | Bandwidth | Compute (FP16/BF16) | Compute (FP8) |
|---|---|---|---|---|
| MI300X | 192 GB HBM3 | 5.3 TB/s | 1.3 PFLOPS | 2.6 PFLOPS |
| MI325X | 256 GB HBM3e | 6.0 TB/s | 1.3 PFLOPS | 2.6 PFLOPS |
| H100 SXM | 80 GB HBM3 | 3.35 TB/s | 0.99 PFLOPS | 1.98 PFLOPS |
| H200 SXM | 141 GB HBM3e | 4.8 TB/s | 0.99 PFLOPS | 1.98 PFLOPS |
| B200 SXM | 180-192 GB HBM3e | 8.0 TB/s | ~2.25 PFLOPS | 4.5 PFLOPS |
Vendor spec sheets (AMD Instinct and NVIDIA data-center pages), dense figures without sparsity.
Why MI300X wins on certain LLM workloads
LLM inference is memory-bandwidth-bound for decode and capacity-bound for long-context KV-cache. MI300X's 192 GB at 5.3 TB/s exceeds an H100's 80 GB at 3.35 TB/s on both axes. Where that shows up:
- Fewer GPUs per model. Llama 3.1 70B at FP16 (~141GB of weights) fits on one MI300X; on H100s it needs at least two. Llama 3.1 405B at FP8 (~405GB of weights) needs three or more MI300X versus six or more H100s, and is usually served on an 8-GPU node either way.
- Long-context (128K) inference — MI300X holds the KV cache without offload at large batch sizes.
- Multi-tenant servers — more concurrent requests fit per GPU.
vLLM on MI300X
docker run --device=/dev/kfd --device=/dev/dri \
--security-opt seccomp=unconfined --shm-size 32G \
--network=host \
rocm/vllm:latest \
vllm serve meta-llama/Llama-3.1-70B-Instruct \
--quantization fp8 \
--kv-cache-dtype fp8_e4m3 \
--tensor-parallel-size 1 \
--max-model-len 65536 \
--gpu-memory-utilization 0.93 \
--enable-prefix-caching
For 405B-class models on an 8x MI300X node, use --tensor-parallel-size 8 and ensure RCCL is configured:
export NCCL_DEBUG=WARN # RCCL respects NCCL_* vars
export RCCL_MSCCL_ENABLE=1 # MSCCL collective optimizations
HSA_OVERRIDE_GFX_VERSION: Unofficial Cards
Some Radeon cards outside ROCm's list work by reporting a nearby supported gfx version. ROCm ships kernels for officially-supported gfx versions; unsupported cards run those kernels by claiming a compatible architecture.
| Your GPU | Override Value |
|---|---|
| RX 6700 XT, 6750 XT (gfx1031) | 10.3.0 |
| RX 6600, 6600 XT, 6650 XT (gfx1032) | 10.3.0 |
| Ryzen 7040/8040 (780M iGPU, gfx1103) | 11.0.0 |
No override is needed for the RX 6800/6900/6950 XT, RX 7600-7900, RX 9060/9070, Strix Point or Strix Halo: Ollama's GPU docs list their targets as supported on Linux.
Set globally:
echo 'export HSA_OVERRIDE_GFX_VERSION=10.3.0' >> ~/.bashrc
Or per-application via systemd override (see Ollama section).
Risks: unsupported configurations can crash, hang, or silently produce wrong results on edge-case operations. For inference of standard Llama / Mistral / Qwen models the failure modes are usually clean (crashes, not silent wrong outputs). Do not use HSA override for production.
Performance Benchmarks
We do not publish measured tok/s for these cards. Each figure below is a bandwidth ceiling: the vendor's published memory bandwidth divided by the file size Ollama lists for the model (Llama 3.1 8B Q4_K_M = 4.9GB; Llama 3.1 70B Q4_K_M = 42.5GB). Real engines land well below the ceiling, but the ratios between cards hold, because decode is memory-bandwidth-bound.
Llama 3.1 8B
| GPU | tok/s | Power | $/perf |
|---|---|---|---|
| RTX 4090 (24GB, 1,008 GB/s) | ~205 tok/s ceiling | 450W TGP | price not re-read Nov 2026 |
| RTX 5080 (16GB, 960 GB/s) | ~195 tok/s ceiling | 360W TGP | price not re-read Nov 2026 |
| RX 7900 XTX (24GB, 960 GB/s) | ~195 tok/s ceiling | 355W TBP | $1,820.99 new / $1,175 used (Nov 2, 2026) |
| RX 7900 XT (20GB, 800 GB/s) | ~163 tok/s ceiling | 315W TBP | price not re-read Nov 2026 |
| RX 9070 XT (16GB, 640 GB/s, RDNA 4) | ~130 tok/s ceiling | 304W TBP | price not re-read Nov 2026 |
| RTX 3090 (24GB, 936 GB/s) | ~190 tok/s ceiling | 350W TGP | ~$1,499-1,606 used (Nov 1, 2026) |
| Strix Halo iGPU (~256 GB/s) | ~52 tok/s ceiling | 55-120W platform | system price; see above |
Price sources: RX 7900 XTX from videocardprices.com (lowest new: Amazon, listed October 17, 2026; used: eBay, November 2, 2026); RTX 3090 fair used range from resaleprices.com (November 1, 2026). Power is the vendor's board-power rating. The pattern: AMD's 24GB card matches NVIDIA's 24GB cards on bandwidth, while the 16GB RX 9070 XT trades bandwidth and capacity for a newer architecture and FP8 hardware.
Llama 3.1 70B Q4
| GPU | tok/s | Notes |
|---|---|---|
| 2x RTX 3090 NVLink (48GB) | ~22 tok/s ceiling | Layer split; one card's bandwidth per token |
| 2x RX 7900 XTX (48GB, no NVLink) | ~23 tok/s ceiling | Layer split over PCIe |
| 1x MI300X (192GB, 5.3 TB/s) | ~125 tok/s ceiling | Single GPU |
| Strix Halo (128GB unified, ~256 GB/s) | ~6 tok/s ceiling | Fits easily; bandwidth-limited |
| Mac Studio M4 Max (128GB, 546 GB/s) | ~13 tok/s ceiling | Reference |
MI300X is the clear throughput leader for 70B. For the home segment, the choice is capacity versus speed: two 24GB cards decode a 70B faster, while a 128GB unified-memory box holds bigger models at much lower power.
A note on the models above: the ceilings use Llama 3.1 8B / 70B because they are stable, widely reproduced reference points, but there are stronger open-weight options you'll actually want to run on these AMD cards, including Qwen3, DeepSeek, gpt-oss and Gemma. The bandwidth arithmetic carries over directly: divide your card's bandwidth by the model's file size (for MoE models, the active weights matter, so they run faster than their file size suggests). For current picks, see our best free local AI models roundup and the RX 7900 XTX model picks.
Troubleshooting
| Symptom | Likely Cause | Fix |
|---|---|---|
hipErrorNoBinaryForGpu | gfx mismatch | Set HSA_OVERRIDE_GFX_VERSION or rebuild with right AMDGPU_TARGETS |
| Ollama uses CPU only | Driver / group permissions | groups should include render+video; rocm-smi should list GPU |
HSAKMT_STATUS_KERNEL_ALREADY_OPENED | Old AMD kernel module | Reinstall amdgpu-dkms |
| Crashes mid-inference | Memory pressure / power | Lower -c context size, reduce --gpu-memory-utilization |
| Very slow on RX 7900 | Model partly on CPU, or FlashAttention off at long context | Check ollama ps reads 100% GPU; in llama.cpp build with HIP and pass -fa |
| WSL2 GPU not detected | Wrong driver | Install AMD Software for WSL on Windows host |
rocBLAS warnings | Architecture not in shipped tensile library | Run rocblas-bench --rebuild_tensile or use gfx1100-compatible override |
| Strix Halo OOM on a 70B | Memory not allocated to iGPU, or FP16 build (141GB) | Increase the iGPU reservation in BIOS; use Q4_K_M (42.5GB) or Q8_0 (75GB) |
| MI300X under-utilized | Not enough concurrency | Increase --max-num-seqs to 256+ in vLLM |
FAQ
See answers to common AMD ROCm questions below.
Sources: AMD ROCm Documentation | ROCm release history / versions | ROCm 7 — what's new | Ollama AMD support | vLLM ROCm Docker | llama.cpp HIP build instructions | AMD Ryzen AI Max+ 395 product page | AMD Instinct MI325X | AMD RX 7900 XTX specifications | ROCm install (Core SDK 10.1) | Prices: videocardprices.com and resaleprices.com, read November 1-2, 2026; Strix Halo systems from vendor stores, November 2, 2026.
Related guides on Local AI Master:
- Ryzen AI Max+ 395 / Strix Halo Guide
- AMD vs NVIDIA vs Intel AI GPU
- CUDA Optimization for Local LLMs
- vLLM Complete Setup Guide
- Best Free Local AI Models
- Best AI Models for the RX 7900 XTX
- RX 7900 XTX for Local AI
- Best GPUs for AI 2025
- Linux Local AI Setup
- Complete Ollama Guide
- Intel Arc A770 Local AI
Got the hardware sorted? Now build on it.
You know what to buy — the courses show you what to actually run, fine-tune, and ship on it. First chapter free, no card.
Decide before you spend a thousand pounds
The AI Hardware course sizes your build properly — VRAM ladder, real bottlenecks, budget builds — and Pick the Right Model tells you what to run on it.
Liked this? 25 full AI courses are waiting.
From fundamentals to RAG, agents, MCP servers, voice AI, and production deployment with real GitHub repos. First chapter free, every course.
Build Real AI on Your Machine
RAG, agents, NLP, vision, and MLOps - chapters across 25 courses that take you from reading about AI to building AI.
Want the structured version?
Hands-on courses on local AI, from $8.99 a month. The first chapter of each is free.
Keep going
- PILLARblog/best-ollama-models
- Free Ollama Models (Nov 2026): 10 Best, No API Key
- AI on Steam Deck: Run Local LLMs with Ollama on SteamOS
- Run Hermes Agent Locally with Ollama (2026 Setup Guide)
- Ollama Modelfile Guide: Syntax, Parameters, Real Examples
- Best Ollama Models for AI Agents 2026: Ranked by Tool Use
- Ollama + MCP: Connect Local AI to Files, GitHub, Postgres
- Ollama 500 Internal Server Error: Find the Cause
- Ollama Connection Refused on Port 11434: 8 Causes
- Ollama Not Working? Match the Error to the Real Fix
Comments (0)
No comments yet. Be the first to share your thoughts!
