Tiel-Coder-35B-A3B — ROCmFP4

ROCmFP4 quantization of Tiel-Coder-35B-A3B (an agentic-coding fine-tune of Ornith-1.5-35B-A3B), made for AMD Strix Halo (gfx1151, Ryzen AI Max+ 395 / Radeon 8060S) with the ROCmFPX toolchain. It is the same quantization recipe that julianmb published for the base Ornith model, applied to Tiel.

⚠️ This file only loads with the ROCmFPX engine. The ROCmFP4 tensor types (ids 100/101) exist only in the ROCmFPX fork of llama.cpp. Stock llama.cpp, Ollama and LM Studio cannot read it. Use the engine from the julianmb/q38rocm v1.7.0 release (strix-halo-rocmfpx-engine-v1.7.0-linux-x86_64.tar.gz, ROCm + Vulkan; ROCm backend required for speed). Fork source: ROCmFPX/ROCmFPX.

Credits and provenance

Everything useful here was done by other people; this repo only re-quantizes their work.

What Who Link
Base model Ornith-1.5-35B-A3B (MIT) ornith-ai https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B
Tiel-Coder-35B-A3B fine-tune, its Q8_K_XL GGUF and its imatrix (MIT) peculiar-ragdoll https://huggingface.co/peculiar-ragdoll/Tiel-Coder-35B-A3B-GGUF
ROCmFP4 formats, ROCmFPX engine and the STRIX_LEAN recipe julianmb / ROCmFPX https://github.com/julianmb/q38rocm · https://github.com/ROCmFPX/ROCmFPX
Recipe reference (ROCmFP4 of base Ornith) julianmb https://huggingface.co/julianmb/Ornith-1.5-35B-A3B-ROCmFP4-GGUF
DFlash speculative-decoding draft (MIT) ornith-ai · GGUF conversion by na0x2c6 https://huggingface.co/ornith-ai/Ornith-1.5-35B-A3B-DFlash · https://huggingface.co/na0x2c6/Ornith-1.5-35B-A3B-DFlash-GGUF

The weights are derived from Tiel-Coder, which is derived from Ornith. Please read and follow the original model cards and cite the original authors. Licenses of all upstream components are MIT; this repository is MIT as well.

Quantization details

Property Value
Quant format Q4_0_ROCMFP4_STRIX_LEAN (general.file_type = 106, ROCmFPX-specific)
File Tiel-Coder-35B-A3B-ROCmFP4-STRIX_LEAN.gguf
Size 18,597,359,968 bytes (17.32 GiB)
Bits per weight 4.29 (llama-quantize: 36,659 MiB source at 8.87 BPW → 17,725 MiB)
SHA256 8d3e01f78c86b7ca8844da0d587406b0418a11de2c88dd49fc2a172800a1c26f
Architecture qwen35moe, 40 blocks, 256 experts (8 active), d_model 2048, 262,144 ctx
Tensors 733: 381 × type 101, 50 × type 100, 301 × F32 (norms), 1 × Q5_K (token embeddings)
Source Tiel-Coder-35B-A3B-UD-Q8_K_XL.gguf from peculiar-ragdoll, re-quantized (--allow-requantize)
imatrix Tiel-Coder-35B-A3B.imatrix.gguf from peculiar-ragdoll (510 entries)
Not included vision projector and MTP head (both are published separately in the Tiel repo and were tested with this file, see "Vision and MTP" below)

Command used (ROCmFPX llama-quantize, 6 threads, ~8 minutes on a Ryzen AI Max+ 395):

llama-quantize --allow-requantize \
  --imatrix Tiel-Coder-35B-A3B.imatrix.gguf \
  Tiel-Coder-35B-A3B-UD-Q8_K_XL.gguf \
  Tiel-Coder-35B-A3B-ROCmFP4-STRIX_LEAN.gguf \
  Q4_0_ROCMFP4_STRIX_LEAN 6

Important: the source was an 8-bit GGUF, not the BF16 weights, so some error is inherited from that first quantization. The GGUF metadata still carries general.name = Ornith-1.5-35B from the upstream file. This GGUF has no embedded MTP block. For speculative decoding use either DFlash or Tiel's separate MTP head (both described below).

How to run

Recommended server command (ROCmFPX llama-server, tested with build 11474 / commit 75e67a92b):

export ROCM_PATH=/opt/rocm/core-10.0 HIP_PATH=/opt/rocm/core-10.0
export LD_LIBRARY_PATH=/opt/rocm/core-10.0/lib HSA_OVERRIDE_GFX_VERSION=11.5.1

llama-server \
  -m Tiel-Coder-35B-A3B-ROCmFP4-STRIX_LEAN.gguf \
  -dev ROCm0 -ngl 999 -c 131072 -fa on -np 1 -ub 2048 --jinja \
  --cache-type-k q8_0 --cache-type-v q8_0 \
  --spec-type draft-dflash \
  -md Ornith-1.5-35B-A3B-DFlash-Q8_0.gguf \
  --spec-draft-n-max 4 --spec-draft-p-min 0.0
  • DFlash draft: download Ornith-1.5-35B-A3B-DFlash-Q8_0.gguf from na0x2c6/Ornith-1.5-35B-A3B-DFlash-GGUF. It was trained for the base Ornith model, and its card states it also works with Ornith fine-tunes such as Tiel.
  • --jinja uses the chat template embedded in the GGUF. Replies arrive as reasoning_content (thinking) followed by content (answer).
  • -ub 2048 raised prefill throughput by ~28 % versus the default 512 on this hardware (measured with the base Ornith ROCmFP4 model, 3.9k-token prompt); 4096 was worse.
  • --spec-draft-n-max 4: among 2–5 (tested with the base Ornith ROCmFP4 model), 4 and 5 were the fastest on short prompts and 3 to 5 gave similar reasoning-task speed; Tiel itself was only run with 4.
  • Use temperature: 0 for the fastest, most reproducible speculative decoding; higher temperatures lower the draft acceptance rate.

