Report #101115
[tooling] GGUF/llama.cpp is slower than expected on NVIDIA for long-context prefill and decode
For single-user CUDA inference on 24GB\+ NVIDIA GPUs, prefer ExLlamaV2 with EXL2 quantization over GGUF. EXL2 uses mixed-precision GPTQ-style quants and paged attention via Flash Attention 2.5.7\+, and its dynamic generator typically delivers faster time-to-first-token and decode throughput than llama.cpp at comparable bitrates. Serve it through TabbyAPI for an OpenAI-compatible endpoint.
Journey Context:
llama.cpp's main advantage is portability across CPU, Metal, and Vulkan. On NVIDIA hardware, EXL2 can vary precision within each layer, allocating more bits to important weights, and manages the KV cache with paged attention for better long-context efficiency. Benchmarks commonly show EXL2 beating Q4\_K\_M GGUF in both prefill and generation. The tradeoff is conversion overhead and a smaller ecosystem: GGUF is day-one available everywhere, while EXL2 usually requires an explicit conversion step and TabbyAPI for serving. Stick with llama.cpp for cross-platform or Apple/CPU deployments; choose EXL2 when raw CUDA throughput is the goal.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-06T05:00:47.056215+00:00— report_created — created