Cited, not measured on the local desktop

Run local AI on Radeon under Windows WSL2

ROCm 10.1 lists WSL2 as a technical preview. Ubuntu 24.04+ on bare metal is still the measured AMDai path — /setup, /setup/fedora, /setup/arch. Native Windows first token is llama.cpp Vulkan — /setup/windows. House file Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf. Nothing on this page was measured on the local desktop. We do not invent a WSL speed or price. llama.cpp first.

Three tracks

Try this

Native Linux — the measured AMDai path

Ubuntu 24.04+ on bare metal is still the path that produced the official 35B llama.cpp cards. Follow /setup. Cited Fedora and Arch walks live at /setup/fedora and /setup/arch — those guests are not on the ROCm 10.1 OS row, and we do not have Fedora or Arch tok/s. Dual-boot or a spare drive beats forcing a preview guest if you want this site’s cards to match the box. Not a WSL measurement.

Windows first token

Native Windows — llama.cpp Vulkan for a first token

If the box stays on Windows tonight, /setup/windows is the honest first token: llama.cpp with Vulkan (LunarG SDK, GGML_VULKAN=ON, or a Windows x64 Vulkan release). HIP SDK for Windows is a documented subset, not the Linux userspace we measure. Full ROCm userspace is a Linux product. Prefer this over WSL when you only need tokens, not a Linux ROCm guest.

Do not start here

WSL2 ROCm — technical preview, not a first-run path

ROCm 10.1.0 release notes add WSL2 in TheRock artifacts as a technical preview: Ubuntu .deb packages and Python wheels, not RPM. The ROCr runtime detects /dev/dxg and loads librocdxg. Profiling, debugging, and KFD-dependent tools are out of scope at that launch. AMD SMI on WSL2 is discovery and monitoring only — amd-smi event is not supported. Known issues include hangs and missing device-side fault reporting. That is too thin to recommend WSL for a first Radeon token. Use this page only after you already want a Linux ROCm guest on a Windows host.

