How to use from
Pi
Start the llama.cpp server
# Install llama.cpp:
brew install llama.cpp
# Start a local OpenAI-compatible server:
llama serve -hf kingjones777/K2-Horizon-MoVA-36B-A4B-ROCmFP4-GGUF:Q4_0_ROCMFP
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": "kingjones777/K2-Horizon-MoVA-36B-A4B-ROCmFP4-GGUF:Q4_0_ROCMFP"
        }
      ]
    }
  }
}
Run Pi
# Start Pi in your project directory:
pi
Quick Links

K2-Horizon-MoVA-36B-A4B — ROCmFP4 for AMD Strix Halo (gfx1151)

Four ROCmFP4/ROCmFPX tiers of IFM/K2-Horizon-MoVA-36B-A4B, quantised from the official BF16 GGUF and measured on a Ryzen AI Max+ 395 (Radeon 8060S, gfx1151, 128 GB unified, ROCm 7.2.4). This is the dual-expert k2_horizon MoVA architecture — 36B total parameters, ~4B active — with two independent expert systems: a 64-way MoVA value-expert bank (top-4) alongside a 100-way MoE feed-forward (top-8), 48 layers, hidden 2560, and it is a reasoning model.

Every number on this card was measured on these exact files. Nothing is estimated. As an A4B MoE, it decodes far faster than a dense 32B on the same hardware.

Which file should I use?

file ftype size decode (HIP) prefill (HIP) use it for
K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_FAST.gguf 103 18.57 GiB 41.0 t/s 1238 t/s default — fastest on both axes
K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_STRIX_LEAN.gguf 106 18.67 GiB 41.0 t/s 1227 t/s same speed, Q5_K embeddings
K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_COHERENT.gguf 102 19.81 GiB 39.5 t/s 1114 t/s most bits in the 4-bit family
K2-Horizon-MoVA-36B-A4B-Q8_0_ROCMFPX_AGENT.gguf 115 36.45 GiB 28.9 t/s 1183 t/s 8-bit, agent/tool-call routing

Start with FAST — fastest on both axes here, all four answer correctly. Take AGENT only if you specifically want 8-bit weights.

Quick start — the backend is one flag

# HIP / ROCm — best prefill (long prompts, RAG, agentic)
llama-server -m K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_FAST.gguf \
  -dev ROCm0 -fa on -ngl 999 --no-mmap -fit off -np 1 \
  -b 2048 -ub 1024 -t 16 --poll 100 -c 8192 --jinja

# Vulkan — SAME FILE. Only -dev changes.
llama-server -m K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_FAST.gguf -dev Vulkan0 ...

⛔ You need a build with BOTH k2_horizon and the ROCmFP4 types

These declare general.architecture = k2-horizon and use the ROCmFP4/ROCmFPX tensor types (ggml 100-119). No single public build has both yet:

This repo ships k2-horizon-on-rocmfpx.patch — the arch applied onto a ROCmFPX base, the exact tree these files were built and verified against:

git clone https://github.com/ROCmFPX/ROCmFPX.git && cd ROCmFPX
curl -fLO https://huggingface.co/kingjones777/K2-Horizon-MoVA-36B-A4B-ROCmFP4-GGUF/resolve/main/k2-horizon-on-rocmfpx.patch
git apply k2-horizon-on-rocmfpx.patch
cmake -B build -DGGML_HIP=ON -DGGML_VULKAN=ON -DAMDGPU_TARGETS=gfx1151 -DGGML_NATIVE=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

⛔ Serving note — this is a reasoner

MoVA-36B emits chain-of-thought into reasoning_content before answering. A short budget returns HTTP 200 with empty content and the tokens in reasoning — the model thinking, not a broken file. Give it room: ~500 tokens for short answers and tool calls, more for long-form. Verified: at 40 tokens content was empty; at 500 it answered correctly.

Head handling

Quantised at each tier's native routing with no forced --output-tensor-type override; the tiers are posted as-built.

Reproduction block

model     : IFM/K2-Horizon-MoVA-36B-A4B  (official BF16 GGUF, K2-Horizon-36B-BF16.gguf, 74.9 GB)
            arch k2-horizon MoVA (dual-expert MoE): 36B total / ~4B active,
            mova_num_experts 64 top-4 + num_experts 100 top-8, 48 layers, hidden 2560
port      : MBZUAI-IFM/llama.cpp @ model/K2Horizon (35999d1) k2_horizon arch
            applied onto ROCmFPX fork @ 85d8f7e  (patch shipped in this repo)
quantize  : llama-quantize  <in> <out> <ftype>   (no head-type override)
            Q4_0_ROCMFP4_COHERENT (102) · Q4_0_ROCMFP4_FAST (103)
            Q4_0_ROCMFP4_STRIX_LEAN (106) · Q8_0_ROCMFPX_AGENT (115)
serve     : llama-server -dev {ROCm0|Vulkan0} -fa on -ngl 999 --no-mmap -fit off
            -np 1 -b 2048 -ub 1024 -t 16 --poll 100 -c 8192 --jinja
box       : Ryzen AI Max+ 395 / Radeon 8060S (gfx1151) / 128 GB unified, ROCm 7.2.4
verified  : dual-expert graph loads on GPU, generates correct output
            ("capital of France" -> "Paris"; "capital of Japan" -> "Tokyo")
measured  : 2026-09-04

SHA256

0f11adaada7b8b9f7aa785561f412d2de85a555fc1e2ffeddf71f972b8d576e4  K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_COHERENT.gguf
5618a8e20c3300dcb38ec7217c612edcd8fb091b23aa9e024ca7063b235e80bf  K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_FAST.gguf
7fea90c3aa739652d764416741e85f563ca355ab29c8a8eb89e753a37df8e79f  K2-Horizon-MoVA-36B-A4B-Q4_0_ROCMFP4_STRIX_LEAN.gguf
e653f3855ed2c0c347e14e22593d49ced9118bf2115a7717ed2e34e5e6ff722c  K2-Horizon-MoVA-36B-A4B-Q8_0_ROCMFPX_AGENT.gguf

Credits

IFM / MBZUAI — the K2-Horizon-MoVA-36B-A4B base model (Apache-2.0) and the k2_horizon llama.cpp architecture. ROCmFP4/ROCmFPX quantisation types are the work of ROCmFPX. This repository adds only the ROCmFP4 quant ladder, the arch-on-ROCmFPX patch, and the measurements.

Downloads last month
348
GGUF
Model size
37B params
Architecture
k2-horizon
Hardware compatibility
Log In to add your hardware

4-bit

8-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for kingjones777/K2-Horizon-MoVA-36B-A4B-ROCmFP4-GGUF

Quantized
(18)
this model