Benchmarks

Every number, including the bad one.

Each table names the run it came from. Sizes differ slightly between runs because the builds differ, so figures are not mixed across tables.

Perplexity, Qwen 3.5 9B
BuildSizePerplexity
Q4_K_M5.280 GiB8.2055
NF4DQ4.346 GiB8.4181
Q3_K_M4.342 GiB9.2978

Lower is better. NF4DQ is essentially the same size as Q3_K_M while retaining substantially better perplexity; Q4_K_M buys a smaller quality improvement with about 0.93 GiB more weight memory.

Throughput, 27B, one A100, both builds in the same run, tokens per second
BuildSizePrefillDecode
NF4DQ13.23 GiB734.5260.81
Q4_K_M17.66 GiB1300.0448.67

NF4DQ is 25 percent smaller and generates 25 percent faster. Prefill is roughly half the speed because prompt processing takes a fallback path until the format has a tile loader.

Perplexity, wikitext-2 at context 512, Qwen3.8-27B
BuildSizePerplexity
BF1650.900 GiB6.9530
Q4_K_M15.652 GiB6.9787
NF4DQ13.230 GiB7.0890
Q3_K_M12.643 GiB7.3362

Lower is better. NF4DQ sits between Q4_K_M and Q3_K_M on quality while being smaller than both.

Decode on consumer and cloud hardware, tokens per second
MachineModelDecodeWith MTP
NVIDIA L4, 23 GB27B16.8430.13
Apple M1, 8 GB9B10.28–

MTP is multi-token prediction. The L4 row is worth reading twice: a 27B model in about 16.9 GB total with an 8k context, on a card that Q4_K_M would leave almost nothing spare on.

If you reproduce any of this and get something different, open an issue with your hardware and build flags. Numbers that do not replicate are worth more to this project than numbers that do.