Zero to first token in WSL2

  1. 1 · Cited, not measured on the local desktop

    Confirm the card is on AMD’s WSL2 / Radeon matrix

    ROCm 10.1.0 compatibility matrix lists WSL2 as an operating-system choice next to Ubuntu, RHEL, and Windows. The Radeon table names AI PRO R9000 (gfx1201), RX 9000 (gfx1200 / gfx1201), PRO W7000 (gfx1100), RX 7000 (gfx1101), PRO V Series (gfx1102), and PRO W6000 (gfx1030). The same table names Adrenalin 26.10.41.05 and Windows 11 25H2. The install selector also lists Ubuntu 26.04, 24.04, and 22.04 as WSL2 guests. If your SKU is not on that matrix, stop — do not invent support. House measured SKU is still one R9700 on bare-metal Ubuntu, not WSL.

  2. 2 · Cited, not measured on the local desktop

    Install the Windows host Adrenalin driver first

    AMD’s 10.1 blog: install the Windows driver, then install ROCm in the Ubuntu guest. The GPU reaches the guest through paravirtualization, not a native Linux amdgpu DKMS in WSL. AMD’s 10.1 install page points at the Adrenalin / ROCm 10.1 download note (RN-RAD-ROCM-10-01). The matrix names Adrenalin 26.10.41.05 on the Radeon row — we do not invent a different pin. Confirm the discrete Radeon in AMD Software or Device Manager before you open a guest. BIOS notes (Above 4G, ReBAR/SAM, CSM off) still apply on the same board. Cited, not measured on the local desktop.

  3. 3 · Cited, not measured on the local desktop

    Install WSL2 and a listed Ubuntu guest

    Microsoft: open PowerShell as administrator and run wsl --install, then restart. That enables WSL and installs Ubuntu. To pick a guest AMD names, run wsl --list --online and wsl --install -d with a listed Ubuntu 26.04, 24.04, or 22.04 distro — do not invent a slug. Confirm VERSION 2 with wsl --list --verbose. New installs default to WSL 2; wsl --set-version Ubuntu 2 upgrades an older WSL 1 guest. AMD’s 10.1 install page: WSL support is a Technical Preview and you may hit known issues. Finish the rest of ROCm inside that guest, not in PowerShell.

  4. 4 · Cited, not measured on the local desktop

    Check that the GPU is visible in the guest

    AMD’s 10.1 notes: ROCr detects WSL2 by looking for /dev/dxg and loads librocdxg. In the guest, ls -l /dev/dxg should list that device. Then rocminfo — the 10.1 verify block prints “WSL2 environment detected.” and an HSA GPU agent. AMD SMI on WSL2 is discovery and monitoring only; amd-smi version is the cited check, and amd-smi event is not supported. KFD-dependent tools that need /dev/kfd or amdgpu sysfs topology are out of scope. ls -l /dev/kfd may be missing — that is a cited preview limit, not a reason to file “ROCm is broken on Radeon.” If rocminfo never prints the WSL2 line or no GPU agent appears, stop and use /setup/windows Vulkan or bare-metal /setup.

  5. 5 · Cited, not measured on the local desktop

    Install ROCm 10.1 in the Ubuntu guest

    Follow AMD’s Install ROCm 10.1.0 page for the WSL2 + Ubuntu selector — Ubuntu .deb and Python wheels, not RPM. Register the ROCm 10.1 apt repo AMD documents, then install the gfx meta package that matches the card (amdrocm10.1-gfx1201 for the house R9700 generation). Do not apt install rocm from Ubuntu’s archive. Do not install a native Linux amdgpu DKMS into the guest; the Windows host already owns the display driver. AMD lists profiling packages as installable but unavailable on WSL2. After packages land, rerun rocminfo. Cited, not measured on the local desktop.

  6. 6 · Cited, not measured on the local desktop

    Build llama.cpp with HIP — first engine in the guest

    llama.cpp’s build.md documents the Linux HIP path: HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -S . -B build -DGGML_HIP=ON -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release -- -j$(nproc). GPU_TARGETS is optional; omit it so CMake targets GPUs on the box, or set the gfx AMD lists for your SKU (house R9700 is gfx1201). After the build, serve the house file with the same flags we use on Ubuntu: ./build/bin/llama-server -m ~/models/Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf -ngl 99 -c 262144 --cache-type-k f16 --cache-type-v f16 --host 127.0.0.1 --port 8080. Those flags are the house daily-driver set — not a WSL tok/s. llama.cpp does not document Vulkan-in-WSL as a first path, so we do not invent one. Native Windows Vulkan stays on /setup/windows. Confirm curl -s http://127.0.0.1:8080/v1/models before a harness.

  7. 7 · Cited, not measured on the local desktop

    Pick Q6, Q5, or Q4 — Q3 is a labeled estimate

    Download the same official-instruct GGUF the Linux recipes name. House file is Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf. Start at Q6, Q5, or Q4 and size VRAM + KV on the calculator. Q3 stays a cited labeled estimate unless a WSL run card exists — none does. Q1/Q2 stay off. Tok/s, VRAM, and RAM on /benchmarks and /results are Ubuntu llama-bench on the local desktop. Treat them as comparison, not a WSL promise. Stay on the house Qwen3.6 family already on /models.

  8. 8 · Cited, not measured on the local desktop

    Keep the GGUF on the Linux filesystem, not /mnt/c

    Microsoft’s WSL environment guide: store project files in the Linux file system, not on a Windows drive mounted under /mnt. Prefill stalls with an idle GPU meter are often the disk. Staging is not RAM offload. House Linux warns off /mnt/bulk; the WSL equivalent is “do not serve a GGUF from /mnt/c.” Put the file in ~/models inside the guest. Not measured on the local desktop.

  9. 9 · Cited, not measured on the local desktop

    Fit VRAM and the two RAM lines

    Wherever a file spills, the two labels stay Minimum system RAM needed (the load at the context you picked) and RAM needed at full context (262144 for the house 35B). Overnight UD-Q5 one-GPU Ubuntu peaks are 37.32 GB at 4K and 42.9 GB at 256K — measured on llama.cpp on the local desktop, not inside WSL. Label estimate unless measured. Microsoft documents .wslconfig memory= (default 50% of Windows RAM) at %UserProfile%\.wslconfig; run wsl --shutdown after edits. We do not invent a recommended pin. If the guest looks RAM-starved, read that file before you blame ROCm.

  10. 10 · Cited, not measured on the local desktop

    When it breaks — KFD, driver mismatch, .wslconfig

    No /dev/kfd: expected on this preview. AMD says KFD-dependent tooling is out of scope; do not file “ROCm is broken on Radeon.” Fall back to /setup/windows Vulkan or bare-metal /setup. Driver mismatch: host Adrenalin must be the 10.1 Windows driver AMD names; guest packages must be the 10.1 Ubuntu .deb path — do not mix a native Linux amdgpu DKMS into WSL. Memory limits: Microsoft’s .wslconfig memory= caps the WSL 2 VM (default 50% of Windows RAM). AMD’s known issues mention that key only as a Valgrind-specific workaround, not a llama.cpp pin. Start from /troubleshoot. Cited rows live on /rocm-problems/windows-wsl-preview. Firmware: /bios. Jargon: /glossary. Short answers: /faq.

