tritium
04Benchmarks

Every number, with its method attached.

Same host (AMD Ryzen 9 8945HX, Zen 4, AVX-512 VNNI), greedy decoding, 32 tokens, median of three invocations per baseline. Tritium decodes the four-prompt suite; the baselines generate from an empty context, because llama-bench takes no prompt file. Both are steady-state batch-1 decode.

bitnet.cpp runs the identical checkpoint, so that column is the honest comparison. llama.cpp runs Qwen2.5-3B Q4_K_M because mainline cannot load the i2_s type — a different model at a different quality point. This page should not be read as "ternary beats 4-bit".

510152025303540124816THREADSTOK/Stritium 20.7llama.cpp 23.9bitnet.cpp 31.2
Median of three, 32 tokens, greedy. Tritium leads to four threads, then declines where bitnet.cpp keeps climbing.

Raw rows

2026-08-25bitnet.cppI2_S1—13.61————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-25bitnet.cppI2_S2—19.10————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-25bitnet.cppI2_S4—26.72————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-25bitnet.cppI2_S8—32.49————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-25bitnet.cppI2_S16—31.21————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-25llama.cppQ4_K_M1—15.40————ok2104 MB file; different model and quality point; median of 3
2026-08-25llama.cppQ4_K_M2—22.06————ok2104 MB file; different model and quality point; median of 3
2026-08-25llama.cppQ4_K_M4—27.83————ok2104 MB file; different model and quality point; median of 3
2026-08-25llama.cppQ4_K_M8—26.18————ok2104 MB file; different model and quality point; median of 3
2026-08-25llama.cppQ4_K_M16—23.88————ok2104 MB file; different model and quality point; median of 3
2026-08-25tritiumternary-1.581avx512vnni19.40345.922.8547.41220ok
2026-08-25tritiumternary-1.582avx512vnni26.73243.131.4854.01220ok
2026-08-25tritiumternary-1.584avx512vnni27.90238.832.8557.41220ok
2026-08-25tritiumternary-1.588avx512vnni25.93252.330.5358.01219ok
2026-08-25tritiumternary-1.5816avx512vnni20.72309.424.4049.01218ok
2026-08-23bitnet.cppI2_S1—12.54————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-23bitnet.cppI2_S2—19.64————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-23bitnet.cppI2_S4—27.29————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-23bitnet.cppI2_S8—31.90————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-23bitnet.cppI2_S16—30.51————ok1187 MB file; same checkpoint; f16 token_embd; median of 3
2026-08-23llama.cppQ4_K_M1—13.91————ok2104 MB file; different model and quality point; median of 3
2026-08-23llama.cppQ4_K_M2—20.01————ok2104 MB file; different model and quality point; median of 3
2026-08-23llama.cppQ4_K_M4—25.54————ok2104 MB file; different model and quality point; median of 3
2026-08-23llama.cppQ4_K_M8—24.72————ok2104 MB file; different model and quality point; median of 3
2026-08-23llama.cppQ4_K_M16—22.84————ok2104 MB file; different model and quality point; median of 3
2026-08-23tritiumternary-1.581avx512vnni13.28499.324.3651.11846ok
2026-08-23tritiumternary-1.582avx512vnni14.61462.726.8056.31846ok
2026-08-23tritiumternary-1.584avx512vnni15.23446.827.9353.91846ok
2026-08-23tritiumternary-1.588avx512vnni15.23445.827.9355.81845ok
2026-08-23tritiumternary-1.5816avx512vnni14.98454.527.4957.41846ok
2026-08-22bitnet.cppI2_S4——————unavailableno bitnet-cli on PATH; set BITNET_CPP_BIN
2026-08-22llama.cppQ4_K_M4——————unavailableno llama-bench or llama-cli on PATH; set LLAMA_CPP_BIN
2026-08-22tritiumternary-1.584avx512vnni15.01454.227.5461.62334ok

Unavailable rows are kept: a baseline that was not installed on that date is a fact about the run, not a gap in the table. Hover a truncated note for the full text.

Reproduce every number on this page
export LLAMA_CPP_BIN=/path/to/llama.cpp/build/bin/llama-bench
export LLAMA_GGUF=/path/to/qwen2.5-3b-instruct-q4_k_m.gguf
export BITNET_CPP_BIN=/path/to/bitnet.cpp/build/bin/llama-bench
export BITNET_GGUF=/path/to/ggml-model-i2_s.gguf
for T in 1 2 4 8 16; do
    benches/run.sh --model models/bitnet-2b4t.trit --tokens 32 --threads "$T"
done
The defaults differ from these parameters, so reproduce with exactly this invocation. Every performance claim ships with a script; a claim without one does not appear here.