SmolLM3-3B for Krafla
INT4 and INT8 conversions of HuggingFaceTB/SmolLM3-3B for Krafla, a dependency-free C11 runtime for CPU-only inference on x86-64 (SSE2 up to AVX-512 VNNI) and ARM (ARMv7 NEON up to i8mm and SVE).
Files
| File | Weights | Size | Perplexity | Prefill | Decode | SHA-256 |
|---|---|---|---|---|---|---|
SmolLM3-3B-Q4_0.mlb |
Q4_0, every matrix 4-bit | 1650 MiB | 13.78 | 58 tok/s | 18.7 tok/s | 63129893ad312949… |
SmolLM3-3B-Q4_0-mixed.mlb |
Q4_0 with v,o,down in Q8_0 |
2127 MiB | 13.29 | 48 tok/s | 15.3 tok/s | 603090acc9cce998… |
SmolLM3-3B-Q8_0.mlb |
Q8_0, every matrix 8-bit | 3116 MiB | 11.61 | 34 tok/s | 10.4 tok/s | 5d7f9c07213ec9bc… |
tokenizer.mlt |
tokenizer | 4728 KiB | 8d766e23c6e78fb7… |
Measured on a GitHub runner (AMD EPYC 7763 64-Core Processor, 4 threads) with Krafla's avx2 build. Perplexity is measured on the wikitext-2 test set, 4 chunks of 512 tokens (tools/perplexity.py --ctx 512 --chunks 4). Lower is better, and it is only comparable between files of the same model. Speed comes from ml_bench -n 128 (128 prompt tokens, then 128 decoded tokens). The full hashes are in SHA256SUMS.
Run
Download a release of Krafla (version 0.8.0 or later; Linux x86-64, AArch64 and ARMv7, Windows x86-64) and two files from here:
curl -LO https://huggingface.co/jonpark0/SmolLM3-3B-krafla/resolve/main/SmolLM3-3B-Q4_0.mlb
curl -LO https://huggingface.co/jonpark0/SmolLM3-3B-krafla/resolve/main/tokenizer.mlt
./ml_run SmolLM3-3B-Q4_0.mlb -z tokenizer.mlt --chat chatml -t 4
# or serve it with the OpenAI API at http://127.0.0.1:8080/v1
./ml_server SmolLM3-3B-Q4_0.mlb -z tokenizer.mlt --chat chatml -t 4
The files record the model's 65536-position context. ml_run and ml_server use 4096 positions of it unless you pass --ctx N, which sets the size of the KV cache.
The release's ml_run runs the most capable build your CPU supports. A greedy one-turn reply from SmolLM3-3B-Q4_0.mlb to "What is the capital of France? Answer in one sentence. /no_think":
<think>
</think>
The capital of France is Paris.
How these files were made
With Krafla 0.8.0 (commit 0b527a0) on 2026-11-03, from the safetensors of HuggingFaceTB/SmolLM3-3B:
python3 tools/convert_tokenizer.py SmolLM3-3B/tokenizer.json tokenizer.mlt
python3 tools/convert.py hf SmolLM3-3B SmolLM3-3B-Q4_0.mlb --wtype q4
python3 tools/convert.py hf SmolLM3-3B SmolLM3-3B-Q4_0-mixed.mlb --wtype q4 --q8 v,o,down
python3 tools/convert.py hf SmolLM3-3B SmolLM3-3B-Q8_0.mlb --wtype q8
Q4_0 and Q8_0 keep one scale per block of 32 weights (f16 scales: 4.5 and 8.5 bits per weight). See the user guide for the formats and the comparison with llama.cpp.
License
The license of the original model, apache-2.0, applies (copied in this repository).
Model tree for jonpark0/SmolLM3-3B-krafla
Base model
HuggingFaceTB/SmolLM3-3B-Base