Instructions to use HelloSun/flint_cpu_opt with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use HelloSun/flint_cpu_opt with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL # Run inference directly in the terminal: llama cli -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL # Run inference directly in the terminal: llama cli -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL # Run inference directly in the terminal: ./build/bin/llama cli -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL
Use Docker
docker model run hf.co/HelloSun/flint_cpu_opt:UD-Q4_K_XL
- Llama new
- LM Studio
- Jan
- vLLM
How to use HelloSun/flint_cpu_opt with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "HelloSun/flint_cpu_opt" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "HelloSun/flint_cpu_opt", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/HelloSun/flint_cpu_opt:UD-Q4_K_XL
- Ollama
How to use HelloSun/flint_cpu_opt with Ollama:
ollama run hf.co/HelloSun/flint_cpu_opt:UD-Q4_K_XL
- Unsloth Desktop
- Pi
How to use HelloSun/flint_cpu_opt with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "HelloSun/flint_cpu_opt:UD-Q4_K_XL" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use HelloSun/flint_cpu_opt with Docker Model Runner:
docker model run hf.co/HelloSun/flint_cpu_opt:UD-Q4_K_XL
- Lemonade
How to use HelloSun/flint_cpu_opt with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull HelloSun/flint_cpu_opt:UD-Q4_K_XL
Run and chat with the model
lemonade run user.flint_cpu_opt-UD-Q4_K_XL
List all available models
lemonade list
- Hermes Agent
How to use HelloSun/flint_cpu_opt with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default HelloSun/flint_cpu_opt:UD-Q4_K_XL
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use HelloSun/flint_cpu_opt with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf HelloSun/flint_cpu_opt:UD-Q4_K_XL
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "HelloSun/flint_cpu_opt:UD-Q4_K_XL" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Download benchmarks/q41-summary.md from HelloSun/flint_cpu_opt: direct link, hf CLI and curl.
- Browser
- Download file 3.71 kB
-
https://huggingface.co/HelloSun/flint_cpu_opt/resolve/main/benchmarks/q41-summary.md
- Command line
-
hf download hf://HelloSun/flint_cpu_opt/benchmarks/q41-summary.md
-
curl -L -o q41-summary.md https://huggingface.co/HelloSun/flint_cpu_opt/resolve/main/benchmarks/q41-summary.md
RecursiveSI/flint-int4-gguf (flint-int4-q4_1.gguf) with this patch
The Q4_1 file (24.2 GiB, every weight tensor Q4_1; token_embd and the router are F32) is not hosted here; download it from
RecursiveSI/flint-int4-gguf. The patch adds an AVX512-VNNI vec_dot for
Q4_1 x Q8_1 (the x86 path had AVX2 only) and puts Q4_1 into the tiled VNNI GEMM used for prefill.
llama-bench -t 16 -fa on -lm mlock -b 1024 -ub 1024, 3 interleaved rounds, median t/s (raw: q41-ab-interleaved.csv for the
vec_dot kernel, q41-tiled-ab-interleaved.csv for the tiled GEMM),
Xeon Platinum 8559C, same host as the other benchmarks (shared, +-8 % per run).
| pp256 | pp2048 | tg128 | |
|---|---|---|---|
| stock llama.cpp (de5122d) | 182.7 | 188.7 | 48.3 |
| this patch, vec_dot only | 198.8 | 208.5 | 54.0 |
| this patch, tiled GEMM | 266.5 | 297.2 | 55.7 |
| gain vs stock | +46 % | +57 % | +15 % |
| gain vs vec_dot only | +34 % | +42 % | +3 % (noise) |
Decode is unchanged by the tiled path (single-row work stays below the tiled row threshold); the small tg difference is noise.
Tiled Q4_1 GEMM (prefill)
Q4_1 tiles carry no super-block scale: each 32-wide block of a 256-element slab has its own f32 d (scale) and m (min).
The tiled kernel gains sd/sm arrays (per-32-block f32, indexed per tile row) and a Q41 template flag; activations use the
existing Q8_1 vec_dot_type, so no new quantizer was needed. Per 32-block the kernel computes
d_a * (d_w * dot(q, code) + m_w * sum(code)): the integer dot and integer code sum are exact and only the f32 accumulation
order differs from vec_dot. VNNI uses vpdpbusd with the 0..15 weight nibbles as the unsigned side. The driver scales the
k-block byte offset by 256/blck_size (8 for Q4_1) instead of assuming one block per 256 elements.
vec_dot kernel (decode)
Two 32-wide blocks per iteration. The two blocks' nibbles are packed into one ymm with memory-source vinserti128
(no shuffle-port work), low and high nibbles each go through one vpdpbusd against the matching Q8_1 halves, the four fp16
header values of the two blocks are converted at once, and the per-block d*dy scale is spread with a single vpermps.
A 512-bit version that re-ordered nibbles with cross-lane shuffles was slower than stock (shuffle-port bound) and was dropped.
Prefetch distance GGML_Q41_PF (blocks, default 192; 192-320 equal in the cold-MoE microbenchmark).
Microbenchmarks (16 threads, K=2048): cache-resident mul_mat 183 -> 220 GB/s, cold MoE decode (mul_mat_id) 43 -> 57 GB/s.
Accuracy
wikitext-2 test, 32 x 512, tiled Q4_1 vs the vec_dot path of the same patch (logits baseline):
| KLD | same top-1 | |
|---|---|---|
tiled Q4_1 vs vec_dot (q41-tiled-kld.log) |
0.0372 +- 0.0026 | 94.2 % |
| vec_dot patch vs stock | 0.0364 +- 0.0029 | 93.8 % |
stock with -fa off (noise floor) |
0.0385 +- 0.0027 | 93.9 % |
The tiled path is inside the patch's own noise floor. Graph-level mul_mat / mul_mat_id error versus a float reference is
identical for tiled and vec_dot (5.29e-3 vs 5.29e-3 for T=1, 5.35e-3 vs 5.39e-3 for T=64; Q8_0 reference 5.35e-3).
Integer dot products are exact; only float accumulation order differs.
Versus the Q4_K_XL file (same patch, same host)
| file | pp256 | pp2048 | tg128 |
|---|---|---|---|
| flint-UD-Q4_K_XL (25.1 GB), patched | 296 | 307 | 42.8 |
| flint-int4-q4_1 (26.0 GB), patched | 266 | 297 | 55.7 |
Q4_1 decodes about 30 % faster (0.625 B/weight and a simple layout) and now prefills within about 10 % of Q4_K_XL (the tiled Q4_1 GEMM closed most of the earlier gap). PPL of the two files is similar (18.26 vs 18.36 stock).