Views
No views yet
Q8_0 quantization of the exceptional Qwen3.6-27B fine-tune made by DavidAU and Nightmedia, specifically optimized to run within 48 GB of VRAM (dual RTX 3090s via NVLink). The weights were calibrated using the great iMatrix file calibration_data_v5_rc to precisely target layer-wise quantization sensitivity. On the tested hardware, this configuration achieves up to ~2,000 t/s prefill and ~65–80 t/s decode throughput with Multi-Token Prediction (MTP) enabled. The Q8_0 format was selected for its optimal speed-to-accuracy ratio, lower-precision variants (e.g., Q6_K) showed a 5 to 10% throughput drop alongside reduced long-context stability, capping reliable usage at ~242k tokens. By preserving critical precision in attention and KV cache operations, this quantization enables stable inference at the model’s maximum context window.Note: Due to VRAM constraints, the MMPROJ vision encoder must be offloaded to CPU when running multimodal tasks.
Q8_0 is the proper format but the model became too big for the 48Gb target. Therefore, the strategy was to use Q6_K on just a few tensors. I managed to identify which were the least sensitive to quantization thanks to the iMatrix, which also identified the few tensors that needed more care in order to maintain the model's capacities.
The schema identified was :| Tensor | Layers | Format |
|---|---|---|
ssm_alpha | 57, 58, 60, 61, 62 | F16 |
ssm_beta | 57, 58, 60, 61, 62 | F16 |
attn_q, attn_k, attn_v | 3, 7 | F16 |
attn_output | 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55 | Q6_K |
ssm_out | 0–2, 4–6, 8–10, 12–14, 16–18, 20–22, 24–26, 28–30, 32–34, 36–38, 40–42, 44–46, 48–50, 52–54, 56–58 | Q6_K |
Q8_0, 5.44% is Q6_K and 0.61% is F16.calibration_data_v5_rc. I tested several iMatrix dataset, including of my own making, but this file achieved the best results.| Metric | Code | WikiText-Raw |
|---|---|---|
| Base Mean Perplexity | 1.879303 ± 0.005783 | 6.320168 ± 0.039392 |
| Quant Mean Perplexity | 1.879671 ± 0.005789 | 6.324147 ± 0.039467 |
| PPL(Q) / PPL(Base) | 1.000196 ± 0.000094 | 1.000630 ± 0.000145 |
| Cor(ln PPL) | 99.95% | 99.97% |
| Mean KLD | 0.000795 ± 0.000069 | 0.000746 ± 0.000023 |
| 99.9% KLD | 0.032576 | 0.031017 |
| 99.0% KLD | 0.008418 | 0.006217 |
| 95.0% KLD | 0.002935 | 0.002095 |
| Median KLD | 0.000029 | 0.000304 |
| Max KLD | 12.675076 | 1.559480 |
| RMS Δp | 0.885 ± 0.030 % | 0.773 ± 0.031 % |
| Same Top-p | N/A | 98.806 ± 0.028 % |
llama.cpp, use the following llama-server command.
Note the specific use of --split-mode tensor and --tensor-split 1,1 for optimal PCIe bandwidth management across dual RTX 3090s. This command appeared to be the best one I could come across using an NVLink.
As previously disclosed, the mmproj file will not hold on the GPU, if you want to use it you need to add --no-mmproj-offload and --image-min-tokens 1024 to the following command, alongside the --mmproj /path/to/mmproj-BF16.gguf.1/path/to/llama.cpp/build/bin/llama-server \
2 -m /path/to/Qwen3.6-27B-Fusion-711-Uncensored-MTP-Q8_0-Opt.gguf \
3 --split-mode tensor \
4 --tensor-split 1,1 \
5 --host 0.0.0.0 \
6 --port 8080 \
7 --ctx-size 262144 \
8 --parallel 1 \
9 --gpu-layers 999 \
10 --cache-type-k f16 \
11 --cache-type-v q8_0 \
12 --flash-attn on \
13 -b 2048 -ub 2048 \
14 --spec-type draft-mtp \
15 --alias Qwen3.6-27b \
16 --jinja"Preserve Thinking" option. You may find it on my GitHub.--ctx-size or using 8-bit K-cache (--cache-type-k q8_0).