xrip 12877b6224 cuda : select SM75 prefill cuBLAS path; document optional 25% build gain
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.
2026-09-21 20:50:31 +03:00
2026-09-21 20:46:09 +03:00
2026-09-21 20:46:09 +03:00
2026-06-12 15:53:26 +02:00
2026-02-02 08:38:55 +02:00
2026-09-09 15:56:27 +02:00

llama.cpp

llama

Quick start

A few options to get llama.cpp installed on your machine:

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
VLM session with `llama cli` VLM session with llama cli Built-in web UI against `llama serve` running Qwen 3.6 Built-in web UI against llama serve

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

Contributing

  • Contributors can open PRs
  • Collaborators will be invited based on contributions
  • Maintainers can push to branches in the llama.cpp repo and merge PRs into the master branch
  • 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
S
Description
llama.cpp fork with AVX1, NUMA, SM75 Turing, and FastMTP optimizations
Readme MIT
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%