---
title: Set up your PC for local AI on an AMD Radeon card
url: "https://bitworks.io/amd-inference/system-setup/"
description: "BIOS and Windows settings for local AI on a Radeon card: Resizable BAR, the PCIe link, drivers and power, and what to do when the PC is unstable."
---

# Set up your PC for local AI on an AMD Radeon card

> BIOS and Windows settings for local AI on a Radeon card: Resizable BAR, the PCIe link, drivers and power, and what to do when the PC is unstable.

Human-readable page: https://bitworks.io/amd-inference/system-setup/

## Content

Turn on Resizable BAR, put the card in its full-width slot with the link speed on Auto, and keep the whole model in the card's own memory. Do that, and the PCIe generation barely changes how fast a model answers: your drive sets how long a model takes to load, and the link matters a lot only when part of a model sits in system memory. If the PC is unstable, work through the troubleshooting order further down, one change at a time.

At a glance

- **Resizable BAR on:** CSM off, Above 4G Decoding on, Re-Size BAR on. It matters most for llama.cpp's Vulkan engine.

- **PCIe slot:** the slot your manual lists as x16, link speed on Auto. If the PC is unstable, or the link reads low while the card is busy, follow the troubleshooting order.

- **Loading (calculated):** the 16.46 GB RX 7900 XTX model needs at least 2.4 s from a PCIe 4.0 NVMe drive and 29.9 s from a SATA SSD, on any x16 link.

- **Answers, whole model on the card (calculated):** the link carries about 1 MB per request, well under a thousandth of a second at any PCIe generation.

- **Weights in system memory:** llama.cpp copies them over the link for every 512 prompt tokens, so a slow link can add seconds or minutes before the first word. FastLLM's recipes keep the whole model on the card.

- **Driver:** AMD Software: Adrenalin Edition. The HIP engine needs the driver AMD lists for its ROCm release.

- **Leave alone:** the GPU timeout (TDR), the page file (system-managed) and memory integrity.

- **Power:** at least AMD's recommended power supply. Inference holds the card at high load for long periods.

## How to read this page

These are the PC settings that affect speed and stability when you run a language model on an AMD Radeon card under Windows 11. They apply to local engines built on llama.cpp. FastLLM, which is in development, checks some of them for you. Each statement says where it comes from:

Label
What it means

**On our test PCs**
What we saw on our own test PCs. Measured results appear on the recipe pages, not here.

**Vendor documentation**
What AMD, Microsoft, a motherboard maker or a tool's developer states, with a link.

**Reported by users**
A public report we have not reproduced, with a link.

**Our recommendation**
Our judgment where no measurement settles the question.

**Calculated**
Arithmetic from published specifications and stated assumptions, with the formula. It gives a lower bound, not a measurement.

Before you change BIOS settings

Only change BIOS settings if you are comfortable doing so, and read your motherboard manual first. Neither Bitworks nor FastLLM changes BIOS, driver or Windows settings on your PC.

Ask Concierge, or a person

