Presets

Preconfigured presets and Docker-based build/run scripts for llama.cpp and turboquant.

Hardware

Linux host has:

  • RTX 2080 SUPER: CUDA device 0, compute capability sm_75, ~8 GB VRAM
  • GTX 980: CUDA device 1, compute capability sm_52, ~4 GB VRAM
  • Proprietary NVIDIA driver 580

llama.cpp CUDA builds target both GPUs with:

CMAKE_CUDA_ARCHITECTURES=52;75

The host keeps CUDA 13.4. The llama.cpp build uses CUDA 12.9 inside an Ubuntu 24.04 container because CUDA 12.9 is incompatible with host Ubuntu 26 headers.

Presets

Two preset files define model configurations with server parameters, quantization, and speculative decoding settings:

File Purpose
preset.ini Standard llama.cpp presets
turboquant.ini TurboQuant presets with KV cache tuning (cache-type-k, cache-type-v)

GPU settings in preset.ini:

device = CUDA0,CUDA1
split-mode = layer
main-gpu = 0
fit = on

Automatic fitting handles model VRAM overflow. layer split minimizes PCIe traffic; the GTX 980 is connected at PCIe x1.

Docker setup

Host requirements:

  • Docker
  • NVIDIA Container Toolkit
  • Proprietary NVIDIA driver 580

Build image once after changing Dockerfile:

sudo docker compose build

Files:

File Purpose
Dockerfile CUDA 12.9.1 build image with CMake, OpenSSL, GCC, and ccache
docker-compose.yml GPU-enabled llama.cpp build service
build-llama.cpp.sh Pull source and run containerized build

The image includes libssl-dev, so llama.cpp can download Hugging Face models over HTTPS.

Scripts

Build (Linux)

sudo docker compose build    # First time or after Dockerfile changes
./build-llama.cpp.sh         # Build standard llama.cpp
./build-llama.cpp-tq.sh      # Build turboquant fork

The standard build writes binaries to:

/mnt/MODELS/llama.cpp/build/bin/

No host CUDA toolkit or host compiler is required for the standard build.

Build (Windows)

build-llama.cpp.bat         # Build standard llama.cpp
build-llama.cpp-tq.bat      # Build turboquant fork

Server

./server.sh                 # Start llama.cpp server with preset.ini
./server-tq.sh              # Start turboquant server with turboquant.ini

server.sh uses the prebuilt CUDA 12.9 image, exposes port 8080, and serves both GPUs. From another computer:

http://10.0.0.74:8080

The server runs in router mode and loads models on demand. Set an API key before exposing it beyond a trusted LAN; current presets intentionally have no key configured.

Benchmark

Targeted Qwen3.6 dual-GPU benchmark:

./bench-qwen3.6-35b.sh

It tests:

  • GPU layer offload (-ngl)
  • CPU thread counts (-t)
  • Generation lengths (-n)
  • Load modes (auto, mmap, mlock, mmap+mlock, dio)
  • Lazy loading (auto, on, off)
  • Batch and microbatch sizes
  • Layer and row split modes
  • Manual tensor split ratios
  • CPU MoE placement
  • KV cache precision

The benchmark uses CUDA 12.9 in the prebuilt container and targets both GPUs. llama-bench device syntax is slash-separated:

-dev CUDA0/CUDA1

This differs from server/preset syntax, which is comma-separated:

device = CUDA0,CUDA1

Results save to bench-results/. Analyze completed dual-GPU results:

./analyze-bench.py

The analyzer ignores old single-GPU results, ranks prompt and generation throughput separately, and prints a recommended preset block. It does not modify preset.ini.

General benchmark script remains available:

./llama-bench.sh [model] [--llama|--tq] [--quant q1,q2] [--cache-type-k k1,k2] [--cache-type-v v1,v2] [--ncmoe m1,m2]

Quick Start

cd /mnt/MODELS/presets
sudo docker compose build
./build-llama.cpp.sh
./server.sh

Then use the OpenAI-compatible API on port 8080.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support