Cited commands

Official llama.cpp HIP CMake, then the house Ubuntu serve flags. Those flags are not a WSL tok/s.

HIPCXX="$(hipconfig -l)/clang" HIP_PATH="$(hipconfig -R)" cmake -S . -B build -DGGML_HIP=ON -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release -- -j$(nproc)
./build/bin/llama-server -m ~/models/Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf -ngl 99 -c 262144 --cache-type-k f16 --cache-type-v f16 --host 127.0.0.1 --port 8080

35B quant picker

Speeds are measured on llama.cpp directly, not inside WSL.

35B GGUF quants for WSL2 ROCm on Radeon, with llama.cpp measurements labeled as not from WSL
Quant Role llama.cpp on the local desktop (not WSL)
Q6_K Higher-quality 35B sibling Measured on llama.cpp Vulkan on the local desktop, not inside WSL: Q6_K 1-GPU 4K decode 103.23 tok/s (23:55 card). 32K+ is partly on DDR5. Size VRAM on the calculator.
UD-Q5_K_XL House default on one R9700 Measured on llama.cpp Vulkan on the local desktop, not inside WSL: 102.39 tok/s decode at 4K, 90.52 at 32K, 66.43 at 128K, 44.4 at 256K. Peak VRAM 25.97 / 29.34 GB; peak RAM 37.32 / 42.9 GB. File Qwen3.6-35B-A3B-UD-Q5_K_XL.gguf.
Q4_K_M Smaller measured 35B sibling Measured on llama.cpp Vulkan on the local desktop, not inside WSL: Q4_K_M 32K decode 117.69 tok/s. Still check both RAM lines.
UD-Q3_K_XL Estimate Cited Q3 option — labeled estimate Hugging Face listing for Qwen3.6-35B-A3B-UD-Q3_K_XL.gguf (16.8 GB). Q3 stays a labeled estimate unless a WSL run card exists — none does in this repo. Q1/Q2 stay off. We do not invent a WSL Q3 speed.

RAM lines (llama.cpp-measured)

Wherever a file spills off the GPU, the two labels stay Minimum system RAM needed and RAM needed at full context. House 35B peaks below are Ubuntu llama.cpp, not WSL.

Daily driver · 35B llama.cpp · 262K

Minimum system RAM needed

42.9 GB

Measured · 42.9 GiB raw · 256K context

local-desktop-20261012-2314-35b-udq5kxl-1gpu-256k-llamacpp-f16

RAM needed at full context

42.9 GB

Measured · 42.9 GiB raw · 256K full context

local-desktop-20261012-2314-35b-udq5kxl-1gpu-256k-llamacpp-f16

Measured peak system RAM on the local desktop: 42.9 GB (Linux GiB labeled GB). Measured, pending re-verify after RAM fix.

Breakdown
Offloaded weights ·
0 GiB
Separable embed in RAM ·
0 GiB
KV in RAM at selected ·
0 GiB
KV in RAM at full context ·
0 GiB
Runtime / backend ·
0.85 GiB
OS / desktop baseline ·
8.00 GiB
Headroom ·
16.0 GiB

Open in Stack Lab

Stack Lab remains Ubuntu llama.cpp-first. There is no WSL package and no public download.

Open in Stack Lab

If the app is not installed, packages are not published yet. There is no public download URL. Read the Stack Lab install notes . If Stack Lab is already running on this machine, open the local app .

Sources

How we test — Measured cells cite official amdai-bench/run@1 cards. Estimates stay labeled. Q3 is estimate-only. Q1/Q2 stay off.

Next steps

Real pages on this site. We do not invent a next click.

Last updated

esc

Type to filter. Enter opens the first match. Full-text search lives on /search.