Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Use the **b10793 Windows Vulkan** build in its own folder, keep the CUDA tree in `llama.cpp\` as it is, and run the same `qwen38m2` flags with the device pinned to the Radeon. This config was sized for a 24 GB GPU and a large host RAM cache. A 16 GB Radeon cannot hold it with `--fit off`.
- ## 1. Binary
- Download only this zip (same tag as the CUDA build already in the workspace):
- https://github.com/ggml-org/llama.cpp/releases/download/b10793/llama-b10793-bin-win-vulkan-x64.zip
- Extract it to a new folder, for example `c:\Users\user\Desktop\ccc\llama.cpp-vulkan\`. Do not extract it into `llama.cpp\`. That folder’s CUDA DLLs would load instead of `ggml-vulkan.dll`.
- The Vulkan zip has no companion runtime archive. The AMD Adrenalin driver is the runtime. No CUDA toolkit, no ROCm.
- ## 2. Model
- The script loads this path:
- `c:\Users\user\Desktop\ccc\models\qwen38-27b-mradermacher\Qwen3.8-27B-Uncensored.Q3_K_M.gguf`
- If that file is already there, use it. If not, save the Google Storage URL to that exact path. The server does not download it.
- ## 3. Confirm the Radeon is the Vulkan device
- From `llama.cpp-vulkan`:
- ```powershell
- Set-Location c:\Users\user\Desktop\ccc\llama.cpp-vulkan
- .\llama-server.exe --list-devices
- ```
- You want a line like `Vulkan0: AMD Radeon …`. On a desktop with an integrated GPU, the Radeon may be `Vulkan1`. Use that name in `-dev`. The current `qwen38m2` line does not pin a device; on this NVIDIA box that was fine because only `CUDA0` existed. On a Radeon PC, an iGPU can steal the offload.
- ## 4. Smoke test, then the full line
- Short context first, so a failure is the backend and not the 200k cache:
- ```powershell
- Set-Location c:\Users\user\Desktop\ccc\llama.cpp-vulkan
- .\llama-server.exe `
- -m c:\Users\user\Desktop\ccc\models\qwen38-27b-mradermacher\Qwen3.8-27B-Uncensored.Q3_K_M.gguf `
- -ngl 999 -dev Vulkan0 -c 4096 -np 1 --jinja -fa on -ctk q4_0 -ctv q4_0 --fit off `
- --host 127.0.0.1 --port 8080
- ```
- The log should name the Radeon, show Vulkan (not CPU), and show KV type `q4_0`. Then stop it and start the real `qwen38m2` set:
- ```powershell
- Set-Location c:\Users\user\Desktop\ccc\llama.cpp-vulkan
- .\llama-server.exe `
- -m c:\Users\user\Desktop\ccc\models\qwen38-27b-mradermacher\Qwen3.8-27B-Uncensored.Q3_K_M.gguf `
- -ngl 999 -dev Vulkan0 `
- -c 200000 -np 2 --jinja -fa on -ctk q4_0 -ctv q4_0 --fit off `
- -ub 512 -cram 23384 -cms 32 -ctxcp 128 --cache-prompt -kvu --ui-mcp-proxy `
- --host 127.0.0.1 --port 8080
- ```
- Those flags are not CUDA-only. `-ngl`, `-fa`, `-ctk q4_0`, `-ctv q4_0`, `--fit`, `-ub`, `-cram`, `-cms`, `-ctxcp`, `--cache-prompt`, and `-kvu` are the same on the Vulkan server. Flash attention on Vulkan is real, but token rate will be lower than the 3090 CUDA run, especially prompt processing.
- `run-server.ps1` always launches `llama.cpp\llama-server.exe` and then `Set-Location` into that CUDA folder. Leave the script alone until the manual command above stays up. Pointing the script at the Vulkan exe without also changing that working directory will still load CUDA DLLs.
- ## 5. What will fail, and what to change
- | Symptom | Cause | Change |
- |---------|--------|--------|
- | Log says CPU, or `ggml-cuda.dll` | Wrong folder or wrong exe | Stay in `llama.cpp-vulkan` and run that `llama-server.exe` |
- | Offload hits the iGPU | No `-dev` | Set `-dev` to the discrete Radeon from `--list-devices` |
- | Vulkan out of memory at startup | `--fit off` refuses to shrink `-c`. Q3 weights are about 13.5 GB; 200k Q4 KV needs a **24 GB** card (7900 XTX class). A 16 GB 9070 XT / 7800 XT will not load this line | Lower `-c` (try 32768, then 8192). Do not turn `--fit on` if you want this cache policy |
- | Windows commit dies after the model loads | `-cram 23384` asks for about 23 GiB of **host RAM**, and `-ctxcp 128` keeps checkpoints in that same RAM pool. This PC has 32 GiB and cannot spare that much | On a 32 GiB Radeon PC, drop to `-cram 8192 -ctxcp 32` before touching the GPU flags. On 64 GiB, keep 23384 / 128 |
- | `-np 2` does not give two full 200k contexts | `-kvu` is one shared KV buffer for both slots | That is how this alias is written. Leave it |
- `-kvu` with `-np 2` is already in your snippet. The comment above it still says “unified KV with `-np 1`”. The numbers in the array are what will run.
- HIP / the `win-rocm-7.14` zip is a later experiment, only if this Vulkan process is healthy and a bench on this Q3 GGUF is faster. It is a second folder, not a replacement for `llama.cpp-vulkan`.
Comments
-
- https://storage.googleapis.com/my-bucket-ultracheap/llm/Qwen3.8-27B-Uncensored.Q3_K_M.gguf
-
- .\llama-server.exe `
- -m c:\Users\user\Desktop\ccc\models\qwen38-27b-mradermacher\Qwen3.8-27B-Uncensored.Q3_K_M.gguf `
- -ngl 999 -dev Vulkan0 `
- -c 200000 -np 1 --jinja -fa on -ctk q4_0 -ctv q4_0 --fit off `
- -ub 512 -cram 16384 -cms 128 --cache-prompt -kvu `
- --spec-type draft-mtp --spec-draft-n-max 2 --ui-mcp-proxy `
- --host 127.0.0.1 --port 8080
Add Comment
Please, Sign In to add comment