12877b6224097c3a2e1aa2e00b9ef1fa8df1d4dd
Default build: this narrow automatic dispatch gives about 9-10% prefill gain in the tested 9B models. No extra build or launch flag is required. For the larger measured 24-25% long-prompt gain, configure with -DGGML_CUDA_FORCE_CUBLAS=ON and rebuild. This is an existing CMake option, not a runtime environment variable or a new feature in this commit. With it enabled, Ornith-1.0-9B UD-Q4_K_XL gained 25.24% prefill and Qwen3.5-9B UD-Q4_K_XL gained 24.26% on 16384-token server requests, with TG near 66 t/s. These results are specific to one CMP50HX 10 GiB, the tested models and batch settings; they are not a universal 25% gain or a full-model 27B measurement. Global cuBLAS is not enabled by default: the tested N256 matrix operations lost 12.83-28.20%. That is an operation-level result, not a measured short-request server regression. Other shapes, workloads and peak memory still need validation before broadening the default dispatch. Select the existing FP16 cuBLAS path for contiguous, device-backed Q4_K and IQ4_XS FFN weights at batches of 1024 through 2048 tokens on SM75. Limit the rule to 4096x12288 and 5120x17408 matrices in either orientation to bound the FP16 weight workspace and avoid unmeasured shapes. Keep MMVQ decode, smaller batches, batched matrices, host-backed weights, MoE dispatch, other quant types and other architectures unchanged. Honor GGML_CUDA_FORCE_MMQ. No new kernel or quantization format is added. Validation on one CMP50HX 10 GiB: - 52 existing and 24 added numerical matrix cases passed. - Three paired timing runs: selected shapes gained 12.4-43.9%; small-batch controls ranged from -0.14% to +1.32%. - Real 16384-token requests, three measured runs after warmup, no cached prompt tokens: Ornith 9B UD-Q4_K_XL gained 9.77% prefill and Qwen3.5 9B UD-Q4_K_XL gained 9.14% against the final baseline repeat. TG stayed within 0.2% of that baseline. Compute Sanitizer remains unavailable on this device; numerical checks are not a substitute for sanitizer coverage.
llama.cpp
LLM inference in C/C++
ggml / ops / maintainer PRs / dev stats / lib llama API / llama-server REST API
Quick start
A few options to get llama.cpp installed on your machine:
- Visit https://llama.app and follow the instructions
- Run with Docker - see our Docker documentation
- Download pre-built binaries from the releases page
- Build from source by cloning this repository - check out our build guide
Once installed:
# Download and run a model directly from Hugging Face
llama cli -hf ggml-org/Qwen3.5-0.8B-GGUF
# Launch OpenAI-compatible API server
llama serve -hf ggml-org/Qwen3.5-0.8B-GGUF
|
|
|
Description
The main goal of llama.cpp is to enable LLM (and VLM) inference with minimal setup and state-of-the-art performance on
a wide range of hardware - locally and in the cloud.
- Plain C/C++ implementation without any dependencies
- Apple silicon is a first-class citizen - optimized via ARM NEON, Accelerate and Metal frameworks
- AVX, AVX2, AVX512 and AMX support for x86 architectures
- RVV, ZVFH, ZFH, ZICBOP and ZIHINTPAUSE support for RISC-V architectures
- 1.5-bit, 2-bit, 3-bit, 4-bit, 5-bit, 6-bit, and 8-bit integer quantization for faster inference and reduced memory use
- Custom CUDA kernels for running LLMs on NVIDIA GPUs (support for AMD GPUs via HIP and Moore Threads GPUs via MUSA)
- Vulkan and SYCL backend support
- CPU+GPU hybrid inference to partially accelerate models larger than the total VRAM capacity
The llama.cpp project is build on top of the ggml library.
Supported backends
| Backend | Target devices |
|---|---|
| BLAS | All |
| BLIS | All |
| CANN | Ascend NPU |
| CUDA | Nvidia GPU |
| HIP | AMD GPU |
| Hexagon | Snapdragon |
| IBM zDNN | IBM Z & LinuxONE |
| MUSA | Moore Threads GPU |
| Metal | Apple Silicon |
| OpenCL | Adreno GPU |
| OpenVINO [In Progress] | Intel CPUs, GPUs, and NPUs |
| RPC | All |
| SYCL | Intel GPU |
| VirtGPU | VirtGPU APIR |
| Vulkan | GPU |
| WebGPU | All |
| ZenDNN | AMD CPU |
Documentation
Tools
Development
- How to build
- Running on Docker
- Build on Android
- Multi-GPU usage
- Performance troubleshooting
- GGML tips & tricks
- XCFramework
- Completions
- Models
- Release process
Contributing
- Contributors can open PRs
- Collaborators will be invited based on contributions
- Maintainers can push to branches in the
llama.cpprepo and merge PRs into themasterbranch - Any help with managing issues, PRs and projects is very appreciated!
- Read the CONTRIBUTING.md for more information
Acknowledgements
- yhirose/cpp-httplib - Single-header HTTP server, used by
llama-server- MIT license - nothings/stb - Single-header image format decoder, used by multimodal subsystem - Public domain
- nlohmann/json - Single-header JSON library, used by various tools/examples - MIT License
- mackron/miniaudio - Single-header audio format decoder, used by multimodal subsystem - Public domain
- sheredom/subprocess.h - Single-header process launching solution for C and C++ - Public domain
Description
llama.cpp fork with AVX1, NUMA, SM75 Turing, and FastMTP optimizations
364 MiB
0 Stars
1 Watchers
0 Forks
Languages
C++
55.8%
C
16.3%
Python
7.5%
Cuda
5.1%
TypeScript
4.3%
Other
10.8%