Vision and MTP (tested)

Both extra files come from the original Tiel-Coder repo and were tested with this ROCmFP4 file on the same machine.

Vision — mmproj-BF16.gguf (0.84 GiB) works. Add --mmproj mmproj-BF16.gguf to the server command (without a draft model) and send images as usual. Test: one synthetic 640×320 image with a red circle, a blue square and the number 42. Both questions were answered correctly in ~1 s ("A red circle, a blue square, and the number 42"; "2 shapes ... the number written on the right is 42"). This is a single toy image, not a vision benchmark. Vision combined with a draft model was not tested.

MTP — mtp-Tiel-Coder-35B-A3B.gguf (1.39 GiB) works as a separate draft head:

llama-server -m Tiel-Coder-35B-A3B-ROCmFP4-STRIX_LEAN.gguf -dev ROCm0 -ngl 999 -c 131072 -fa on -np 1 -ub 2048 --jinja   --cache-type-k q8_0 --cache-type-v q8_0   --spec-type draft-mtp --model-draft mtp-Tiel-Coder-35B-A3B.gguf   --spec-draft-n-max 2 --spec-draft-p-min 0.0

With n-max 2 the draft acceptance was 71–87 % (mean accepted length 2.4–2.75). Compared with DFlash n4 on the same battery (next section) it generated about 11 % fewer tokens per second (77 vs 87 tok/s effective). Only n-max 2 was tried for MTP. Pick DFlash for raw speed, or the native MTP head if you prefer a draft trained for this exact model.

Measured results

Everything below was measured on one machine: AMD Ryzen AI Max+ 395, Radeon 8060S (gfx1151, 96 GiB unified memory), Debian 13 in an LXC, ROCm 10.0 libraries, temperature 0. Treat the numbers as indicative, not as a benchmark.

Task battery (17 auto-graded tasks)

8 Python problems checked by running unit tests, 6 shell tasks whose command is executed and its output compared, and 3 agent tasks (read / write / run tools, fix a small repo until unittest passes). Token cap 4096 per answer.

Model / quantization Code (8) Terminal (6) Agent (3) Total Wall time
Tiel-Coder UD-Q4_K_XL (peculiar-ragdoll), stock llama.cpp + DFlash 8 6 3 17/17 190 s
Tiel-Coder ROCmFP4 (this repo), ROCmFPX + DFlash n4 8 5 3 16/17 174 s
Tiel-Coder ROCmFP4 (this repo), ROCmFPX + Tiel MTP head n2 8 6 3 17/17 131 s
Ornith-1.5 ROCmFP4 (julianmb), ROCmFPX + DFlash 8 5 3 16/17 232 s
Ornith-1.5 Q4_K_M, stock llama.cpp + DFlash 7 4 2 13/17 278 s

The only miss with DFlash was a shell task where the model kept reasoning until it hit the 4096-token cap (no wrong answer was returned); the same task passed with the MTP head. Greedy decoding with a different draft can change numerics slightly and send a long reasoning chain down another path, so treat that single task as noise, not as an advantage of either draft. Run-to-run and quant-to-quant noise on this battery is about ±3 tasks (the same Ornith model scored 13 and 16 depending on the quantization), so 16/17 vs 17/17 is not a meaningful difference.

Speed

UD-Q4_K_XL (stock) ROCmFP4 (ROCmFPX)
File size 20.8 GiB 17.3 GiB
Effective generation speed over the battery (tokens ÷ seconds, prompt time included, passing tasks only) 69.0 tok/s 86.6 tok/s (+25 %) with DFlash n4; 77.4 tok/s with the Tiel MTP head n2
Decode on a short code prompt, via llama-swap — 117–125 tok/s

Fidelity to the Q8 source

With temperature 0 and 16 varied prompts, the average fraction of characters that match the Q8_K_XL output before the first divergence was 27.5 % for UD-Q4_K_XL and 23.6 % for this ROCmFP4 file (2/16 prompts identical for both). The gap is small and the sample is small, but it points the expected way: with fewer bits per weight, some quality loss relative to the 8-bit source is likely. No perplexity or standard benchmark was run (the ROCmFPX build ships no perplexity tool).

Known limitations

  • Requires the ROCmFPX engine and was tested only on gfx1151 with the ROCm backend. Other GPUs, the Vulkan backend and other builds are untested.
  • Re-quantized from an 8-bit source (see above); a quantization from BF16 would be cleaner.
  • The vision projector is not part of this repo. Tiel's mmproj-BF16.gguf was tested with one toy image only (see above), without a draft model.
  • Like other Gated DeltaNet models, output may depend on the previous request when a server slot is reused (ggml-org/llama.cpp#29092). Restarting the server between unrelated sessions avoids it.
  • Like its parent, the model can loop while reasoning on some tasks. Consider --reasoning-budget (e.g. 2048) if answers are cut off.
  • Fine-tuned for code and agents; the Tiel authors describe it as weak at trivia.

License

MIT, inherited from Ornith-1.5-35B-A3B and Tiel-Coder-35B-A3B. All credit for the model belongs to their authors; ROCmFP4 and the ROCmFPX engine belong to julianmb and the ROCmFPX project.

Quantized by ramon-balaguer, October 2026.

Downloads last month
377
GGUF
Model size
35B params
Architecture
qwen35moe
Hardware compatibility
Log In to add your hardware

We're not able to determine the quantization variants.

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

Model tree for ramon-balaguer/Tiel-Coder-35B-A3B-ROCmFP4-GGUF

Quantized
(1)
this model