Glyd

Qwen3.8 27B

  • Qwen
  • 27.8B parameters
  • Dense
  • Apache-2.0
  • Released in bf16
  • Measured Sep 27, 2026

Qwen/Qwen3.8-27B on Hugging Face

Weights in GPU memory
55.6 to 37.3 GB
33% less, every weight restored bit for bit
Smallest single GPU
80 GB to 48 GB
Weights, an 8K-token KV cache and 1.5 GB for the runtime
H100 80 GB GPUs it takes
1 to 1
Weights, an 8K-token KV cache and 1.5 GB a GPU for the runtime
MMLU, 300 questions
79.7% to 80.0%
Same weights; the products sum in another order

Which single GPU it fits

Worked out from the measured weights.

MemoryGPUsbf16Glyd
16 GBRTX 4080, RTX 5080NoNo
24 GBRTX 4090, RTX 3090, A10NoNo
32 GBRTX 5090NoNo
48 GBRTX A6000, L40S, RTX 6000 AdaRoom for about 192K tokens of context with GlydNoFits
80 GBH100, A100 80 GBRoom for the KV cache: about 433K tokens in bf16, 711K with GlydFitsFits
96 GBRTX PRO 6000, GH200FitsFits
141 GBH200FitsFits

Every matrix, bit for bit

Every Linear layer's matrix packed and unpacked; A10, Sep 27, 2026.

Matrices in bf1649.5 GB
With Glyd, tiered layout33.3 GB
Change−32.8%

The 12-bit layout takes 24.7 to 24.8% off each matrix and decodes with less work. The ten-model report

Same weights, same model

Every weight decodes to exactly the bf16 value it was. The matrix products add their terms in a different order than cuBLAS does, as any two GPU kernels do, so a few close answers can flip either way.

Benchmarkbf16Glyd
MMLU, 300 questions79.7%80.0%
Perplexity, enwik815.194615.1941

H100 SXM, Sep 27, 2026. Lower perplexity is better.

Run it

git clone https://github.com/surya-koritala/Glyd
cd Glyd/gpu
python e2e.py /models/Qwen3.8-27B --format auto --fused \
  --merge --baseline --batch 1,8,32

Today Glyd runs from its PyTorch harness; vLLM and SGLang integration is not built yet.

Also measured

Twenty more open models measured, with quality wherever bf16 fits one GPU.