Model Spend Arena2ND ED.
8B · dense · 131,072 ctx · 2026-10-03

Granite 4.1 8B

Runs on ≤8 GB · Hugging Face ↗

llama.cppvLLMOllama

AA coding index 9.5 (Artificial Analysis, frozen since 2026-09-11)

IBM's enterprise-focused 8B, Apache-2.0 licensed, tuned for tool use and RAG rather than chat flair.

First-party test · not the AA coding index

HumanEval pass@1 67% (20/30), via local GPU (Ollama, Q4_K_M). Measured by us on this hardware, as a rough sanity check — HumanEval is a different, easier, partly-contaminated benchmark than Artificial Analysis’ composite, so it is not comparable to the coding-index column.

First-party test · not the AA coding index

BigCodeBench-Hard pass@1 20% (29/148), via official protocol · llama.cpp Q6_K · one request at a time · a shared cluster GPU · mean of 3 runs, range 0.0 pp. The brutal counterpart to HumanEval — where HumanEval saturates near the top, BCB-Hard spreads the field, so this is the number that actually separates coding ability.

What we measured

Our own runs on this model. Each number carries how many problems it is over and how many times we ran it — these are not comparable with each other, and none of them is on the same scale as the third-party indices on the leaderboard.

testscoreoverconditions
BigCodeBench-Hard19.6%n=148 · 3 run(s)official protocol · llama.cpp Q6_K · one request at a time · a shared cluster GPU · mean of 3 runs, range 0.0
BFCL v4 non-live90.0% ± 1.9n=1150 · 2 run(s)BFCL v4 · Q6K GGUF via llama.cpp · one request at a time · a shared cluster GPU
RULER (long context)87.2 ± 6.8N=5/task · at 32K1 quantisations measured
Tool use · BFCL v4 non-live · first-party

90.0% ± 1.9 over 1150 problems

Q6K · a shared cluster GPU · KV f16 · 2 runs · spread between runs 0.00 points. This is the non-agentic half of BFCL: does the model call the right function with the right arguments. It says nothing about how it behaves over a long agentic conversation, which is a separate measurement. The score is BFCL’s own: the unweighted mean of four groups (simple, multiple, parallel, parallel multiple), where simple is itself the mean of Python, Java and JavaScript. Every group counts the same whatever its size, and irrelevance detection — which we also measure, another 240 problems — is not part of it. The margin follows that same weighting.

Long context · RULER · first-party
quantGiB4K8K32K
Q6_K6.789.2 ± 5.2 · N=590.6 ± 5.7 · N=587.2 ± 6.8 · N=5

All 13 RULER tasks, one request at a time, KV cache f16, bench commit c3f5e3b4, seed 42. The score is the mean of the 13; the margin is two standard deviations of the sampling, so it grows as the sample shrinks and as the score drops. Everything here clears the paper’s effective-length bar of 85.6 at every length shown.

This is not a coding score and must not be read as one. RULER asks whether the model finds and follows a fact buried in a long text. Quantising hits the two differently, so a model that still retrieves at length may already have lost the code.

First-party speed · our home cards
R9700 32GB (Vulkan)76 tok/s
RTX 4060 Ti 16GB36 tok/s

Q6_K GGUF, one request at a time, 16384 context, KV as in the model card. Re-measured 2026-08-29 with our speed kit; the run files (flags, GPU layers, device, llama.cpp build) are in results/speed/kit/r9700/. One request at a time — the speed one person sees. Data-centre cards are measured but not published.

Sizes on disk

Real GGUF file sizes = weight VRAM. Add the KV cache for your context (≈5 GB at 32K, fp16). Read from the GGUF header and checked against what llama.cpp actually allocates.

QuantizationSize
Q2_K3.4 GB
Q3_K_S3.9 GB
Q3_K_M4.3 GB
Q3_K_L4.7 GB
Q4_05.1 GB
Q4_K_S5.1 GB
Q4_K_M5.3 GB
Q4_15.6 GB
Q5_06.1 GB
Q5_K_S6.1 GB
Q5_K_M6.3 GB
Q5_16.6 GB
Q6_K7.2 GB
Q8_09.3 GB
BF1617.6 GB

Config tips

~5-6 GB at Q4 with room for long context. A safe, permissively-licensed default for on-prem / commercial use where model licence matters.