Instructions to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF # Run inference directly in the terminal: llama cli -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF # Run inference directly in the terminal: llama cli -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF # Run inference directly in the terminal: ./build/bin/llama cli -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Use Docker
docker model run hf.co/singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
- Llama new
- LM Studio
- Jan
- vLLM
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
- Ollama
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with Ollama:
ollama run hf.co/singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
- Unsloth Desktop
- Pi
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with Docker Model Runner:
docker model run hf.co/singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
- Lemonade
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Run and chat with the model
lemonade run user.Qwen3.8-27B-ROCmFP4-MTP-GGUF-{{QUANT_TAG}}List all available models
lemonade list
- Hermes Agent
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF# Run inference directly in the terminal:
llama cli -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUFBuild from source code
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
cmake -B build
cmake --build build -j --target llama-app# Start a local OpenAI-compatible server with a web UI:
./build/bin/llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF# Run inference directly in the terminal:
./build/bin/llama cli -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUFUse Docker
docker model run hf.co/singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF- Qwen3.8-27B โ ROCmFP4 + MTP drafter ladder (Strix Halo)
- Files
- Hardware / method
- 0. Decode speed is acceptance-dominated, so it is task-dependent
- 1. Draft depth (
--spec-draft-n-max) is per-backend - 2. Drafter precision is a bandwidth lever, not a quality one
- 3. FP2 destroys a drafter
- 4. Perplexity: STRIX is the best FP4 preset, COHERENT is dominated
- 5. The preset ranking flips with the ROCm version โ but check decode too
- 6.
-ctk q8_0 -ctv turbo4corrupts long-context output - Usage
- Related
- Provenance
- Files
Qwen3.8-27B โ ROCmFP4 + MTP drafter ladder (Strix Halo)
ROCmFP4 builds of Qwen3.8-27B, quantised from
ggml-org/Qwen3.8-27B-GGUF's BF16 (sha256 5a3eedc837bcbd13โฆ, verified), plus an MTP drafter
at five precisions so the speculative-decoding numbers below can be reproduced rather than
taken on trust.
What is here and largely not elsewhere: draft-acceptance rates, a per-backend n-max
sweep, a drafter-precision ladder, measured perplexity for all three presets against a
Q4_K_M reference, and a ROCm-version comparison that reverses the preset ranking.
๐จ Do not use
-ctk q8_0 -ctv turbo4. That specific pairing silently corrupts long-context output on this model โ short prompts look fine while retrieval past ~10K tokens fails. Use-ctk q8_0 -ctv q8_0(same memory saving, verified correct) or plain f16. Details in ยง6.
โ Choose FP4 for footprint, not for throughput. On the same machine with MTP enabled on both sides, mainline llama.cpp on Vulkan with a plain
Q4_K_Mties on decode (38.94 vs 38.67 t/s) and wins prefill (330 vs 227). What FP4 buys is 1.7 GiB less resident memory (15.6 vs 17.3 GiB), which is what matters when co-residing two models on one 128 GB APU.
Files
| file | preset | size |
|---|---|---|
Qwen3.8-27B-ROCMFP4-STRIX.gguf |
Q4_0_ROCMFP4_STRIX โ best FP4 perplexity |
13.75 GiB |
Qwen3.8-27B-ROCMFP4-FAST.gguf |
Q4_0_ROCMFP4_FAST โ smallest, +0.025 PPL |
13.33 GiB |
Qwen3.8-27B-ROCMFP4-COHERENT.gguf |
Q4_0_ROCMFP4_COHERENT โ dominated, see ยง4 |
14.41 GiB |
mtp-Qwen3.8-27B-ROCMFP4-STRIX.gguf |
FP4 drafter | 1.85 GiB |
mtp-Qwen3.8-27B-ROCMFP4-FAST.gguf |
FP4 drafter (FAST preset) | 1.50 GiB |
mtp-Qwen3.8-27B-ROCMFP3.gguf |
FP3 drafter | 1.55 GiB |
mtp-Qwen3.8-27B-ROCMFP6.gguf |
FP6 drafter | 2.27 GiB |
mtp-Qwen3.8-27B-ROCMFP8.gguf |
FP8 drafter | 2.86 GiB |
mtp-Qwen3.8-27B-ROCMFP2.gguf |
FP2 drafter โ broken, see ยง3 | 1.48 GiB |
Requires a ROCmFPX build; mainline llama.cpp does not
know the Q4_0_ROCMFP4_* tensor types.
Hardware / method
AMD Ryzen AI MAX+ 395, Radeon 8060S (gfx1151, RDNA 3.5), 124 GiB GTT, Debian sid, kernel 7.2.
Server-measured (llama-server + probe), temperature 0, one job at a time. Tables in ยง1โยง3 use a
~8K-token prompt; ยง4 uses llama-perplexity; ยง5 uses llama-bench. ROCm as stated per table.
Read ยง0 before quoting any decode number from this card.
0. Decode speed is acceptance-dominated, so it is task-dependent
MTP throughput tracks draft acceptance almost linearly, and acceptance depends on how predictable the output is. Same files, same flags, same machine:
| workload | draft acceptance | decode |
|---|---|---|
| summarize an 8K document | 0.64โ0.77 | ~28 t/s |
| short open-ended prompt ("explain lifetime elision") | 0.60โ0.66 | 27โ28 t/s |
A long, predictable prompt lets the draft head land nearly every token; an open-ended one does not. Quote the workload alongside the number โ a bare "t/s" for this model is not meaningful, here or in anyone else's benchmark. Everything below is the high-acceptance (~8K prompt) regime.
1. Draft depth (--spec-draft-n-max) is per-backend
| n-max | Vulkan Q4_K_M decode | acc | FP4 decode | acc |
|---|---|---|---|---|
| 3 | โ | โ | 33.42 | 100.0% |
| 4 | 35.80 | 88.1% | 35.16 | 98.7% |
| 5 | 38.94 | 91.6% | 38.67 | 98.1% |
| 6 | 38.47 | 86.5% | 38.04 | 97.5% |
| 7 | 37.84 | 82.0% | 39.26 | 94.7% |
| 8 | 28.56 | 78.1% | 32.36 | 95.2% |
| 10 | 25.47 | 59.4% | โ | โ |
Acceptance decays monotonically with depth; the knee is where verifying rejected drafts costs more than the accepted ones save. FP4 holds higher acceptance, so its knee sits deeper and flatter. This is not DeepSeek-V4's n=2 โ draft depth does not transfer between models.
The curve is broad on top: an independent re-sweep on the running server put n=4 at 39.3 and n=6 at 38.5 t/s โ a 2% spread, inside run-to-run noise โ while n=3 fell to 35.5. Anywhere in 4โ7 is fine; the failure mode is leaving it at llama.cpp's default of 16, which roughly halves throughput.
2. Drafter precision is a bandwidth lever, not a quality one
Target fixed, drafter varied, Vulkan, n=5:
| drafter | size | decode | acceptance |
|---|---|---|---|
| Q4_K_M | 1.89 GiB | 39.16 | 91.6% |
| Q6_K | 2.28 GiB | 38.28 | 92.1% |
| Q5_K_M | 2.08 GiB | 36.93 | 89.0% |
| Q8_0 | 2.95 GiB | 34.74 | 89.0% |
Acceptance is flat (89โ92%) while decode spans 13% โ so shrinking the drafter buys bandwidth and costs nothing in draft quality. Advice to keep drafters at โฅQ8 does not hold here. The same ordering holds on the FPX ladder in ยง3, and a BF16 drafter is slower still despite the best acceptance of any variant tested.
Keep the drafter as a separate file. A single-file build with the MTP head grafted into the
model (append blk.N.nextn.*, block_count+1, nextn_predict_layers=1) measured 23.0 t/s
against 25.7 for the same model with the drafter kept as a sidecar.
3. FP2 destroys a drafter
FPX ladder, STRIX target, ROCm 10.1, n=5:
| drafter | decode | acceptance |
|---|---|---|
| FP4-STRIX | 37.03 | 97.4% |
| FP3 | 36.07 | 98.1% |
| FP6 | 30.92 | 96.6% |
| FP8 | 29.76 | 96.6% |
| FP2 | 22.07 | 64.0% |
FP2's codebook has no exact zero. This drafter is BF16-sourced โ the case usually assumed safe โ and acceptance still collapses. Do not use FP2 for a draft model.
4. Perplexity: STRIX is the best FP4 preset, COHERENT is dominated
Held-out wikitext-2, 145 chunks at ctx 2048, same chunks for every model, measured with
llama-perplexity on this machine. Lower is better.
| build | size | PPL | vs STRIX |
|---|---|---|---|
mainline Q4_K_M (reference) |
15.41 GiB | 6.3383 ยฑ 0.0402 | โ0.033 |
ROCMFP4-STRIX |
13.75 GiB | 6.3715 ยฑ 0.0402 | โ |
ROCMFP4-FAST |
13.33 GiB | 6.3968 ยฑ 0.0404 | +0.025 |
ROCMFP4-COHERENT |
14.41 GiB | 6.5002 ยฑ 0.0417 | +0.129 |
- COHERENT is dominated by STRIX: 0.66 GiB larger and clearly worse (+0.129, three times the error bar). Its one advantage is prefill on ROCm 7.2 (ยง5) โ a backend- and version-conditional win that costs quality. Do not pick it for quality.
- STRIX vs FAST is +0.025, smaller than either error bar โ but the two are measured on identical chunks and STRIX is lower at every cumulative checkpoint from chunk 1 to 145, so the ordering is systematic rather than noise. The magnitude is small: FAST costs ~0.4% perplexity and saves 0.42 GiB. Either is defensible; STRIX if you want the best FP4 quality, FAST if you want the smallest file.
- Q4_K_M still has the lowest perplexity of all four, at 1.5โ2.1 GiB more. FP4 is not free โ it trades ~0.5% perplexity for ~13% less memory.
The error bars above (ยฑ0.04) are roughly half those of a 40-chunk run (ยฑ0.068), which is why the full test set is used here.
5. The preset ranking flips with the ROCm version โ but check decode too
llama-bench, pp2048:
| preset | ROCm 7.2.4 | ROCm 10.1 nightly |
|---|---|---|
| COHERENT | 205.7 | 208.6 (+1%) |
| STRIX | 151.8 | 272.0 (+79%) |
COHERENT wins on 7.2; STRIX wins on 10.1. Any "preset X is best" claim โ including ones in other repos โ is conditional on a ROCm version that usually goes unstated.
That table is prefill only, and decode moves the other way. Against stable 7.2.4, the 10.1 nightly measures +22% prefill but โ9% decode. Interactive serving is normally decode-bound, so our production stays on 7.2.4; take the nightly only if you are prefill-bound.
-ub is a further caveat: llama-bench shows a clear preference for -ub 256 (370.6 vs 332.0
pp2048 on Vulkan), but in ablation on the running server -b/-ub sizing showed no
measurable effect. Treat it as harness-specific until reconciled.
6. -ctk q8_0 -ctv turbo4 corrupts long-context output
Needle-in-a-haystack at ~14.6K tokens, Q4_0_ROCMFP4_FAST, no draft model, everything else
identical โ only the KV cache types vary:
-ctk / -ctv |
needle @14.6K |
|---|---|
| f16 / f16 (default) | โ PASS |
| q8_0 / turbo4 | โ FAIL |
| q8_0 / q8_0 | โ PASS |
| f16 / turbo4 | โ PASS |
Only the pairing fails. turbo4 alone is fine and q8_0 alone is fine; combined, the model
stops retrieving from long context โ it rambles or answers confidently wrong, while short prompts
stay perfect. Perplexity and 8K summarization do not catch it.
It also inflates throughput, which is how it hides: the corrupted output is repetitive, so the draft head accepts nearly everything (acceptance 0.92โ0.98 vs a normal 0.64โ0.77) and decode reads ~40% high. A speed win plus a high acceptance rate is exactly the signature to distrust.
Both affected configurations log attention rotation disabled for fp3 ROCmFPX/TurboQuant KV cache
at startup, but so does the passing f16 + turbo4 case, so the warning alone is not diagnostic.
Usage
llama-server \
-m Qwen3.8-27B-ROCMFP4-STRIX.gguf \
-md mtp-Qwen3.8-27B-ROCMFP4-STRIX.gguf \
--spec-type draft-mtp --spec-draft-n-max 5 \
-ngl 99 -ngld 99 -fa on \
-ctk q8_0 -ctv q8_0
-ctk q8_0 -ctv q8_0 saves memory against f16 at the same speed. Do not substitute turbo4 for
the V cache โ see ยง6. Our own serving runs the FAST preset (4.25 bpw, 13.33 GiB) with the matching
FAST-preset drafter on ROCmFPX Vulkan โ Vulkan beats HIP on decode (25.6 vs 22.1), HIP wins
prefill (146 vs 140). Both FAST files are in this repo; swap STRIX for FAST in the command
above to reproduce it, or keep STRIX for the slightly better perplexity (ยง4).
Related
kingjones777/Qwen3.8-27B-ROCmFP4-STRIX-MTP-GGUF
measures the same model on the same gfx1151 / ROCm 7.2.4 and reports 30.30 t/s @8K at acceptance
0.926, consistent with the ยง0 high-acceptance regime.
It also publishes perplexity โ STRIX 5.8877 vs FAST 5.9233, 40 chunks โ and ยง4 here independently reproduces that ordering. The two runs line up closely: their 40-chunk figures sit within ~0.02 of our own running estimate at chunk 40 (FAST 5.9379, STRIX 5.9100), which is a useful cross-check given they quantised independently. Our ยง4 numbers are higher in absolute terms only because ours runs the full 145-chunk test set, and the later chunks are harder โ this is why perplexity is comparable within a run and not across runs with different chunk counts.
Their point that the FP4 presets are speed-equivalent, so perplexity rather than speed should be the tiebreak, holds up.
Provenance
Every file derives from ggml-org/Qwen3.8-27B-GGUF, sha256-verified before quantisation:
Qwen3.8-27B-BF16.gguf = 5a3eedc837bcbd13โฆ, mtp-Qwen3.8-27B-BF16.gguf = 5723e551c4ee2b8cโฆ.
- Downloads last month
- 1,024
We're not able to determine the quantization variants.
Model tree for singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF
Base model
Qwen/Qwen3.8-27B
Install (macOS, Linux)
# Start a local OpenAI-compatible server with a web UI: llama serve -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF# Run inference directly in the terminal: llama cli -hf singulared/Qwen3.8-27B-ROCmFP4-MTP-GGUF