bakon3's picture
README: update download paths after repo rename to ROCMFP
5284431 verified
|
Raw
History Blame Contribute Delete
8.64 kB
---
license: apache-2.0
base_model: Qwen/Qwen3.6-35B-A3B
tags:
- qwen3
- qwen3.6
- moe
- gguf
- rocm
- rocmfpx
- amd
- r9700
- llama.cpp
- imatrix
- calibrated
language:
- en
- zh
pipeline_tag: text-generation
---
# Qwen3.6-35B-A3B β€” ROCmFPX sealed (AMD-calibrated)
Custom **ROCmFPX** GGUFs of [Qwen/Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B) for **AMD Radeon AI PRO R9700 (gfx1201)** / ROCm HIP.
Built and bench’d on **donherm**: dual R9700 32β€―GB, ROCm **7.2.4**, ROCmFPX HIP pin **`45bcff5`**, Hermes agent lab workflow.
| File | Type | Size |
|------|------|-----:|
| **`Qwen3.6-35B-A3B-Q4_0_ROCMFP4_COHERENT-imatrix.gguf`** | `Q4_0_ROCMFP4_COHERENT` + imatrix | **~19β€―GB** |
| **`Qwen3.6-35B-A3B-Q6_0_ROCMFPX_AGENT-imatrix.gguf`** | `Q6_0_ROCMFPX_AGENT` + imatrix | **~31β€―GB** |
| `Qwen3.6-35B-A3B-imatrix.gguf` | importance matrix | ~184β€―MB |
---
## ⚠️ Runtime requirement
**Not** stock GGUFs. Need **[ROCmFPX](https://github.com/charlie12345/ROCmFPX)** HIP llama.cpp (tested pin: [1337hero/ROCmFPX](https://github.com/1337hero/ROCmFPX) @ `45bcff5`).
Will **not** load in stock llama.cpp / Ollama / LM Studio / Vulkan-only builds.
```bash
export LD_LIBRARY_PATH=/path/to/ROCmFPX/build/bin:/opt/rocm/lib:$LD_LIBRARY_PATH
# Prefer discrete GPUs: --device ROCm0 / ROCm1 (exclude iGPU if present)
```
---
## Naming (format vs profile)
| Token | Meaning |
|-------|---------|
| **ROCMFP4 / ROCMFPX** | AMD block **format** (needs ROCmFPX runtime) |
| **COHERENT / AGENT** | **Recipe**: heavier emb/output or agent/tool-biased tensor routing |
| **-imatrix** | Quantized with importance matrix |
Examples:
- `Q4_0_ROCMFP4_COHERENT` = 4-bit ROCmFP4 + Q6_K embeddings + imatrix
- `Q6_0_ROCMFPX_AGENT` = 6-bit ROCmFPX + agent/coherent routing + imatrix
---
## How they were made
### Shared pipeline
1. **Source:** Unsloth **BF16** GGUF of Qwen3.6-35B-A3B (~66β€―GB).
2. BF16 full load for imatrix is **impossible** on 2Γ—32β€―GB (+ host RAM limit).
3. Built temporary **Q8_0** from BF16 for activation collection only (deleted after).
4. **`llama-imatrix`** on dual R9700 (layer TP) over a mixed calib corpus:
- code / systems prose
- agent / tool JSON
- math
- light multilingual
β†’ `*-imatrix.gguf` (**511** entries, **24** chunks; MoE experts may be partially covered).
5. Quantized **from BF16** with `--imatrix` (not requant from Q4).
### Quants
| Output | Command ftype |
|--------|----------------|
| Q4 sealed | `Q4_0_ROCMFP4_COHERENT` + `--imatrix` |
| High Q6 | `Q6_0_ROCMFPX_AGENT` + `--imatrix` |
**Tooling:** Automated quant, A/B harness, and HF packaging via lab automation (account **`bakon3`**).
---
## Benchmarks (donherm lab)
### Hardware & software (all benches unless noted)
| Item | Value |
|------|--------|
| GPUs | 2Γ— AMD Radeon AI PRO R9700 (gfx1201), 32β€―GB each |
| iGPU | present β€” excluded via `--device ROCm0` / `ROCm1` |
| ROCm | 7.2.4 @ `/opt/rocm` |
| Binary | ROCmFPX HIP build **`45bcff5`** (build 119) |
| Common flags | FA on, `--no-mmap`, q8_0 KV when server, batch **2048 / ubatch 512** |
### A) Official `llama-bench` β€” Q4 sealed vs Unsloth UD-Q4
**Topology:** single GPU `ROCm0`, `-ngl 99 -fa 1 -b 2048 -ub 512 -r 3`
**Control:** Unsloth `Qwen3.6-35B-A3B-UD-Q4_K_XL` (~20.8β€―GiB)
**Date:** 2026-07-16
| Test | **Q4 COHERENT+imatrix** | Unsloth UD-Q4 | Ξ” |
|------|------------------------:|--------------:|----:|
| tg128 | **93.4** | 79.5 | **+17.5%** |
| tg256 | **94.2** | 80.0 | **+17.7%** |
| tg512 | **94.2** | 80.1 | **+17.5%** |
| pp512 | 2708 | 2951 | βˆ’8.2% |
| pp8192 | 2310 | 2568 | βˆ’10.0% |
### B) Server A/B chat β€” Q4 sealed vs Unsloth (no ngram)
**Topology:** dual simultaneous β€” ROCm0=sealed Q4, ROCm1=Unsloth
**Server:** `llama-server` `-c 32768` parallel 1, FA on, q8_0 KV, **no ngram**
**Harness:** OpenAI-compatible `/v1/chat/completions` (Hermes Python suite)
**Date:** 2026-07-16
| Test | Sealed tg | Unsloth tg | Ξ” |
|------|----------:|-----------:|----:|
| decode_128 | **87.7** | 74.9 | **+17.2%** |
| decode_256 | **88.6** | 74.6 | **+18.8%** |
| decode_512 | **88.4** | 74.5 | **+18.6%** |
| decode_1024 | **88.3** | 74.7 | **+18.3%** |
| parallel both GPUs 256 | **88.5** | 74.9 | **+18.3%** |
**Mean decode Ξ”: ~+18.2%**
#### Quality smokes (same server suite)
| Check | Sealed | Unsloth |
|-------|--------|---------|
| `17*19` β†’ 323 | βœ“ | βœ“ |
| `123*45` β†’ 5535 | βœ“ | βœ“ |
| JSON object (name/language/functions/tests_pass) | βœ“ | βœ“ |
| iterative `fib(n)` | βœ“ | βœ“ |
| bat/ball β†’ $0.05 | βœ“ | βœ“ |
### C) Q6 AGENT dual-TP @ 256k (high-ctx path)
**Topology:** **one** model, layer TP `-sm layer -ts 1,1` on ROCm0+ROCm1
**Why TP:** ~31β€―GB weights cannot run as two full copies on 2Γ—32β€―GB
**Server:** `-c 262144`, FA on, q8_0 KV, **ngram-mod 24/48/64**, parallel 1, batch 2048/512
**Date:** 2026-07-17 Β· harness: same chat suite via Hermes
| Test | avg tg | notes |
|------|-------:|-------|
| decode_128 | ~107 | ngram bimodal (cold ~67, peak ~140) |
| decode_256 | ~102 | cold ~69 / peak ~128 |
| decode_512 | ~97 | cold ~69 / peak ~140 |
| decode_1024 | ~73 | less draft help |
| repetitive code 512 | ~226 | peak ~385 with ngram |
| steady open decode | **~68–70** | without draft hits |
Prefill (chat long-prompt path): ~166 → ~133 pp as prompt grows ~0.6k→20k tokens.
Quality: **all pass** (323, 5535, JSON, fib, $0.05).
---
## Launch recipes
```bash
BIN=/path/to/ROCmFPX/build/bin/llama-server
export LD_LIBRARY_PATH=$(dirname "$BIN"):/opt/rocm/lib:$LD_LIBRARY_PATH
Q4=Qwen3.6-35B-A3B-Q4_0_ROCMFP4_COHERENT-imatrix.gguf
Q6=Qwen3.6-35B-A3B-Q6_0_ROCMFPX_AGENT-imatrix.gguf
```
### Dual GPU β€” Q4 @ 256k native (one full copy per GPU)
```bash
"$BIN" -m "$Q4" --host 0.0.0.0 --port 8000 --device ROCm0 \
-c 262144 -ngl 99 --parallel 3 --cont-batching --kv-unified \
--flash-attn on --no-mmap --jinja \
--cache-type-k q8_0 --cache-type-v q8_0 \
--batch-size 2048 --ubatch-size 512 --cache-ram 4096 \
--spec-type ngram-mod \
--spec-ngram-mod-n-match 24 --spec-ngram-mod-n-min 48 --spec-ngram-mod-n-max 64 \
--temp 0.6 --top-p 0.95 --top-k 20 --min-p 0 --verbosity 3 &
"$BIN" -m "$Q4" --host 0.0.0.0 --port 8001 --device ROCm1 \
-c 262144 -ngl 99 --parallel 3 --cont-batching --kv-unified \
--flash-attn on --no-mmap --jinja \
--cache-type-k q8_0 --cache-type-v q8_0 \
--batch-size 2048 --ubatch-size 512 --cache-ram 4096 \
--spec-type ngram-mod \
--spec-ngram-mod-n-match 24 --spec-ngram-mod-n-min 48 --spec-ngram-mod-n-max 64 \
--temp 0.6 --top-p 0.95 --top-k 20 --min-p 0 --verbosity 3 &
```
### Dual GPU β€” Q4 @ 512k YaRN (one full copy per GPU)
Add:
```bash
-c 524288 --rope-scaling yarn --rope-scale 2 --yarn-orig-ctx 262144 \
--override-kv qwen35moe.context_length=int:524288 --context-shift
```
Keep **batch 2048 / ubatch 512**. Flash-attn may OOM on very long multi-request sessions β€” use `--flash-attn off` or lower parallel if needed.
### Q6 AGENT β€” dual-TP 256k (single server)
```bash
"$BIN" -m "$Q6" --host 0.0.0.0 --port 8000 \
--device ROCm0,ROCm1 -sm layer -ts 1,1 \
-c 262144 -ngl 99 --parallel 1 \
--flash-attn on --no-mmap --jinja \
--cache-type-k q8_0 --cache-type-v q8_0 \
--batch-size 2048 --ubatch-size 512 --kv-unified \
--spec-type ngram-mod \
--spec-ngram-mod-n-match 24 --spec-ngram-mod-n-min 48 --spec-ngram-mod-n-max 64 \
--verbosity 3
```
---
## Download
```bash
# recommended Q4
hf download bakon3/Qwen3.6-35B-A3B-ROCMFP \
Qwen3.6-35B-A3B-Q4_0_ROCMFP4_COHERENT-imatrix.gguf
# high Q6 agent
hf download bakon3/Qwen3.6-35B-A3B-ROCMFP \
Qwen3.6-35B-A3B-Q6_0_ROCMFPX_AGENT-imatrix.gguf
# imatrix (repro)
hf download bakon3/Qwen3.6-35B-A3B-ROCMFP Qwen3.6-35B-A3B-imatrix.gguf
```
---
## SHA256
See `SHA256SUMS` in this repo.
---
## License / lineage
- Base: **Apache-2.0** β€” [Qwen/Qwen3.6-35B-A3B](https://huggingface.co/Qwen/Qwen3.6-35B-A3B)
- BF16 GGUF: [unsloth/Qwen3.6-35B-A3B-GGUF](https://huggingface.co/unsloth/Qwen3.6-35B-A3B-GGUF)
- Runtime: [charlie12345/ROCmFPX](https://github.com/charlie12345/ROCmFPX) / R9700 pin work
- Methodology cousin (dense 27B Q8): [1337Hero/Qwen3.6-27B-Q8_0-ROCMFPX-GGUF](https://huggingface.co/1337Hero/Qwen3.6-27B-Q8_0-ROCMFPX-GGUF)
Derivative research quants β€” not official Qwen/Unsloth releases.
## Changelog
- **2026-07-17:** Add `Q6_0_ROCMFPX_AGENT-imatrix`; recommended dual-GPU quant = Q4 COHERENT; full bench methodology; remove straight no-imatrix Q4.
- **2026-07-16:** Initial sealed Q4 COHERENT+imatrix + A/B vs Unsloth.