pugant/grug-35b-v2-ROCmFP4-STRIX_LEAN
grug-35b-v2 — ROCmFP4-STRIX_LEAN (Strix Halo / gfx1151)
Version 1.0 — 2026-08-11
TL;DR
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.
⚠️ Critical warnings — read before downloading
- Requires a ROCmFPX fork build — see Runtime. Upstream charlie12345/ROCmFPX loads these files too (any build with the custom GGML types, e.g. built via the
kyuz0/amd-strix-halo-toolboxescontainer). The type 106 (Q4_0_ROCMFP4_STRIX_LEAN) tensor format is INVALID in stock llama.cpp — it will refuse to load. See Usage below. - Profiled for gfx1151 only (Strix Halo / Ryzen AI Max+ 395, RDNA 3.5). Not tested on other GPUs.
- FP4 here is software on RDNA 3.5 (no FP4 silicon units): the win is bandwidth / memory, not raw compute throughput. The Strix Halo ceiling on this MoE is bandwidth-bound, which is exactly where FP4 helps.
Benchmarks
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.
Speed-up: +16% vs Q4KM (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.
System configuration at bench time
Declared for reproducibility:
- Bare metal host: Bosgame BeyondMax Series, Ubuntu 24.04.4 LTS, kernel 7.0.0-28-generic
- CPU power profile:
balanced(powerprofilesctl get) — default, NOT forced to `performance`. Representative of an out-of-the-box setup. - CPU scaling driver:
amd-pstate-epp, scaling_governorperformance(amd-pstate-epp default), EPPperformance - IOMMU / iGPU power: auto (no manual tuning)
Note: tok/s above were measured on a non-tuned system (power profile balanced). Users who set powerprofilesctl set performance may see slightly higher numbers.
Quantization details
Preset Q4_0_ROCMFP4_STRIX_LEAN (GGUF file_type 106, ~4.29 bits/weight):
- Attention K/V (
blk.*.attn_qkv.weight,blk.*.attn_v.weight) →q4_0_rocmfp4(high-precision path for attention state) - Token embeddings (
token_embd.weight) →Q5_K(preserve vocab fidelity) - Expert FFN (
blk.*.ffn_*_exps.weight) →q4_0_rocmfp4_fast(max speed path; the bulk of MoE weights) - Other tensors → F32 / Q40ROCMFP4_FAST as appropriate
Reference fork: `charlie12345/ROCmFPX` commit 00d5452.
Serving runtime: see Runtime.
imatrix methodology
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.
- 510 entries over 733 tensors
- Warning
partial data 99.61%during quantization = 1 of 256 experts not activated in calibration (normal for MoE — seetools/imatrix/imatrix.cppin llama.cpp). Negligible impact.
Files
Usage
# 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 1234Notes:
- MTP not enabled for grug. The
mtp_num_hidden_layersfield is 0 in this model (MTP was removed during fine-tuning), so it cannot be activated. - The
--mmprojflag is required for the vision tower (multimodal). Without it, text-only still works.
How to replicate
Pipeline described in text only (no published scripts):
- Build the
docker-llm-service-convertimage fromkyuz0/amd-strix-halo-toolboxes+charlie12345/ROCmFPX(commit00d5452or later main HEAD — must containMODEL_ARCH.QWEN35MOE). - Download the BF16 safetensors from
ProCreations/grug-35b-v2. - Convert to GGUF with
convert_hf_to_gguf.py(inside the container). - Generate the imatrix with
llama-imatrixusingProCreations/grug-think-v3-10k(256 chunks). - Quantize:
llama-quantize <bf16>.gguf <out>.gguf Q4_0_ROCMFP4_STRIX_LEAN 16.
Attribution & model tree
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)- Base model: `ProCreations/grug-35b-v2` (Apache-2.0)
- Quantization fork: `charlie12345/ROCmFPX` (MIT)
- Container runtime: `kyuz0/amd-strix-halo-toolboxes`
License
Apache-2.0 (inherited from ProCreations/grug-35b-v2). Derivative work: original model and its license are preserved. See `LICENSE` and `NOTICE`.
Acknowledgements
Built on the shoulders of giants:
- kyuz0/amd-strix-halo-toolboxes — Strix Halo container runtime
- charlie12345/ROCmFPX — llama.cpp fork with ROCmFP4 presets (type 106)
- ProCreations — grug-35b-v2 + the grug-think-v3-10k calibration dataset
- ornith-ai / DeepReinforce Team — Ornith-1.0-35B, the base of grug
- llama.cpp community + Kawrakow (imatrix methodology)
- Hardware: Bosgame BeyondMax Series (Strix Halo bare metal host)
Limitations & community feedback
- Speed benchmark only. No perplexity / MMLU / quality eval is included in this release. The MoE structure is preserved bit-for-bit from the BF16 source except for the quantized tensor formats above; quality is expected to track standard Q4KM-class with the ROCmFP4 attention/K-V choices, but this is not measured here.
- Profiled for gfx1151 only. Not tested on other GPUs (no Navi 3 / Navi 4 / data-center MI series numbers — feel free to share yours).
- MTP not activated (plain inference).
We invite the community — especially fellow Strix Halo owners — to test and share quality results. Open a Discussion on this repo.
Citation
@misc{grug35b2026,
title = {grug-35b-v2},
author = {ProCreations},
year = {2026},
url = {https://huggingface.co/ProCreations/grug-35b-v2}
}Disclaimer
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).
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.
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.