Where you see an **Ask** button, Concierge, our AI assistant, can help you apply that step to your own PC. The button opens it with a question already written: fill in your card, board and BIOS version, then send. It answers from this page and can bring in a person. It is an AI and can be wrong, so check its answer against the page. Prefer a person? [Contact us](https://bitworks.io/contact-us/).

## Quick checklist

Setting
What we recommend
Why

Resizable BAR
On: CSM off, Above 4G Decoding on, Re-Size BAR Support on
Engines run best with it on. FastLLM has a fallback if it is off

PCIe slot
The slot your manual lists as x16, link speed on Auto
The link sets how fast a model copies to the card and how fast any work shared with the CPU runs

PCIe generation
Auto; one generation lower only to fix a problem
Some risers, and some board firmware, can't hold the top speed

Motherboard BIOS
The latest from your board maker
Updates have fixed PCIe link problems on some boards

PCIe power management
Leave at the default
Turning it off is a test users report, not a vendor fix

Drive
An NVMe SSD for your model files
On an x16 card the drive, not the link, sets how long a model takes to load

AMD driver
AMD Software: Adrenalin Edition; we use the Minimal install
The HIP engine needs the driver AMD lists for its ROCm version

GPU timeout (TDR)
Leave at the Windows default
Microsoft says end users shouldn't change these registry keys

Page file
System-managed
Windows' memory limit is system memory plus the page file

Second graphics device
Check which device the engine uses
A model can land on a device you didn't intend

Power supply
At least AMD's recommendation for your card
Inference holds the card at high load for long periods

## Resizable BAR

### What it is

For compatibility with 32-bit systems, a graphics card normally gives the CPU a 256 MB window onto its memory. With Resizable BAR, Windows resizes that window to expose all of the card's memory ([Microsoft](https://learn.microsoft.com/en-us/windows-hardware/drivers/display/resizable-bar-support)). Smart Access Memory (SAM) is AMD's name for it on Ryzen and Radeon systems ([AMD](https://www.amd.com/en/gaming/technologies/smart-technologies.html)); Intel-based boards offer the same setting ([ASUS](https://edgeup.asus.com/2021/guide-how-to-enable-resizable-bar-on-your-asus-powered-gaming-pc/)). It needs support from the motherboard BIOS, the card's firmware and the driver ([ASUS](https://www.asus.com/us/support/faq/1046107/)).

Resizable BAR widens the CPU's window onto the card's memory from 256 MB to all of it. Drawing by Bitworks.

### Why it matters for local AI

By default, llama.cpp's Vulkan engine asks for card memory that the CPU can also reach, the "rebar" memory type, and falls back to memory only the card can reach. The GGML_VK_DISABLE_HOST_VISIBLE_VIDMEM setting makes it use card-only memory from the start ([llama.cpp source, build b10698](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/ggml/src/ggml-vulkan/ggml-vulkan.cpp)).

**On our test PCs.** Our test PCs now run with Resizable BAR on. Earlier, on a test PC with it off (an RX 7900 XTX), llama.cpp's Vulkan engine at its default settings processed prompts far more slowly, and generated text more slowly, than with the setting above applied. The slowdown varied between runs, and the same PC sometimes ran at normal speed. The [lab observation for that card](https://bitworks.io/amd-inference/recipes/rx-7900-xtx-24gb-windows-qwen3-8-27b-q4km/#lab-observation) was measured with the setting applied.

**Not yet measured.** We have not yet compared that card with Resizable BAR on against the workaround, so we can't say which is faster, or by how much. We also have not measured whether Resizable BAR changes speed on the HIP engine.

**Reported by users.** A [llama.cpp issue](https://github.com/ggml-org/llama.cpp/issues/28752) reports that, on Linux, a large drop in prompt speed on long prompts went away after Resizable BAR was turned on. Other users in the same issue saw a similar drop with it already on.

**Our recommendation.** Turn Resizable BAR on and check that it is on (below). This is the setting our test PCs use.

### Before you start: check how Windows boots

CSM off needs a UEFI install of Windows

Resizable BAR needs CSM (the BIOS's legacy boot support) turned off ([ASUS](https://www.asus.com/us/support/faq/1046107/)). Windows then has to start in UEFI mode from a GPT disk. If it doesn't, turning CSM off can leave the PC unable to start until that is fixed ([ASUS](https://edgeup.asus.com/2021/guide-how-to-enable-resizable-bar-on-your-asus-powered-gaming-pc/)). AMD officially supports only UEFI mode for RX 9000 series cards and later ([AMD](https://www.amd.com/en/resources/support-articles/faqs/GPU-N4XCSM.html)).

- **Check the boot mode.** Run **System Information** (msinfo32). **BIOS Mode** should read UEFI, not Legacy ([ASUS](https://edgeup.asus.com/2021/guide-how-to-enable-resizable-bar-on-your-asus-powered-gaming-pc/)).

- **Check the disk.** In **Disk Management**, open the Windows disk's **Properties**, then the **Volumes** tab. **Partition style** should read GUID Partition Table (GPT) ([Microsoft](https://learn.microsoft.com/en-us/windows/deployment/mbr-to-gpt)).

- **Convert only if needed.** If BIOS Mode reads Legacy or the disk is MBR, Microsoft's MBR2GPT tool converts the Windows disk to GPT; afterwards the BIOS must be set to start in UEFI mode. Suspend BitLocker first, and back up before you convert ([Microsoft](https://learn.microsoft.com/en-us/windows/deployment/mbr-to-gpt)).

### Turn it on in the BIOS

Option names and menus differ between motherboard makers and BIOS versions. This drawing shows the three settings on a typical UEFI BIOS:

123

- **CSM (Compatibility Support Module): Disabled.** Usually on the Boot tab; some makers call it Launch CSM or CSM Support.

- **Above 4G Decoding: Enabled.** Lets 64-bit capable devices, such as the graphics card, be mapped above the 4 GB address space.

- **Re-Size BAR Support: Auto or Enabled.** The values differ by maker. On some boards it appears only after Above 4G Decoding is enabled.

A typical UEFI BIOS with the three settings marked. A generic drawing by Bitworks, not any maker's screen; menu names vary.

Sources: CSM, [AMD](https://www.amd.com/en/resources/support-articles/faqs/GPU-N4XCSM.html) and [ASRock](https://www.asrock.com/support/faq.asp?id=498); Above 4G Decoding and when Re-Size BAR appears, [ASUS AM5 BIOS manual, p.50](https://dlcdnets.asus.com/pub/ASUS/mb/13MANUAL/PRIME_PROART_TUF_GAMING_AMD_AM5_Series_BIOS_EM_WEB_EN.pdf#page=50); Re-Size BAR values, [ASUS](https://edgeup.asus.com/2021/guide-how-to-enable-resizable-bar-on-your-asus-powered-gaming-pc/) and [MSI](https://web.archive.org/web/20250924034850/https://us.msi.com/faq/faq-4197).

- **Update the BIOS.** Install the latest BIOS for your motherboard ([ASUS](https://www.asus.com/us/support/faq/1046107/)).

- **Turn CSM off.** In the **Boot** menu, set **CSM** or **Launch CSM** to **Disabled**.

- **Turn on Above 4G Decoding.** Set it to **Enabled**.

- **Turn on Resizable BAR.** Set **Re-Size BAR Support** to **Auto** or **Enabled**. ASRock calls it **C.A.M.**; ASUS's simple BIOS view has a single **Resize BAR** switch ([ASRock](https://www.asrock.com/support/faq.asp?id=498), [ASUS](https://www.asus.com/us/support/faq/1046107/)).

- **Save and exit.** AMD's driver turns Smart Access Memory on during installation on compatible systems ([AMD](https://www.amd.com/en/resources/support-articles/faqs/DH3-020.html)).

Where each maker puts them, from its own manual or support page. Menus vary by board and BIOS version, so your own board's manual is the one to follow.

#### ASUS

Setting
Where

CSM
Boot › CSM › **Launch CSM**: Disabled ([AMD 600 Series BIOS manual, p.82](https://dlcdnets.asus.com/pub/ASUS/mb/13MANUAL/PRIME_PROART_TUF_GAMING_AMD_AM5_Series_BIOS_EM_WEB_EN.pdf#page=82))

Above 4G Decoding
Advanced › PCI Subsystem Settings › **Above 4G Decoding**: Enabled ([same manual, p.50](https://dlcdnets.asus.com/pub/ASUS/mb/13MANUAL/PRIME_PROART_TUF_GAMING_AMD_AM5_Series_BIOS_EM_WEB_EN.pdf#page=50))

Resizable BAR
Same menu › **Re-Size BAR Support**: Enabled, shown once Above 4G Decoding is on ([p.50](https://dlcdnets.asus.com/pub/ASUS/mb/13MANUAL/PRIME_PROART_TUF_GAMING_AMD_AM5_Series_BIOS_EM_WEB_EN.pdf#page=50)). EZ Mode also has a **Resize BAR** switch ([ASUS](https://www.asus.com/us/support/faq/1046107/))

PCIe slot speed
Advanced › Onboard Devices Configuration › PCIE Link Speed › **PCIEX16_1 Link Mode** ([p.58](https://dlcdnets.asus.com/pub/ASUS/mb/13MANUAL/PRIME_PROART_TUF_GAMING_AMD_AM5_Series_BIOS_EM_WEB_EN.pdf#page=58)); on B550 boards, **PCIEX16_1 Mode** ([B550 / A520 Series BIOS manual, p.29](https://dlcdnets.asus.com/pub/ASUS/misc/Manual/PRIME_TUF_GAMING_B550_Series_BIOS_EM_WEB_EN.pdf#page=29))

#### MSI

Setting
Where

CSM
Settings › Advanced › **BIOS CSM/UEFI Mode**: UEFI ([Intel 700 Series BIOS manual, p.24](https://download-2.msi.com/archive/mnu_exe/mb/Intel700BIOS.pdf#page=24))

Above 4G Decoding
Settings › Advanced › PCI Subsystem Settings › **Above 4G memory/Crypto Currency mining**: Enabled ([Enabling Resizable BAR guide, p.13](https://download-2.msi.com/archive/mnu_exe/desktop/Resizeable_Bar_SOP.pdf#page=13))

Resizable BAR
Same menu › **Re-Size BAR Support**: Enabled ([guide, p.13](https://download-2.msi.com/archive/mnu_exe/desktop/Resizeable_Bar_SOP.pdf#page=13); [manual, p.14](https://download-2.msi.com/archive/mnu_exe/mb/Intel700BIOS.pdf#page=14))

PCIe slot speed
Settings › Advanced › PCIe/PCI Sub-system Settings › **PCIE_E1 - Max Link Speed** ([manual, p.13](https://download-2.msi.com/archive/mnu_exe/mb/Intel700BIOS.pdf#page=13))

#### Gigabyte

Setting
Where

CSM
Boot › **CSM Support**: Disabled ([Z790 AORUS XTREME X ICE BIOS manual, p.28](https://download.gigabyte.com/FileList/Manual/mb_manual_Z790-AORUS-XTREME-X-ICE_BIOS_e.pdf#page=28); [B550M DS3H manual, p.34](https://download.gigabyte.com/FileList/Manual/mb_manual_b550m-ds3h-ac_e_1301.pdf#page=34))

Above 4G Decoding
Settings › IO Ports › **Above 4G Decoding**: Enabled ([Z790 manual, p.19](https://download.gigabyte.com/FileList/Manual/mb_manual_Z790-AORUS-XTREME-X-ICE_BIOS_e.pdf#page=19); [B550M DS3H manual, p.28](https://download.gigabyte.com/FileList/Manual/mb_manual_b550m-ds3h-ac_e_1301.pdf#page=28))

Resizable BAR
Settings › IO Ports › **Re-Size BAR Support** ([Z790 manual, p.20](https://download.gigabyte.com/FileList/Manual/mb_manual_Z790-AORUS-XTREME-X-ICE_BIOS_e.pdf#page=20))

PCIe slot speed
Settings › Miscellaneous › **CPU PCIe Link Speed** ([Z790 manual, p.23](https://download.gigabyte.com/FileList/Manual/mb_manual_Z790-AORUS-XTREME-X-ICE_BIOS_e.pdf#page=23)); on the B550M DS3H, **PCIe Slot Configuration** ([p.30](https://download.gigabyte.com/FileList/Manual/mb_manual_b550m-ds3h-ac_e_1301.pdf#page=30))

#### ASRock

Setting
Where

CSM
Boot › **CSM**: Disabled ([ASRock](https://www.asrock.com/support/faq.asp?id=498))

Above 4G Decoding
Advanced › Chipset Configuration › **Above 4G Decoding**: Enabled ([ASRock](https://www.asrock.com/support/faq.asp?id=498))

Resizable BAR
Advanced › Chipset Configuration › **C.A.M. (Clever Access Memory)**: Enabled ([ASRock](https://www.asrock.com/support/faq.asp?id=498))

PCIe slot speed
Advanced › Chipset Configuration › **PCIE1 Link Speed** ([ASRock](https://www.asrock.com/support/faq.asp?id=498))

Here is the same change on an ASRock board, from ASRock's own support page. First, CSM on the Boot tab:

123

- **Path.** Boot\CSM(Compatibility Support Module).

- **CSM.** The row still reads Enabled until you confirm the change.

- **Disabled.** Choose it in the CSM list, then save and exit.

ASRock UEFI, Boot\CSM: choosing Disabled for CSM. Cropped to the menu area.

Screenshot: ASRock, [How to enable C.A.M in the BIOS? Also known as Resizable BAR.](https://www.asrock.com/support/faq.asp?id=498)

Then Above 4G Decoding and C.A.M., ASRock's name for Resizable BAR, under Chipset Configuration:

1234

- **Path.** Advanced\Chipset Configuration.

- **Above 4G Decoding.** Reads Enabled.

- **C.A.M. (Clever Access Memory).** ASRock's name for Resizable BAR. Choose Enabled.

- **PCIE1 Link Speed.** The per-slot link speed setting. Leave it on Auto (see "Troubleshooting an unstable PC" below).

ASRock UEFI, Advanced\Chipset Configuration: Above 4G Decoding and C.A.M., its name for Resizable BAR. Cropped to the menu area.

Screenshot: ASRock, [How to enable C.A.M in the BIOS? Also known as Resizable BAR.](https://www.asrock.com/support/faq.asp?id=498)

### Check that it is on

- **GPU-Z.** TechPowerUp's GPU-Z shows whether Resizable BAR is supported and enabled in its main window ([TechPowerUp](https://www.techpowerup.com/279635/techpowerup-gpu-z-v2-38-0-released)). ASUS suggests running it as administrator ([ASUS](https://www.asus.com/us/support/faq/1046107/)).

- **Device Manager.** Under Display adapters, open your Radeon card's Properties, then Resources. A **Large Memory Range** entry means it is on ([MSI](https://web.archive.org/web/20250924034850/https://us.msi.com/faq/faq-4197)).

- **AMD Software.** Search for "Tuning" and open Performance Tuning to see the Smart Access Memory switch. AMD says this page comes only with the full installation ([AMD](https://www.amd.com/en/resources/support-articles/faqs/DH3-020.html)), so a Minimal install doesn't have it; use GPU-Z instead.

- **FastLLM.** FastLLM reports its own result when it starts a model on the Vulkan engine.

AMD lists a known issue in which Smart Access Memory may turn off after a driver install on Windows 10 ([AMD](https://www.amd.com/en/resources/support-articles/release-notes/RN-RAD-WIN-26-10-1.html)). Check again after you update the driver.

If you can't turn it on: FastLLM's fallback

Some PCs can't use Resizable BAR, for example an older board or a system that has to boot in legacy mode. Each time FastLLM starts a model on the Vulkan engine, it checks whether Resizable BAR appears to be off. If it is, FastLLM applies the GGML_VK_DISABLE_HOST_VISIBLE_VIDMEM setting and shows how to turn Resizable BAR on; if the check can't tell, it changes nothing. It needs no administrator rights, changes no BIOS setting and can be turned off in FastLLM's settings. It is a fallback, not a replacement for turning Resizable BAR on.

## Loading a model: your drive first, then the link

The card connects to the motherboard over a PCIe link with a generation and a number of lanes. A link runs at the lower generation and the narrower width of the card and the slot, and a full-length slot is not always wired for x16: your motherboard manual lists the lanes for each slot. AMD lists PCIe 5.0 x16 for the RX 9000 and Radeon AI PRO cards; TechPowerUp lists PCIe 4.0 x16 for most RX 6000 and RX 7000 cards, x8 for the RX 6600 family, RX 7600 and RX 7600 XT, and x4 for the RX 6400 and RX 6500 XT (sources in "Settings by card" below).

**Calculated.** Bandwidth in each direction: transfer rate × 128/130 (the link's encoding) ÷ 8 bits × lanes. Intel's [PCIe table](https://edc.intel.com/content/www/us/en/design/ipla/software-development-platforms/client/platforms/alder-lake-desktop/12th-generation-intel-core-processors-datasheet-volume-1-of-2/004/pci-express-support/) lists the same figures.

Link
PCIe 3.0
PCIe 4.0
PCIe 5.0

x4
3.9 GB/s
7.9 GB/s
15.8 GB/s

x8
7.9 GB/s
15.8 GB/s
31.5 GB/s

x16
15.8 GB/s
31.5 GB/s
63.0 GB/s

A model file travels from your drive, through system memory, over the link to the card. By default llama.cpp memory-maps the model file, so Windows reads it through system memory while the model loads ([llama.cpp docs](https://github.com/ggml-org/llama.cpp/blob/ac8e1694d837b11ed0aab944a6a2eee34b9c4d80/tools/server/README.md)). The slower of the drive and the link sets the pace:

- **Drive.** The model file is read from your SSD.

- **System memory.** Windows keeps the file in memory while it loads, and keeps it there for a later load if memory allows.

- **PCIe link.** The engine copies the weights to the card, once per load.

- **Card memory.** From now on, prompt processing and text generation read the weights from the card's own memory.

From the drive to the card

We assume these drive speeds. They are typical rated sequential reads; real drives vary, and file-system work makes loads slower. SATA 6Gb/s carries at most about 0.6 GB/s ([SATA-IO](https://sata-io.org/developers/sata-naming-guidelines)); an NVMe drive uses its own PCIe x4 link, 3.9 GB/s at PCIe 3.0 and 7.9 GB/s at PCIe 4.0.

**Calculated.** Drive speeds are our assumptions; link figures as above.

Drive or link
GB/s
Seconds per GB

SATA SSD (assumed)
0.55
1.8

NVMe SSD on PCIe 3.0 (assumed)
3.5
0.29

Card link PCIe 3.0 x4
3.9
0.25

NVMe SSD on PCIe 4.0 (assumed)
7.0
0.14

Card link PCIe 3.0 x8 or 4.0 x4
7.9
0.13

Card link PCIe 3.0 x16, 4.0 x8 or 5.0 x4
15.8
0.06

Card link PCIe 4.0 x16 or 5.0 x8
31.5
0.03

Card link PCIe 5.0 x16
63.0
0.02

Calculated, not measured: drive speeds are assumptions. Only an x4 link on PCIe 3.0 is slower than a fast PCIe 4.0 NVMe drive; x8 on PCIe 3.0 is just above it.

Here is what that means for the model each card's FastLLM recipe uses. On an x16 link the drive is always the slower part, so these times are the same at PCIe 3.0, 4.0 and 5.0.

**Calculated.** Minimum seconds: file size ÷ the slower of drive and link, at PCIe 4.0 x16.

Model file (cards)
Size
SATA SSD
NVMe, PCIe 3.0
NVMe, PCIe 4.0

Qwen3.5-9B Q4_K_M (RX 9060 XT 8GB)
5.68 GB
10.3 s
1.6 s
0.81 s

Qwen3.5-9B Q8_0 (RX 9060 XT 16GB, RX 9070, RX 9070 XT, RX 7800 XT)
9.53 GB
17.3 s
2.7 s
1.4 s

Qwen3.8-27B UD-IQ4_XS (RX 7900 XT)
14.25 GB
25.9 s
4.1 s
2.0 s

Qwen3.8-27B UD-Q4_K_M (RX 7900 XTX)
16.46 GB
29.9 s
4.7 s
2.4 s

Qwen3.8-27B UD-Q6_K_M (Radeon AI PRO R9700)
23.09 GB
42.0 s
6.6 s
3.3 s

Calculated, not measured: file size divided by the drive speed we assume. The PCIe generation of an x16 card doesn't change these times.

The link becomes the limit once Windows already has the file in memory, for example when you load the same model again, and then the PCIe generation shows:

**Calculated.** Minimum seconds: file size ÷ link bandwidth, x16 link, file already in system memory.

Model file
PCIe 3.0 x16
PCIe 4.0 x16
PCIe 5.0 x16

Qwen3.5-9B Q4_K_M
0.36 s
0.18 s
0.09 s

Qwen3.5-9B Q8_0
0.60 s
0.30 s
0.15 s

Qwen3.8-27B UD-IQ4_XS
0.90 s
0.45 s
0.23 s

Qwen3.8-27B UD-Q4_K_M
1.0 s
0.52 s
0.26 s

Qwen3.8-27B UD-Q6_K_M
1.5 s
0.73 s
0.37 s

Calculated, not measured: file size divided by x16 link bandwidth, with the file already in system memory. Each generation halves the time.

x4 and x8 cards on a PCIe 3.0 board

An x4 card such as the RX 6400 or RX 6500 XT gets 3.9 GB/s on a PCIe 3.0 board, slower than a PCIe 4.0 NVMe drive, so there the link sets the load time: about 0.25 s per GB. An x8 card such as the RX 7600 XT gets 7.9 GB/s, a little more than that drive, so the drive still sets it; the link shows only once the file is in memory, at 0.13 s per GB. Either link matters far more if part of the model sits in system memory (two sections down).

## Time to first token with the whole model on the card

**With the whole model on the card, PCIe generation changes time to first token by less than a thousandth of a second. It matters for loading, and a lot when part of the model sits in system memory (next section).**

Once a model is loaded, the card reads its weights from its own memory. AMD lists that memory at up to 128 GB/s on the RX 6400 and up to 960 GB/s on the RX 7900 XTX ([AMD RX 6400](https://www.amd.com/en/products/graphics/desktops/radeon/6000-series/amd-radeon-rx-6400.html), [AMD RX 7900 XTX](https://www.amd.com/en/products/graphics/desktops/radeon/7000-series/amd-radeon-rx-7900xtx.html)), far more than any PCIe link. All that crosses the link for a request is the prompt's token numbers going in (4 bytes per token) and one row of scores over the model's 248,320-entry vocabulary coming back for each new token (4 bytes per entry, from the model's [config](https://huggingface.co/Qwen/Qwen3.8-27B/blob/1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0/config.json)).

**Calculated.** A 4,096-token prompt in, the first token's scores out; data ÷ link bandwidth.

Link
Data in
Data out
Time on the link

PCIe 3.0 x4
16 KB
0.99 MB
0.0003 s

PCIe 3.0 x16
16 KB
0.99 MB
0.00006 s

PCIe 4.0 x16
16 KB
0.99 MB
0.00003 s

PCIe 5.0 x16
16 KB
0.99 MB
0.00002 s

**On our test PCs.** Our lab observations measured time to first text with the whole model on the card for the [RX 7900 XT on Vulkan](https://bitworks.io/amd-inference/recipes/rx-7900-xt-20gb-windows-qwen3-8-27b-iq4xs/#lab-observation), [RX 7900 XT on HIP](https://bitworks.io/amd-inference/recipes/rx-7900-xt-20gb-windows-hip-qwen3-8-27b-iq4xs/#lab-observation), [RX 7900 XTX on Vulkan](https://bitworks.io/amd-inference/recipes/rx-7900-xtx-24gb-windows-qwen3-8-27b-q4km/#lab-observation) and [RX 7900 XTX on HIP](https://bitworks.io/amd-inference/recipes/rx-7900-xtx-24gb-windows-hip-qwen3-8-27b-q4km/#lab-observation). That time is the card working through the prompt in its own memory. AMD's driver reported a PCIe 4.0 x16 link for these cards on our test PCs.

**Not yet measured.** We have not measured the same card at different PCIe settings. We found no llama.cpp documentation that quantifies the link's effect in this case; the calculation above is why we expect none worth noticing.

## If part of the model sits in system memory

FastLLM's recipes keep the whole model on the card

FastLLM asks llama.cpp to place every layer on the card (--n-gpu-layers all). Plain llama.cpp at the builds FastLLM uses starts with --fit on and -ngl auto by default ([llama.cpp source](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/common/common.h#L473-L476)), so a model that doesn't fit in free card memory can end up partly in system memory without you asking. This section is about that case, and about choosing it on purpose.

When weights sit in system memory, llama.cpp doesn't simply run those layers on the CPU while it processes a prompt. It moves the work to the card and copies the weights over the link each time ("op offload", on by default; --no-op-offload turns it off). We checked this in the source of both llama.cpp builds FastLLM uses, b10698 (Vulkan) and b11658 (HIP):

- **Split the prompt.** The prompt is processed in micro-batches of 512 tokens, the default -ub ([common.h](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/common/common.h#L451-L452)).

- **Move the work.** Any operation that uses weights in system memory and handles 32 or more tokens is sent to the card ([scheduler](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/ggml/src/ggml-backend.cpp#L962-L968), [Vulkan](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/ggml/src/ggml-vulkan/ggml-vulkan.cpp#L18973-L18992), [HIP](https://github.com/ggml-org/llama.cpp/blob/3e4dfa8f39f904e681737d9f512a6e6338d848aa/ggml/src/ggml-cuda/ggml-cuda.cu#L5896-L5915)).

- **Copy the weights.** Those weights cross the PCIe link for this micro-batch.

- **Repeat.** The next micro-batch copies them again ([decode loop](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/src/llama-context.cpp#L1747-L1824)).

- **Generate.** New tokens come one at a time, below the 32-token threshold, so those layers then run on the CPU from system memory.

What llama.cpp does with weights in system memory during a prompt

So the link adds at least: number of micro-batches × bytes in system memory ÷ link bandwidth. Real copies are slower than the link's rated speed, and the CPU-side layers add work we don't calculate, so actual times are longer.

Calculated, not measured: extra seconds per GB of weights in system memory, by prompt length, link width and PCIe generation, at the default 512-token micro-batch.

Two worked examples. The first is any model with 5 GB of its layers in system memory. The second is [Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B/blob/345d467b117d1fd5eda9b879a5988de9ae5f47a7/config.json), a mixture-of-experts model, in Unsloth's third-party [UD-Q4_K_M conversion](https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF/blob/a483e9e6cbd595906af30beda3187c2663a1118c/Qwen3.6-35B-A3B-UD-Q4_K_M.gguf). It is not a FastLLM recipe. Its 22.13 GB file holds 19.57 GB of expert weights across 40 layers (read from the file's header), and 2.56 GB of everything else. --cpu-moe keeps all the experts in system memory; --n-cpu-moe 20 keeps those of the first 20 layers, 9.73 GB ([llama.cpp options](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/common/arg.cpp#L2782-L2790)).

**Calculated.** Minimum extra seconds before the first token, 4,096-token prompt, default 512-token micro-batch.

Link
5 GB of layers
Experts of 20 layers
All experts

PCIe 5.0 x16
0.63 s
1.2 s
2.5 s

PCIe 4.0 x16
1.3 s
2.5 s
5.0 s

PCIe 3.0 x16
2.5 s
4.9 s
9.9 s

PCIe 3.0 x8
5.1 s
9.9 s
19.9 s

PCIe 3.0 x4
10.2 s
19.8 s
39.7 s

**Calculated.** The same at 32,768 prompt tokens.

Link
5 GB of layers
Experts of 20 layers
All experts

PCIe 5.0 x16
5.1 s
9.9 s
19.9 s

PCIe 4.0 x16
10.2 s
19.8 s
39.7 s

PCIe 3.0 x16
20.3 s
39.5 s
79.5 s

PCIe 3.0 x8
40.6 s
79.1 s
159 s

PCIe 3.0 x4
81.3 s
158 s
318 s

llama.cpp copies only the experts a micro-batch uses ([b10698](https://github.com/ggml-org/llama.cpp/blob/742347b2e717dcebd432437ddf5d088dc4fd9232/ggml/src/ggml-backend.cpp#L1693-L1777), [b11658](https://github.com/ggml-org/llama.cpp/blob/3e4dfa8f39f904e681737d9f512a6e6338d848aa/src/llama-context.cpp#L2762)). That saves little during a prompt: each token picks 8 of this model's 256 experts in every layer, so a full micro-batch uses practically all of them.

**Calculated.** Share of experts a micro-batch uses, 1 − (1 − 8/256)^tokens, assuming tokens pick experts evenly and independently (an approximation).

Tokens in the micro-batch
Experts used

32
64%

128
98%

512
100%

A larger micro-batch means fewer copies. -ub 2048 (the default batch size is already 2,048) copies the weights a quarter as often, at the cost of a larger working buffer on the card.

**Calculated.** Minimum extra seconds for a 4,096-token prompt at three micro-batch sizes.

In system memory
Link
-ub 512
-ub 1024
-ub 2048

5 GB of layers
PCIe 4.0 x16
1.3 s
0.63 s
0.32 s

5 GB of layers
PCIe 3.0 x8
5.1 s
2.5 s
1.3 s

All experts (19.57 GB)
PCIe 4.0 x16
5.0 s
2.5 s
1.2 s

All experts (19.57 GB)
PCIe 3.0 x8
19.9 s
9.9 s
5.0 s

Generating text is a different story

Once the first token is out, new tokens come one at a time, below llama.cpp's 32-token threshold, so layers in system memory run on the CPU and read their weights from system memory. Then system memory and the CPU set the generation speed, not the PCIe link. --no-op-offload makes the CPU do the prompt work too: no copies, but the CPU is much slower at it. llama.cpp b11658 also has an experimental --moe-cache-mib option, off by default, that keeps some experts on the card.

## Memory on the card

What a recipe needs on the card is more than the model file. There is the context memory, the KV cache and recurrent state that grow with the context length, and llama.cpp's compute buffers. FastLLM's catalog sets a requirement for each model that covers all of it. The chart splits that requirement: the weights, the context memory calculated from each model's own configuration, and the rest, the compute buffers and FastLLM's reserve.

Calculated, not measured: weights from the file size, context memory from each model's configuration at its recipe context, and the rest of FastLLM's catalog requirement.

**Calculated.** GiB (1 GiB = 1,073,741,824 bytes); recurrent state in MiB. The total is FastLLM's catalog requirement for each recipe.

Model
Context
Weights
KV cache
Recurrent state
Compute buffers and FastLLM reserve
FastLLM's catalog requirement

[Qwen3.5-9B Q4_K_M](https://huggingface.co/unsloth/Qwen3.5-9B-GGUF)
16,384 tokens
5.3 GiB
0.50 GiB
50 MiB
1.3 GiB
7.1 GiB

[Qwen3.5-9B Q8_0](https://huggingface.co/unsloth/Qwen3.5-9B-GGUF)
32,768 tokens
8.9 GiB
1.00 GiB
50 MiB
2.8 GiB
12.7 GiB

[Qwen3.8-27B UD-IQ4_XS](https://huggingface.co/unsloth/Qwen3.8-27B-GGUF)
16,384 tokens
13.3 GiB
1.00 GiB
150 MiB
3.0 GiB
17.4 GiB

[Qwen3.8-27B UD-Q4_K_M](https://huggingface.co/unsloth/Qwen3.8-27B-GGUF)
32,768 tokens
15.3 GiB
2.00 GiB
150 MiB
2.6 GiB
20.0 GiB

[Qwen3.8-27B UD-Q6_K_M](https://huggingface.co/unsloth/Qwen3.8-27B-GGUF)
32,768 tokens
21.5 GiB
2.00 GiB
150 MiB
4.2 GiB
27.8 GiB

Why the context memory is small: these Qwen models keep a KV cache in only one layer in four. Qwen3.8-27B has 16 full-attention layers out of 64; the other 48 use linear attention with a fixed-size state ([config](https://huggingface.co/Qwen/Qwen3.8-27B/blob/1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0/config.json)). Qwen3.5-9B has 8 of 32 ([config](https://huggingface.co/Qwen/Qwen3.5-9B/blob/c202236235762e1c871ad0ccb60c8ee5ba337b9a/config.json)). Each full-attention layer stores 4 key and 4 value heads of 256 numbers per token, at 2 bytes each in FastLLM's recipes.

**Calculated.** KV cache per token of context: 2 × 4 heads × 256 × 2 bytes × full-attention layers.

Model
KV cache per token
If every layer kept a KV cache

Qwen3.8-27B
64 KiB
256 KiB

Qwen3.5-9B
32 KiB
128 KiB

This breakdown explains FastLLM's catalog requirement. It doesn't decide which model a card can run; FastLLM's planner does that.

## Check the link your card negotiated

- **Read it in GPU-Z.** GPU-Z shows the bus interface, for example "PCIe x16 4.0 @ x16 4.0": the part after "@" is the mode the card is using right now ([ASUS](https://www.asus.com/support/faq/1055579/)).

- **Read it under load.** Links slow down when idle to save power, so click the **?** next to the field to run GPU-Z's render test, then read it again ([TechPowerUp](https://www.techpowerup.com/159098/techpowerup-gpu-z-0-5-8-released)).

- **Watch for the card's internal bridge.** AMD cards have a PCIe bridge inside the GPU, and a tool can report the link inside the card rather than the link to the slot. GPU-Z checks the slot side for the cards it supports, added card by card ([TechPowerUp](https://www.techpowerup.com/291046/psa-gpu-z-shows-pci-express-x16-for-radeon-rx-6500-xt-navi-24-it-really-is-x4)). If a tool shows a link your slot can't provide, such as PCIe 4.0 on a PCIe 3.0 board, it is probably reading the inside of the card.

What the reading means:

Passed

Full link while the card is busy

Under the render test, the lanes and generation match the lower of what the card and the slot support, such as x16 4.0 for a PCIe 4.0 card in a PCIe 4.0 slot.

Needs review

Lower at idle, full under load

A lower generation at idle that rises under load is normal power saving on the board and the card ([ASUS](https://www.asus.com/support/faq/1055579/)).

Failed

Low while the card is busy

Fewer lanes or a lower generation than both support, while the card is working. See "Troubleshooting an unstable PC" below.

**On our test PCs,** AMD's driver reported PCIe 4.0 x16 for the RX 7900 XT and XTX.

## Troubleshooting an unstable PC

Black screens, "Display driver stopped responding and has recovered" messages, freezes, restarts or a model server that crashes can have many causes. AMD's advice is to try the quick and easy steps first and to keep a note of each change and its result ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)). Change one thing at a time, and undo any change that makes no difference.

- **Find the error.** Note what happens and when, then check Event Viewer.

- **Undo tuning.** Reset GPU tuning and load the BIOS's optimized defaults.

- **Reinstall the graphics driver cleanly.** Or roll back to the last version that worked.

- **Check power, cables and cooling.**

- **Check the PCIe link under load.**

- **Update the BIOS and chipset driver.** This also fixes some links that come up slow.

- **Remove a riser, or set the slot one generation lower.**

- **Test PCIe power management off.** Optional

- **Ask a person.** Human review

Troubleshooting order: quickest and safest first

### Find the error first

Windows records most of these problems. Open **Event Viewer › Windows Logs › System** and look near the time it happened.

Entry
What it means
Source

Display, event 4101
"Display driver stopped responding and has successfully recovered": Windows reset the graphics driver after a timeout (see "GPU timeout (TDR)" below)
[Microsoft](https://learn.microsoft.com/en-us/archive/technet-wiki/1462.event-id-4101-display-driver-timeout-detection-and-recovery)

WHEA-Logger
A hardware error that the platform reported. On a PCIe link, these come from PCI Express Advanced Error Reporting. AMD lists WHEA hardware error events among the stability problems its troubleshooting covers
[Microsoft](https://learn.microsoft.com/en-us/windows-hardware/drivers/whea/windows-hardware-error-architecture-definitions), [AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)

Kernel-Power, event 41
Windows didn't shut down cleanly. If its bug-check code and power-button fields are 0, Microsoft says this might indicate a power supply problem
[Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/event-id-41-restart)

### Undo tuning and overclocks

- **The graphics card.** In AMD Software's Performance Tuning, the Reset arrow restores the default settings ([AMD](https://www.amd.com/en/resources/support-articles/faqs/DH3-020.html)). Close third-party monitoring and overclocking tools while you test ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)).

- **The BIOS and memory.** Load the BIOS's optimized defaults ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)). That also turns off memory overclock profiles such as EXPO, which AMD treats as overclocking ([AMD](https://www.amd.com/en/products/processors/technologies/expo.html)). Microsoft's advice is the same: test at the correct, non-overclocked speed ([Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/event-id-41-restart)).

- **Our recommendation:** loading defaults can turn CSM back on and Resizable BAR off, so set them again afterwards (above).

### Reinstall or roll back the graphics driver

- **Clean out the old driver.** AMD's Cleanup Utility removes AMD graphics drivers and software before a fresh install; AMD recommends running it in safe mode, and it creates a restore point first ([AMD](https://www.amd.com/en/resources/support-articles/faqs/GPU-601.html)). The installer's **Factory Reset** option also removes earlier versions, but then you can't roll back to them ([AMD](https://www.amd.com/en/resources/support-articles/faqs/RSX2-INSTALL.html)).

- **Roll back if a new driver started it.** If no fix is available yet, AMD's advice is to go back to the last driver version that didn't have the problem ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)).

- **Keep Windows Update from replacing it.** If Windows Update swaps your driver, AMD says to turn off automatic device installation temporarily (System Properties › Hardware › Device Installation Settings) and reinstall ([AMD](https://www.amd.com/en/resources/support-articles/faqs/gpu-kb205.html)).

**Reported by users.** People running local AI on Radeon AI PRO R9700 cards report crashes that a driver rollback fixed ([Level1Techs](https://forum.level1techs.com/t/radeon-ai-pro-r9700-x2-card-drops-to-code-31/253707), [llama.cpp discussion](https://github.com/ggml-org/llama.cpp/discussions/23443)).

### Check power, cables and cooling

- **Power connectors.** Check that the card's power connectors are fully seated and secure ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)), following the card's manual.

- **Power supply.** It must meet AMD's recommendation for your card (see "Cooling and power supply" below). If the PC crashes, hangs or restarts under load, AMD suggests testing with a known working power supply of equal or greater wattage ([AMD](https://www.amd.com/en/resources/support-articles/faqs/GPU-104.html)).

- **Cooling.** Clear dust and tidy loose cables so air can flow ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)), and watch temperatures through a long run, not just a short one.

### Update the BIOS, Windows and the chipset driver

AMD's own list starts with these: the latest motherboard BIOS from the board maker, then Windows Update, then the latest chipset driver and graphics driver ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)). AMD publishes chipset drivers for Ryzen boards ([AMD](https://www.amd.com/en/resources/support-articles/faqs/CHIPSET-INSTALL.html)). Follow your board maker's instructions for a BIOS update, and check your Resizable BAR settings afterwards.

### Known issue: links that come up slow on some AM5 boards

**Reported by users, via the press.** On some AM5 boards with 600- and 800-series chipsets, graphics cards from AMD and NVIDIA have come up at PCIe 2.0 or 3.0, or at x8 instead of x16. It happened mostly after a cold start, and not every time ([Wccftech](https://wccftech.com/msi-starts-rolling-out-new-bios-to-fix-pcie-gpu-throttle-on-am5-motherboards/)). **Vendor documentation: MSI.** MSI's March 2026 BIOS 7E51v1A81 for the MAG X870 Tomahawk WiFi lists "Improved PCIe-based devices compatibility under certain CPU or system combinations" ([MSI](https://www.msi.com/Motherboard/MAG-X870-TOMAHAWK-WIFI/support#bios)); the press tied that update to this issue and reported mixed results. We found no statement from AMD about it. It is a board firmware issue, not a fault of the graphics card.

- **Confirm it under load.** Read the link during GPU-Z's render test (above). A low reading only at idle is normal.

- **Update the motherboard BIOS.** Check your board maker's support page for a newer BIOS, read its notes for PCIe or graphics compatibility fixes, and follow the maker's own update instructions.

- **Try a full power cycle.** Some affected users reported that the link came up correctly when they switched the power supply off before starting the PC ([Wccftech](https://wccftech.com/msi-starts-rolling-out-new-bios-to-fix-pcie-gpu-throttle-on-am5-motherboards/)).

- **Set the slot one generation lower.** If the BIOS update doesn't fix it, set the slot to the generation below the card's, such as Gen 4 for a PCIe 5.0 card (next section).

### Set the slot one generation lower

Hangs, stutter or blue screens can come from a link that is unreliable at its top speed ([AMD](https://www.amd.com/en/resources/support-articles/faqs/PA-270.html)). Riser cables are the case vendors document. The setting is a per-slot link speed option; the tables under "Turn it on in the BIOS" list each maker's name for it.

12

- **Auto.** The default and our recommendation.

- **One generation lower, such as Gen 4.** If your riser cable is rated for that generation, or a vendor tells you to.

A typical per-slot link speed option. A generic drawing by Bitworks; each maker names it differently (see the tables above).

Source
What it says

**Vendor documentation:** AMD
Riser cables validated only for PCIe 3.0 can make PCIe 4.0 systems unstable; set the slot to Gen 3 in the BIOS as a workaround ([AMD](https://www.amd.com/en/resources/support-articles/faqs/PA-270.html))

**Vendor documentation:** ASUS, Lian Li, Fractal Design
The same advice for their risers ([ASUS](https://www.asus.com/support/faq/1041931/), [Lian Li](https://lian-li.com/product/o11dmini-1/), [Fractal Design](https://www.fractal-design.com/news/ridge-riser-card-pcie-4-0/))

**Vendor documentation:** NZXT
Use Auto with its PCIe 4.0 riser on a PCIe 4.0 slot ([NZXT](https://cdn-g.nzxt.com/dl/1683712701-accessories_vertical-gpu-mounting-kit_digital-manual_en_220919_v3.pdf))

**Vendor documentation:** ASUS
Set it back to Auto once a lower setting is no longer needed ([ASUS](https://www.asus.com/support/faq/1055579/))

**Our recommendation**
Set the slot to the generation your riser is rated for. For a PCIe 5.0 card on a riser rated for PCIe 4.0, that means Gen 4. We found no vendor document covering PCIe 5.0 risers

A known chipset issue on X570 and B550 boards

In 2021, AMD acknowledged intermittent USB problems on 500-series (X570, B550) boards. As reported by ComputerBase, AMD support suggested setting PCIe to Gen 3 as a temporary workaround ([ComputerBase](https://www.computerbase.de/news/mainboards/amd-b550-x570-usb-verbindungsabbrueche-vr-headset.75583/)). AMD told Tom's Hardware that AGESA 1.2.0.2 fixes the cause ([Tom's Hardware](https://www.tomshardware.com/news/amd-issuing-usb-fix-for-ryzen-chips-bios-patch-coming-in-early-april)). On those boards, update the BIOS before reaching for a lower PCIe generation.

One generation lower halves the link's bandwidth. With the whole model on the card, that changes loading only once the file is in memory (the tables above). With weights in system memory, it doubles the extra time. Set it back to Auto once the cause is fixed ([ASUS](https://www.asus.com/support/faq/1055579/)).

### PCIe power management

Windows can put an idle PCIe link into a low-power state. The power plan setting is **PCI Express › Link State Power Management**, with Off, Moderate power savings and Maximum power savings ([Microsoft](https://learn.microsoft.com/en-us/windows-hardware/design/component-guidelines/power-management-for-storage-hardware-devices-nvme)). Many BIOSes have link power options of their own, named ASPM, such as **PEG 0 ASPM** on MSI Intel boards ([MSI](https://download-2.msi.com/archive/mnu_exe/mb/Intel600BIOS.pdf)) and **Platform Power Management** on Gigabyte Intel boards ([Gigabyte](https://download.gigabyte.com/FileList/Manual/mb_manual_Z790-AORUS-XTREME-X-ICE_BIOS_e.pdf)).

Source
What it says

**Vendor documentation:** AMD, Microsoft
We found no AMD or Microsoft document that recommends turning it off to fix a Radeon card on Windows

**Vendor documentation:** AMD engineers, Linux
The Linux driver turns ASPM off for some older AMD cards, such as the WX3200 and RX640, on Intel Alder Lake systems, which hung during suspend and resume ([Linux kernel mailing list](https://lkml.iu.edu/hypermail/linux/kernel/2204.1/07281.html)). The driver also has an option to turn it off ([Linux kernel docs](https://docs.kernel.org/gpu/amdgpu/module-parameters.html)). This shows it can cause hangs on some platforms; it is Linux and older cards, not Windows

**Reported by users**
Mixed. One user reports that turning Link State Power Management off ended random crashes ([AnandTech forums](https://forums.anandtech.com/threads/in-case-your-card-crashes-totally-random-once-every-week-or-every-few-weeks.2613247)). An owner of two Radeon AI PRO R9700 cards reports that power-management changes didn't help, while rolling back the driver did ([Level1Techs](https://forum.level1techs.com/t/radeon-ai-pro-r9700-x2-card-drops-to-code-31/253707))

**Our recommendation**
Leave it at the default. Turn it off only as a test, when the problem shows up after the PC idles, sleeps or wakes, or when the link drops while the card is busy. Undo it if nothing changes

To test it in Windows:

- **Open the plan's advanced settings.** Control Panel › Power Options › Change plan settings for the plan in use › Change advanced power settings.

- **Turn it off while plugged in.** Expand **PCI Express › Link State Power Management** and set it to **Off**. On a laptop, change only **Plugged in**.

- **Or use the command line.** Run powercfg /getactivescheme to get your plan's GUID, then powercfg /setacvalueindex with that GUID, SUB_PCIEXPRESS ASPM 0, and powercfg /setactive with the same GUID ([Microsoft](https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/powercfg-command-line-options)).

- **Run your usual workload.** If nothing changes, set it back to its earlier value. With it off, the link saves less power when idle.

### When to ask a person

If the steps above don't fix it, if WHEA errors keep appearing, or if the card disappears from Device Manager, the cause may be a faulty part. Contact the maker of the part you suspect. AMD asks for an Msinfo32 report and a DxDiag report ([AMD](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html)). For a card you bought from us, [contact us](https://bitworks.io/contact-us/).

## AMD driver

Engine or card
Driver
Source

Vulkan engine
The Vulkan support built into AMD Software: Adrenalin Edition
**Vendor documentation**

HIP (ROCm) engine
The driver AMD lists for the ROCm release. AMD's ROCm 10.0.0 compatibility matrix lists Adrenalin 26.8.1 on Windows 11 25H2; FastLLM's HIP engine uses ROCm 10.0
[AMD](https://rocm.docs.amd.com/en/docs-10.0.0/compatibility/compatibility-matrix.html)

HIP (ROCm) engine
A CPU that supports PCIe atomics
[AMD](https://rocm.docs.amd.com/projects/install-on-windows/en/latest/reference/system-requirements.html)

Radeon AI PRO R9700
AMD Software: PRO Edition, from AMD's driver page for the card
[AMD](https://www.amd.com/en/support/downloads/drivers.html/graphics/radeon-ai-pro/radeon-ai-pro-r9000-series/amd-radeon-ai-pro-r9700.html)

Our test PCs
Windows 11 25H2 with Adrenalin 26.10.1, Minimal install
**On our test PCs**

The installer offers **Default**, **Minimal** (basic controls, without performance tuning or recording) and **Driver Only** (no AMD Software interface) ([AMD](https://www.amd.com/en/resources/support-articles/faqs/RSX2-INSTALL.html)). Our test PCs use **Minimal**; Default works too. FastLLM shows driver guidance for your card. It never installs or changes a driver.

Restart, not Shut down

After a driver update or a card change, use **Restart**. With Fast Startup on, the default on PCs that can hibernate, **Shut down** hibernates Windows instead of starting it fresh ([Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/updates-not-install-with-fast-startup)).

## Windows settings

### GPU timeout (TDR)

Windows resets the graphics driver when the GPU doesn't finish or pause its work within a timeout ([Microsoft](https://learn.microsoft.com/en-us/windows-hardware/drivers/display/timeout-detection-and-recovery)):

- **Timeout.** The GPU doesn't finish or pause its work within 2 seconds, the default.

- **Reset.** Windows resets the graphics driver. You see "Display driver stopped responding and has recovered".

- **Repeated resets.** After five or more resets within one minute, Windows stops with a blue screen.

How Windows recovers from a stuck GPU

Registry keys such as TdrDelay change the timeout. Microsoft documents them for testing and debugging during driver development and says end users shouldn't change them ([Microsoft](https://learn.microsoft.com/en-us/windows-hardware/drivers/display/tdr-registry-keys)).

- **Our recommendation:** leave the timeout at the Windows default. FastLLM does not change it.

- **On our test PCs,** in the runs where we monitor driver resets, we have seen none.

- **If you see resets while a model runs,** treat them as a symptom and work through "Troubleshooting an unstable PC" above. A longer timeout doesn't fix a stuck GPU: Windows just waits longer before recovering, so the screen stays frozen for longer. Editing the registry also needs administrator rights, and a wrong change can stop Windows from starting.

### Other Windows settings

Setting
Where
What vendors say
Our recommendation

Power mode
Settings, System, Power & battery: Best power efficiency, Balanced or Best performance ([Microsoft](https://support.microsoft.com/en-us/windows/change-the-power-mode-for-your-windows-pc-c2aff038-22c9-f46d-5ca0-78696fdf2de8))
No documented effect on local AI; not measured by us
Balanced or Best performance. If other apps use the model while you are away, set the PC not to sleep

Hardware-accelerated GPU scheduling
Settings, System, Display, Graphics ([Microsoft](https://devblogs.microsoft.com/directx/hardware-accelerated-gpu-scheduling/))
AMD added support on RX 7900, 7800 and 7700 series cards in Adrenalin 23.12.1 ([AMD](https://www.amd.com/en/resources/support-articles/release-notes/RN-RAD-WIN-23-12-1.html)); neither documents an effect on AI workloads; not measured by us
Leave it as it is

Fast Startup
On by default on PCs that can hibernate; Shut down then hibernates, Restart doesn't ([Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/updates-not-install-with-fast-startup))
Microsoft's article was written for Windows 10
Use Restart after a driver update or a card change

Memory integrity (VBS and HVCI)
On by default on new Windows 11 PCs
Microsoft says it and Virtual Machine Platform may reduce gaming performance in some configurations, and that turning them off may leave the PC vulnerable ([Microsoft, archived copy](https://web.archive.org/web/20251017113054/https://support.microsoft.com/en-us/windows/options-to-optimize-gaming-performance-in-windows-11-a255f612-2949-4373-a566-ff6f3f474613)); not measured by us
Leave memory integrity on

## Integrated graphics and second cards

Situation
What happens
What to do

CPU with integrated graphics
By default, llama.cpp uses an integrated GPU only when it finds no discrete card ([llama.cpp source](https://github.com/ggml-org/llama.cpp/blob/ac8e1694d837b11ed0aab944a6a2eee34b9c4d80/src/llama.cpp))
Run the engine with --list-devices to see what it found, and choose with --device ([llama.cpp docs](https://github.com/ggml-org/llama.cpp/blob/ac8e1694d837b11ed0aab944a6a2eee34b9c4d80/docs/build.md))

A card with 8 GB or less
The desktop and other apps share the card's memory with the model
**Our recommendation:** run your monitor from the CPU's integrated graphics, if it has them, to leave more of the Radeon card's memory for the model

Two or more Radeon cards
A model can land on a card you didn't intend
Choose the card with --device; for the HIP engine, llama.cpp documents HIP_VISIBLE_DEVICES ([llama.cpp docs](https://github.com/ggml-org/llama.cpp/blob/ac8e1694d837b11ed0aab944a6a2eee34b9c4d80/docs/build.md))

FastLLM
It checks the installed card at each start, and its recipes today run one model on one card
We have not yet tested FastLLM on a PC with integrated graphics turned on

## System memory and the page file

- **On our test PCs.** They have 32 GB of system memory and run 27B models at about 4-bit on the RX 7900 XT and XTX. In early runs, Windows showed the engine process committing more system memory than the size of the model file.

- **Our recommendation:** plan system memory of at least the model file's size, plus what Windows and your other apps use.

- **Page file.** Windows can't commit more memory than its commit limit, which is system memory plus all page files. Page files are system-managed by default ([Microsoft](https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/how-to-determine-the-appropriate-page-file-size-for-64-bit-versions-of-windows)). **Our recommendation:** leave it system-managed. Don't turn it off.

- **Experts in system memory.** llama.cpp's --cpu-moe and --n-cpu-moe options keep a mixture-of-experts model's expert weights on the CPU side ([llama.cpp docs](https://github.com/ggml-org/llama.cpp/blob/ac8e1694d837b11ed0aab944a6a2eee34b9c4d80/tools/server/README.md)). System memory then has to hold those weights, and its speed and the PCIe link matter more (see above). FastLLM's recipes don't use this today.

## Cooling and power supply

AMD lists a board power and a minimum power supply for each card, based on its reference system, and says your requirements may differ ([AMD RX 7900 XTX](https://www.amd.com/en/products/graphics/desktops/radeon/7000-series/amd-radeon-rx-7900xtx.html)).

Card
Board power
Power supply, at least
Source

RX 9060 XT 8GB
150 W
450 W
[AMD](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9060xt-8gb.html)

RX 9060 XT 16GB
160 W
450 W
[AMD](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9060xt.html)

RX 9070
220 W
650 W
[AMD](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9070.html)

RX 9070 XT
304 W
750 W
[AMD](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9070xt.html)

RX 7800 XT
263 W
700 W
[AMD](https://www.amd.com/en/products/graphics/desktops/radeon/7000-series/amd-radeon-rx-7800-xt.html)

RX 7900 XT
315 W
750 W
[AMD](https://www.amd.com/en/products/graphics/desktops/radeon/7000-series/amd-radeon-rx-7900xt.html)

RX 7900 XTX
355 W
800 W
[AMD](https://www.amd.com/en/products/graphics/desktops/radeon/7000-series/amd-radeon-rx-7900xtx.html)

Radeon AI PRO R9700
300 W
750 W
[AMD](https://www.amd.com/en/products/graphics/workstations/radeon-ai-pro/ai-9000-series/amd-radeon-ai-pro-r9700.html)

Prompt processing and text generation keep the card at high load for as long as a request runs, and a busy server can do that for hours. **Our recommendation:** use at least AMD's recommended power supply, make sure the case has clear intake and exhaust airflow, and watch temperatures during a long run with a tool such as GPU-Z.

## Settings by card

AMD lists the PCIe link on its specification pages for the RX 9000 and Radeon AI PRO cards below. It does not list one for RX 6000 and RX 7000 cards, so those rows use TechPowerUp's GPU database. AMD's RX 6000 cards are RDNA 2, its RX 7000 cards RDNA 3, and its RX 9000 and Radeon AI PRO R9000 cards RDNA 4 ([AMD ROCm GPU specifications](https://rocm.docs.amd.com/en/docs-10.0.0/reference/gpu-specs.html), [AMD RX 6500 XT](https://www.amd.com/en/products/graphics/desktops/radeon/6000-series/amd-radeon-rx-6500-xt.html)).

Memory
Cards
PCIe link
Engine FastLLM would use
What to watch

4 GB
RX 6400, RX 6500 XT
PCIe 4.0 x4 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-6500-xt.c3850))
Vulkan; no Bitworks lab observation yet. FastLLM's catalog lists Qwen3.5 2B and 4B models for this tier
The narrowest link: 3.9 GB/s on a PCIe 3.0 board. Little memory to spare.

8 GB
RX 6600, RX 6600 XT, RX 6650 XT
PCIe 4.0 x8 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-6600.c3696))
Vulkan; no Bitworks lab observation yet
An x8 link: 7.9 GB/s on a PCIe 3.0 board.

8 GB
RX 7600
PCIe 4.0 x8 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-7600.c4153))
Vulkan; no Bitworks lab observation yet
An x8 link: 7.9 GB/s on a PCIe 3.0 board.

8 GB
RX 9060 XT 8 GB, RX 9060
PCIe 5.0 x16 ([AMD](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9060xt-8gb.html))
Vulkan; no Bitworks lab observation yet
Little memory headroom.

12 GB
RX 6700 XT, RX 6750 XT
PCIe 4.0 x16 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-6700-xt.c3695))
Vulkan; no Bitworks lab observation yet
Resizable BAR.

12 GB
RX 7700 XT
PCIe 4.0 x16 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-7700-xt.c3911))
Vulkan; no Bitworks lab observation yet
Resizable BAR.

12 GB
RX 9070 GRE
PCIe 5.0 x16 ([AMD](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9070-gre.html))
Vulkan; no Bitworks lab observation yet
Riser generation.

16 GB
RX 6800, RX 6800 XT, RX 6900 XT, RX 6950 XT
PCIe 4.0 x16 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-6800.c3713))
Vulkan; no Bitworks lab observation yet
Resizable BAR.

16 GB
RX 7600 XT
PCIe 4.0 x8 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-7600-xt.c4190))
Vulkan; no Bitworks lab observation yet
An x8 link: 7.9 GB/s on a PCIe 3.0 board.

16 GB
RX 7800 XT, RX 7900 GRE
PCIe 4.0 x16 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-7800-xt.c3839))
Vulkan; no Bitworks lab observation yet
Resizable BAR.

16 GB
RX 9060 XT 16 GB, RX 9070, RX 9070 XT
PCIe 5.0 x16 ([AMD](https://www.amd.com/en/products/graphics/desktops/radeon/9000-series/amd-radeon-rx-9070xt.html))
Vulkan; no Bitworks lab observation yet
Riser generation.

20 GB
RX 7900 XT
PCIe 4.0 x16 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-7900-xt.c3912))
HIP by default, Vulkan fallback; candidate recipes with a Bitworks lab observation
Driver version for HIP.

24 GB
RX 7900 XTX
PCIe 4.0 x16 ([TechPowerUp](https://www.techpowerup.com/gpu-specs/radeon-rx-7900-xtx.c3941))
HIP by default, Vulkan fallback; candidate recipes with a Bitworks lab observation
Driver version for HIP.

32 GB
Radeon AI PRO R9700, R9700S, R9600D
PCIe 5.0 x16 ([AMD](https://www.amd.com/en/products/graphics/workstations/radeon-ai-pro/ai-9000-series/amd-radeon-ai-pro-r9700.html))
Vulkan; no Bitworks lab observation yet
PRO Edition driver; system memory for large models.

Resizable BAR matters on every row that uses the Vulkan engine. The RX 7900 GRE uses the same chip family as the RX 7900 XT and XTX (gfx1100), but FastLLM has no recipe for it yet, so it runs on Vulkan. The GPU pages for the cards Bitworks covers have a short setup section of their own.

## What this page can't tell you

Limits of this page

- The calculated times are lower bounds from rated link speeds and assumed drive speeds. Real copies and drives are slower; we have not measured them at different PCIe settings.

- The offload figures cover the copies only, not the CPU's own share of the work.

- Menus, option names and defaults vary by motherboard and BIOS version: check your manual.

- We have not tested FastLLM on PCs with integrated graphics turned on, and have published lab observations only for the RX 7900 XT and XTX.

- The troubleshooting steps come from vendor documents and user reports, not from our test PCs.

## Sources and trademarks

- llama.cpp source at the two builds FastLLM uses: [b10698](https://github.com/ggml-org/llama.cpp/tree/742347b2e717dcebd432437ddf5d088dc4fd9232) (Vulkan) and [b11658](https://github.com/ggml-org/llama.cpp/tree/3e4dfa8f39f904e681737d9f512a6e6338d848aa) (HIP).

- Model configurations: [Qwen3.8-27B](https://huggingface.co/Qwen/Qwen3.8-27B/blob/1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0/config.json), [Qwen3.5-9B](https://huggingface.co/Qwen/Qwen3.5-9B/blob/c202236235762e1c871ad0ccb60c8ee5ba337b9a/config.json), [Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B/blob/345d467b117d1fd5eda9b879a5988de9ae5f47a7/config.json). GGUF files are third-party conversions by Unsloth.

- BIOS screenshots: ASRock, [How to enable C.A.M in the BIOS? Also known as Resizable BAR.](https://www.asrock.com/support/faq.asp?id=498), used to show the settings, cropped, with credit. Other drawings and charts are by Bitworks.

- Troubleshooting: AMD, [Troubleshooting Tips for Resolving System Stability Issues](https://www.amd.com/en/resources/support-articles/faqs/TS-TIPS.html); MSI, [MAG X870 TOMAHAWK WIFI BIOS notes](https://www.msi.com/Motherboard/MAG-X870-TOMAHAWK-WIFI/support#bios); Microsoft, [Link State Power Management](https://learn.microsoft.com/en-us/windows-hardware/customize/power-settings/pci-express-settings-link-state-power-management). User reports are linked where they appear and are not reproduced by us.

- AMD, Radeon, Ryzen and Smart Access Memory are trademarks of Advanced Micro Devices, Inc. ASRock, ASUS, Gigabyte, MSI and NVIDIA are trademarks of their respective owners. Windows is a trademark of Microsoft Corporation. Other names are used only to identify products.

For agents: how to buy here — https://bitworks.io/checkout.md
