Glyd

Report · Sep 27, 2026 · Glyd

Nineteen open models: every matrix 32 to 33% smaller, bit for bit

Every Linear layer's matrix of nineteen open models, SmolLM3 3B to GLM-4.5-Air, packed and unpacked bit for bit: 31.9 to 33.0% smaller, quality on ten.

Ten popular open models were measured first; nine more have been since, from GLM-4.5-Air and Llama 4 Scout down to Llama 3.2 3B. On all nineteen, Glyd’s tiered layout stores every Linear layer’s matrix 31.9 to 33.0% smaller than bf16, and every matrix unpacks to exactly the bf16 values it held. Where quality was measured, on ten of them, bf16 and Glyd score the same to noise.

The sizes

sizes.py packs every Linear layer’s matrix of a model, unpacks it and compares the result with the original bit for bit. Two things it counts that a quick sum would miss: a layer’s experts kept as one tensor (Gemma 4, Llama 4) count as a matrix an expert, and every projection is counted, the linear-attention inputs of Qwen3-Next and Qwen3.8 included.1

ModelMatrices in bf16GlydChangeRun
GLM-4.5-Air 106B (MoE)215.9 GB144.6 GB−33.0%A10
Llama 4 Scout 109B (MoE)211.9 GB142.2 GB−32.9%A10
Qwen3-Next 80B-A3B (MoE)161.3 GB109.4 GB−32.2%A10
Llama 3.3 70B Instruct136.9 GB91.9 GB−32.9%H100 SXM
Qwen3 30B-A3B (MoE)59.8 GB40.2 GB−32.7%H100 SXM
Gemma 3 27B51.5 GB34.6 GB−32.8%H100 SXM
Muse Glimmer 30B51.3 GB34.5 GB−32.8%A10
Qwen3.8 27B49.5 GB33.3 GB−32.8%A10
Gemma 4 26B-A4B (MoE)49.0 GB32.9 GB−32.8%A10
Mistral Small 3.2 24B45.3 GB30.3 GB−33.0%H100 SXM
Phi-4 (14B)27.3 GB18.3 GB−32.9%H100 SXM
DeepSeek-R1-Distill-Qwen 14B26.4 GB18.0 GB−31.9%H100 SXM
Gemma 3 12B21.8 GB14.6 GB−32.9%A10
Llama 3.1 8B Instruct14.0 GB9.4 GB−32.8%H100 SXM
Mistral 7B Instruct v0.314.0 GB9.4 GB−32.7%H100 SXM
Qwen3 8B13.9 GB9.4 GB−32.1%H100 SXM
Qwen3 4B 25077.3 GB4.9 GB−32.2%A10
SmolLM3 3B5.6 GB3.8 GB−32.9%H100 SXM
Llama 3.2 3B Instruct5.6 GB3.8 GB−32.8%A10

The 12-bit layout, which decodes with less work and is the one Glyd picks on A10, A100 and H100, takes 23.5 to 24.8% off each (the two layouts).

The Linear layers' matrices of nineteen open models in bf16 and with Glyd's tiered layout, in GB. gpu/sizes.py on an H100 SXM (Sep 26, 2026) and an A10 (Sep 27, 2026).

The same model

The products add their terms in another order than cuBLAS’s, as any two kernels do, so a close call can go either way. Quality was measured where the harness loads the model on one GPU in bf16: perplexity on enwik8 and MMLU on 300 questions, bf16 against Glyd in the same run.

ModelPerplexity, bf16GlydMMLU, bf16GlydAnswers as bf16’sRun
Phi-4 (14B)14.788814.785576.7%76.3%99.33%H100 SXM
DeepSeek-R1-Distill-Qwen 14B27.195527.197578.0%78.0%100%H100 SXM
Llama 3.1 8B Instruct19.591519.590971.7%72.0%99.67%H100 SXM
Mistral 7B Instruct v0.312.142212.147360.7%60.7%100%H100 SXM
Qwen3 8B20.749020.742874.0%74.3%99.67%H100 SXM
SmolLM3 3B29.146729.142263.3%63.3%99.67%H100 SXM
Qwen3.8 27B15.194615.194179.7%80.0%99.67%H100 PCIe
Gemma 3 12B——74.0%74.0%99.33%H100 PCIe
Qwen3 4B 250722.463622.467271.0%71.0%99.33%A10
Llama 3.2 3B Instruct25.129825.143763.7%64.3%98.00%A10

Perplexity stays within 0.06% of bf16’s (the widest, Llama 3.2 3B: 25.1298 against 25.1437), and the MMLU answers are bf16’s on 98.0 to 100% of the questions. The differences go both ways. Gemma 3’s perplexity is left out: the harness’s windows start without the BOS token Gemma needs, which puts bf16 and Glyd alike near 12,000. The last four ran with the 12-bit layout the GPU picks (--format auto) and with q, k, v and gate, up merged (--merge); Qwen3.8 27B has a report of its own.

Method

  • Sizes: python sizes.py MODEL_DIR ..., every Linear layer’s matrix in both layouts, unpacked and compared bit for bit.
  • Quality: python e2e.py MODEL_DIR --baseline --ppl enwik8 --mmlu 300, bf16 against Glyd in the same run, where the harness loads the model as a causal LM on one GPU.
  • Models: from Hugging Face; Llama and Gemma from the ungated copies under unsloth/, the same weights.

The scripts and their options: the GPU docs.

Raw logs

Every model’s page on this site shows what is measured for it: the models.

Footnotes

  1. Only the Linear layers’ matrices are counted, so the bf16 totals sit below the checkpoints’ sizes: GLM-4.5-Air has 215.9 GB of matrices in a 220.94 GB checkpoint. ↩