Version 1.0 — 2026-08-11
grug-35b-v2 (35B params, 3B active per token, Qwen3.5-VL-MoE family) quantized to Q4_0_ROCMFP4_STRIX_LEAN (type 106 preset, ~4.29 BPW). Tuned for AMD Strix Halo (gfx1151 / RDNA 3.5) on the ROCmFPX fork family — we serve and benchmark these files on our lab runtime (full source: pugant/strix-nebulosa; upstream: charlie12345/ROCmFPX). Runs the full vision + text multimodal model in ~17.3 GiB.
kyuz0/amd-strix-halo-toolboxes container). The type 106 (Q4_0_ROCMFP4_STRIX_LEAN) tensor format is INVALID in stock llama.cpp — it will refuse to load. See Usage below.Tested on Strix Halo (AMD Ryzen AI Max+ 395, 128 GB LPDDR5X). Methodology: llama-bench -ngl 999 -fa on -p 512 -n 128 -mmap 0. All benchmarks for this model were run in ROCm containers (HIP backend). Since then we also benchmarked ROCmFPX quants on the Vulkan (RADV) build of the fork — see the comparison table in Qwen3.6-35B-A3B-MTP-Q6_0_ROCMFPX; those numbers are on a different backend and not directly comparable.
| Model | Quant | Size | tg128 (tok/s) | pp512 (tok/s) |
|---|---|---|---|---|
| grug-35b-v2 | ROCmFP4-STRIX_LEAN | 17.31 GiB | 70.92 | 1418 |
| grug-35b-v2 | Q4_K_M (baseline) | 19.70 GiB | 61.18 | — |
| Qwen3.6-35B-A3B (production ref) | ROCmFP4-STRIX_LEAN | 17.31 GiB | 63 | — |
Speed-up: +16% vs Q4_K_M (70.92 vs 61.18 tok/s tg128) at −12% size (17.31 vs 19.70 GiB). +12% vs the production Qwen3.6-35B-A3B reference.
Declared for reproducibility:
balanced (powerprofilesctl get) — default, NOT forced to performance. Representative of an out-of-the-box setup.amd-pstate-epp, scaling_governor performance (amd-pstate-epp default), EPP performanceNote: tok/s above were measured on a non-tuned system (power profile balanced). Users who set powerprofilesctl set performance may see slightly higher numbers.
Preset Q4_0_ROCMFP4_STRIX_LEAN (GGUF file_type 106, ~4.29 bits/weight):
blk.*.attn_qkv.weight, blk.*.attn_v.weight) → q4_0_rocmfp4 (high-precision path for attention state)token_embd.weight) → Q5_K (preserve vocab fidelity)blk.*.ffn_*_exps.weight) → q4_0_rocmfp4_fast (max speed path; the bulk of MoE weights)Reference fork: charlie12345/ROCmFPX commit 00d5452.
Serving runtime: see Runtime.
Generated with llama-imatrix (256 chunks, 16 threads, CPU-only). Calibration text from ProCreations/grug-think-v3-10k — public Apache-2.0 dataset, not gated: anyone can download it to replicate. Many thanks to the grug team for publishing both the model and a clean calibration set.
partial data 99.61% during quantization = 1 of 256 experts not activated in calibration (normal for MoE — see tools/imatrix/imatrix.cpp in llama.cpp). Negligible impact.| File | Size | Description |
|---|---|---|
grug-35b-v2-ROCmFP4-STRIX_LEAN.gguf | ~17.32 GiB | Main model (type 106) |
mmproj-grug-35b-v2-f16.gguf | ~857 MB | Vision projector (F16) |
imatrix-grug-35b-v2.gguf | ~183 MB | Importance matrix (for re-quantization) |
# Requires the kyuz0 Strix Halo toolbox (which builds charlie12345/ROCmFPX)
docker run --rm -p 1234:1234 --device /dev/kfd --device /dev/dri \
-v /path/to/models:/models rocmfpx-llm-service \
llama-server \
-m /models/grug-35b-v2-ROCmFP4-STRIX_LEAN.gguf \
--mmproj /models/mmproj-grug-35b-v2-f16.gguf \
-ngl 999 -fa on --jinja -c 32768 --host 0.0.0.0 --port 1234
Notes:
mtp_num_hidden_layers field is 0 in this model (MTP was removed during fine-tuning), so it cannot be activated.--mmproj flag is required for the vision tower (multimodal). Without it, text-only still works.Pipeline described in text only (no published scripts):
docker-llm-service-convert image from kyuz0/amd-strix-halo-toolboxes + charlie12345/ROCmFPX (commit 00d5452 or later main HEAD — must contain MODEL_ARCH.QWEN35MOE).ProCreations/grug-35b-v2.convert_hf_to_gguf.py (inside the container).llama-imatrix using ProCreations/grug-think-v3-10k (256 chunks).llama-quantize <bf16>.gguf <out>.gguf Q4_0_ROCMFP4_STRIX_LEAN 16.Qwen3.5-VL-MoE (base architecture)
└── ornith-ai/Ornith-1.0-35B (MIT)
└── ProCreations/grug-35b-v2 (Apache-2.0)
└── this GGUF (ROCmFP4-STRIX_LEAN)
ProCreations/grug-35b-v2 (Apache-2.0)charlie12345/ROCmFPX (MIT)kyuz0/amd-strix-halo-toolboxesApache-2.0 (inherited from ProCreations/grug-35b-v2). Derivative work: original model and its license are preserved. See LICENSE and NOTICE.
Built on the shoulders of giants:
We invite the community — especially fellow Strix Halo owners — to test and share quality results. Open a Discussion on this repo.
@misc{grug35b2026,
title = {grug-35b-v2},
author = {ProCreations},
year = {2026},
url = {https://huggingface.co/ProCreations/grug-35b-v2}
}
No affiliation with AMD, Qwen, ProCreations, DeepReinforce, unsloth, kyuz0, or charlie12345. Provided as-is, without warranty. Users must comply with the base model license (Apache-2.0).
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.
Plain-inference quant (no MTP head: it cannot be activated); the lab build's reasoning budget and persistent prompt cache still apply.
Everything here is experimental and provided as-is, at your own risk.
16 commits
Version 1.0 — 2026-08-11
grug-35b-v2 (35B params, 3B active per token, Qwen3.5-VL-MoE family) quantized to Q4_0_ROCMFP4_STRIX_LEAN (type 106 preset, ~4.29 BPW). Tuned for AMD Strix Halo (gfx1151 / RDNA 3.5) on the ROCmFPX fork family — we serve and benchmark these files on our lab runtime (full source: pugant/strix-nebulosa; upstream: charlie12345/ROCmFPX). Runs the full vision + text multimodal model in ~17.3 GiB.
kyuz0/amd-strix-halo-toolboxes container). The type 106 (Q4_0_ROCMFP4_STRIX_LEAN) tensor format is INVALID in stock llama.cpp — it will refuse to load. See Usage below.Tested on Strix Halo (AMD Ryzen AI Max+ 395, 128 GB LPDDR5X). Methodology: llama-bench -ngl 999 -fa on -p 512 -n 128 -mmap 0. All benchmarks for this model were run in ROCm containers (HIP backend). Since then we also benchmarked ROCmFPX quants on the Vulkan (RADV) build of the fork — see the comparison table in Qwen3.6-35B-A3B-MTP-Q6_0_ROCMFPX; those numbers are on a different backend and not directly comparable.
| Model | Quant | Size | tg128 (tok/s) | pp512 (tok/s) |
|---|---|---|---|---|
| grug-35b-v2 | ROCmFP4-STRIX_LEAN | 17.31 GiB | 70.92 | 1418 |
| grug-35b-v2 | Q4_K_M (baseline) | 19.70 GiB | 61.18 | — |
| Qwen3.6-35B-A3B (production ref) | ROCmFP4-STRIX_LEAN | 17.31 GiB | 63 | — |
Speed-up: +16% vs Q4_K_M (70.92 vs 61.18 tok/s tg128) at −12% size (17.31 vs 19.70 GiB). +12% vs the production Qwen3.6-35B-A3B reference.
Declared for reproducibility:
balanced (powerprofilesctl get) — default, NOT forced to performance. Representative of an out-of-the-box setup.amd-pstate-epp, scaling_governor performance (amd-pstate-epp default), EPP performanceNote: tok/s above were measured on a non-tuned system (power profile balanced). Users who set powerprofilesctl set performance may see slightly higher numbers.
Preset Q4_0_ROCMFP4_STRIX_LEAN (GGUF file_type 106, ~4.29 bits/weight):
blk.*.attn_qkv.weight, blk.*.attn_v.weight) → q4_0_rocmfp4 (high-precision path for attention state)token_embd.weight) → Q5_K (preserve vocab fidelity)blk.*.ffn_*_exps.weight) → q4_0_rocmfp4_fast (max speed path; the bulk of MoE weights)Reference fork: charlie12345/ROCmFPX commit 00d5452.
Serving runtime: see Runtime.
Generated with llama-imatrix (256 chunks, 16 threads, CPU-only). Calibration text from ProCreations/grug-think-v3-10k — public Apache-2.0 dataset, not gated: anyone can download it to replicate. Many thanks to the grug team for publishing both the model and a clean calibration set.
partial data 99.61% during quantization = 1 of 256 experts not activated in calibration (normal for MoE — see tools/imatrix/imatrix.cpp in llama.cpp). Negligible impact.| File | Size | Description |
|---|---|---|
grug-35b-v2-ROCmFP4-STRIX_LEAN.gguf | ~17.32 GiB | Main model (type 106) |
mmproj-grug-35b-v2-f16.gguf | ~857 MB | Vision projector (F16) |
imatrix-grug-35b-v2.gguf | ~183 MB | Importance matrix (for re-quantization) |
# Requires the kyuz0 Strix Halo toolbox (which builds charlie12345/ROCmFPX)
docker run --rm -p 1234:1234 --device /dev/kfd --device /dev/dri \
-v /path/to/models:/models rocmfpx-llm-service \
llama-server \
-m /models/grug-35b-v2-ROCmFP4-STRIX_LEAN.gguf \
--mmproj /models/mmproj-grug-35b-v2-f16.gguf \
-ngl 999 -fa on --jinja -c 32768 --host 0.0.0.0 --port 1234
Notes:
mtp_num_hidden_layers field is 0 in this model (MTP was removed during fine-tuning), so it cannot be activated.--mmproj flag is required for the vision tower (multimodal). Without it, text-only still works.Pipeline described in text only (no published scripts):
docker-llm-service-convert image from kyuz0/amd-strix-halo-toolboxes + charlie12345/ROCmFPX (commit 00d5452 or later main HEAD — must contain MODEL_ARCH.QWEN35MOE).ProCreations/grug-35b-v2.convert_hf_to_gguf.py (inside the container).llama-imatrix using ProCreations/grug-think-v3-10k (256 chunks).llama-quantize <bf16>.gguf <out>.gguf Q4_0_ROCMFP4_STRIX_LEAN 16.Qwen3.5-VL-MoE (base architecture)
└── ornith-ai/Ornith-1.0-35B (MIT)
└── ProCreations/grug-35b-v2 (Apache-2.0)
└── this GGUF (ROCmFP4-STRIX_LEAN)
ProCreations/grug-35b-v2 (Apache-2.0)charlie12345/ROCmFPX (MIT)kyuz0/amd-strix-halo-toolboxesApache-2.0 (inherited from ProCreations/grug-35b-v2). Derivative work: original model and its license are preserved. See LICENSE and NOTICE.
Built on the shoulders of giants:
We invite the community — especially fellow Strix Halo owners — to test and share quality results. Open a Discussion on this repo.
@misc{grug35b2026,
title = {grug-35b-v2},
author = {ProCreations},
year = {2026},
url = {https://huggingface.co/ProCreations/grug-35b-v2}
}
No affiliation with AMD, Qwen, ProCreations, DeepReinforce, unsloth, kyuz0, or charlie12345. Provided as-is, without warranty. Users must comply with the base model license (Apache-2.0).
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.
Plain-inference quant (no MTP head: it cannot be activated); the lab build's reasoning budget and persistent prompt cache still apply.
Everything here is experimental and provided as-is, at your own risk.
16 commits