Qwen3.6-35B-A3B — Q6_0_ROCMFPX (Strix Halo / gfx1151, Vulkan)
TL;DR
Qwen3.6-35B-A3B (35B params, 3B active per token, Qwen3.5-MoE family) quantized to
Q6_0_ROCMFPX (~6.5 BPW) — the quality tier of the
ROCmFPX fork family, which we serve and benchmark on
our lab runtime (full source:
pugant/strix-nebulosa; upstream:
charlie12345/ROCmFPX). This is the
highest-quality ROCmFPX preset for this model, targeting coding-agent workloads where quality matters more than raw decode speed.
MTP (multi-token prediction) layers are included: serve with
--spec-type draft-mtp --spec-draft-n-max 3 to enable speculative decoding (up to 67 tok/s on deterministic content, +37% over plain tg128).
⚠️ This GGUF is for the ROCmFPX fork of llama.cpp. It will not load in stock llama.cpp.
⚠️ Critical warnings — read before use
Q6_0_ROCMFPX is a fork-specific type. Stock llama.cpp will refuse to load it. Requires a ROCmFPX fork build — see Runtime. Upstream charlie12345/ROCmFPX loads these files too (any build with the custom GGML types).
- Best served on the Vulkan backend (RADV). The Q6 ROCmFPX staging path is optimized in the Vulkan build of the fork: on the ROCm backend (older commits) pp512 drops ~50%. On Vulkan RADV: 1120 pp512 / 49.2 tg128.
- AMD RDNA 3.5 (gfx1151 / Strix Halo) is the target. Tested on Radeon 8060S iGPU. Not tested elsewhere.
- On Strix Halo,
GGML_CUDA_ENABLE_UNIFIED_MEMORY=1 (ROCm) or the Vulkan backend with default ICD is required — VRAM partition is 512 MB.
Benchmarks
Hardware: AMD Ryzen AI Max+ 395, Radeon 8060S (gfx1151, 128 GB unified LPDDR5X).
Method: llama-bench -ngl 999 -fa on -p 512 -n 128, Vulkan RADV backend (fork build).
| Format | Size | tg128 (tok/s) | pp512 (tok/s) |
|---|
| Q6_0_ROCMFPX (this) | 27.39 GiB | 49.2 | 1120 |
| Q4_0_ROCMFP4_STRIX_LEAN (same base) | 17.73 GiB | 81.6 | 1164.7 |
| UD-Q5_K_M_MTP (unsloth) | 25.2 GiB | 57.9 | 1008.1 |
Q6_0_ROCMFPX trades decode speed for quality: vs the fp4 preset it is ~-39% tg, but at ~6.5 BPW
it sits in Q6_K-class quality territory (community K-quant comparisons put Q6_0_ROCMFPX at Q6_K
lossless level, with +30% pp over Q6_K on the fork's optimized paths).
MTP (speculative decoding)
With --spec-type draft-mtp --spec-draft-ngl all --spec-draft-p-min 0.0 --spec-draft-p-split 0.10
(config validated by the fork's regression guard for qwen35-a3b). n-max sweep on this file
(server-timing, 2 prompts × 2 runs, ctx 16k, Vulkan RADV):
| n-max | prose tg (tok/s) | deterministic tg (tok/s) |
|---|
| 4 | 44.7 | 62.8 |
| 3 (recommended) | 54.0 | 67.3 |
| 2 | 58.2 | 62.4 |
Recommendation: n-max 3 for mixed/agentic workloads (best deterministic content, balanced
prose); n-max 2 for pure decode. Position-4 acceptance is only ~0.51 on this base model, so the
extra draft cost of n-max 4 is not paid back. Acceptance pos-1 0.82–0.87, mean accepted length
2.5–3.7 tokens.
Comparison — every Qwen3.6-35B-A3B variant we tested
All rows: same host (Ryzen AI Max+ 395, 8060S, 128 GB), same method
(llama-bench -ngl 999 -fa 1 -p 512 -n 128), 2026-08-14.
| Variant | Quant | Size | Backend | pp512 | tg128 |
|---|
| base — this repo | Q6_0_ROCMFPX | 27.39 GiB | Vulkan RADV | 1120.4 | 49.2 |
| Qwopus3.6-35B (abliterated fine-tune) | Q6_0_ROCMFPX | 27.38 GiB | Vulkan RADV | 1076.9 | 49.5 |
| Qwopus3.6-35B (abliterated fine-tune) | Q6_0_ROCMFPX | 27.38 GiB | ROCm | 520.6 ⚠️ | 51.3 |
| base | Q4_0_ROCMFP4_STRIX_LEAN | 17.73 GiB | Vulkan RADV (fork) | 1164.7 | 81.6 |
| base | Q4_0_ROCMFP4_STRIX_LEAN | 17.73 GiB | ROCm | 1420.7 | 71.2 |
| base | UD-Q5_K_M_MTP (unsloth) | 25.22 GiB | Vulkan RADV | 1008.1 | 57.9 |
| base | UD-Q5_K_M_MTP (unsloth) | 25.22 GiB | ROCm | 1359.4 | 50.8 |
| base | UD-Q5_K_M_MTP (unsloth) | 25.22 GiB | Vulkan AMDVLK | 663.0 | 55.8 |
Notes:
- "Vulkan RADV (fork)" = the charlie12345/ROCmFPX fork built Vulkan-only — the only Vulkan
build that runs the ROCmFPX tensor types (stock llama.cpp rejects them).
- ⚠️ pp 520 on ROCm: the Q6 staging path is unoptimized in the ROCm build — for Q6_0_ROCMFPX
the reference backend is Vulkan.
- tg128 leaderboard: fp4 LEAN on the Vulkan fork (81.6) > fp4 on ROCm (71.2) > UD-Q5_K_M on
RADV (57.9) > Q6 (49.2). pp leaderboard: ROCm fp4 (1420.7) > RADV fp4 (1164.7) > Q6 RADV
(1120.4). The Q6 is the quality tier, not the speed tier.
- Our other Strix Halo ROCmFPX repos (grug-35b-v2,
Ornith-1.0-35B,
Nemotron-Lightning-30B)
were benchmarked in ROCm containers (HIP backend) — do not compare their tg/pp numbers
directly against the Vulkan rows above.
Usage (Vulkan, fork build)
1llama-server -m Qwen3.6-35B-A3B-MTP-Q6_0_ROCMFPX.gguf \
2 -ngl 999 -fa on --jinja --parallel 4 \
3 --top-p 0.95 --top-k 20 --temperature 1.0 \
4 --reasoning on --reasoning-budget 16384
5# + MTP: --spec-type draft-mtp --spec-draft-ngl all --spec-draft-n-max 3
Note: without --reasoning-budget, thinking defaults to unlimited (INT32_MAX) and can run away.
Quantization details
- Type:
Q6_0_ROCMFPX — fork-specific (~6.5 BPW).
- Source: BF16 GGUF from
unsloth/Qwen3.6-35B-A3B-MTP-GGUF, quantized with llama-quantize
from the fork (imatrix pass attempted; final config in repo history).
- MTP layers retained (~0.8 GiB extra): the file can be served with or without speculative
decoding; MTP is off unless
--spec-type draft-mtp is passed.
- Base model: Qwen/Qwen3.6-35B-A3B (Apache-2.0).
License
Apache-2.0 (inherited from the base model). See LICENSE.
Runtime
Benchmark environment: one bare-metal AMD Strix Halo (Ryzen AI MAX+ 395, 128 GB) — full dated configuration and measurement policy:
BARE-METAL.md
Requires a ROCmFPX fork build (custom tensor types — stock llama.cpp refuses the file).
Recommended: our lab build (
pugant/strix-nebulosa,
main) —
reasoning budget and persistent prompt cache on every model; drafter features
where the model ships one: see the engine section of its README.
Runs on any build with the Q6_0_ROCMFPX type (MTP speculative decoding included in the GGUF); our lab build adds reasoning budget + persistent prompt cache.
Everything here is experimental and provided as-is, at your own risk.