LLAMA-BATCHED(1)

πŸ“¦
version 10438 Β· 2 versions
, in ubuntu stonking

πŸ’– NAME πŸ’–

llama-batched β€” it's literally llama-batched, bestie. That's the whole name, no cap.

This one lives in the User Commands chapter, and its manual page is called LLAMA-BATCHED(1). So when you type man llama-batched, this is the glow-up you get. ✨


🌸 DESCRIPTION 🌸

okay so this is not a tiny page. It's giving "novel". We're doing this in parts, and this is part 1 β€” the "common params" zone, i.e. all the flags this thing shares with its llama.cpp siblings. Grab a drink πŸ“

✨ common params ✨

  • -h, --help, --usage β€” prints the usage text and then dips. That's it. That's the whole job. πŸ‘‘
  • --version β€” show the version and the build info, so you can screenshot it when you file that issue.
  • -cl, --cache-list β€” show you the list of models chilling in the cache. Model inventory reveal ✨
  • --completion-bash β€” prints a bash completion script for llama.cpp that you can source. Free tab-completion. Spoiled, honestly. πŸ’…
  • -t, --threads N β€” how many CPU threads to use during generation. (default: <num_cpus>) β€” env: LLAMA_ARG_THREADS
  • -tb, --threads-batch N β€” how many threads to use during batch and prompt processing. (default: same as --threads)

the CPU-affinity era begins, bestie:

  • -C, --cpu-mask M β€” CPU affinity mask: an arbitrarily long hex number. It complements cpu-range. (default: "")
  • -Cr, --cpu-range lo-hi β€” the range of CPUs for affinity. It complements --cpu-mask. The two of them are a duo 🫢
  • --cpu-strict <0|1> β€” use strict CPU placement. (default: 0)
  • --prio N β€” set the process/thread priority: low(-1), normal(0), medium(1), high(2), realtime(3). (default: 0)
  • --poll <0...100> β€” use this polling level to wait for work. (0 = no polling, default: 50)
  • -Cb, --cpu-mask-batch M β€” CPU affinity mask, arbitrarily long hex. Complements cpu-range-batch. (default: same as --cpu-mask)
  • -Crb, --cpu-range-batch lo-hi β€” ranges of CPUs for affinity. Complements --cpu-mask-batch.
  • --cpu-strict-batch <0|1> β€” use strict CPU placement. (default: same as --cpu-strict)
  • --prio-batch N β€” set process/thread priority: 0-normal, 1-medium, 2-high, 3-realtime. (default: 0)
  • --poll-batch <0|1> β€” use polling to wait for work. (default: same as --poll)

context + prediction, the main character section:

  • -c, --ctx-size N β€” size of the prompt context. (default: 0, and 0 = loaded from model) β€” env: LLAMA_ARG_CTX_SIZE
  • -n, --predict, --n-predict N β€” number of tokens to predict. (default: 32, -1 = infinity 🌌) β€” env: LLAMA_ARG_N_PREDICT
  • -b, --batch-size N β€” logical maximum batch size. (default: 2048) β€” env: LLAMA_ARG_BATCH
  • -ub, --ubatch-size N β€” physical maximum batch size. (default: 512) β€” env: LLAMA_ARG_UBATCH
  • --keep N β€” number of tokens to keep from the initial prompt. (default: 0, -1 = all)
  • --swa-full β€” use the full-size SWA cache. (default: false) β€” there's more info at https://github.com/ggml-org/llama.cpp/pull/13194#issuecomment-2868343055 β€” env: LLAMA_ARG_SWA_FULL
  • -fa, --flash-attn [on|off|auto] β€” set Flash Attention use: 'on', 'off', or 'auto'. (default: 'auto') β€” env: LLAMA_ARG_FLASH_ATTN
  • -p, --prompt PROMPT β€” the prompt to start generation with. And if you want a system message, use -sys. πŸ“
  • --perf, --no-perf β€” whether to enable internal libllama performance timings. (default: false) β€” env: LLAMA_ARG_PERF
  • -f, --file FNAME β€” a file containing the prompt. (default: none)
  • -bf, --binary-file FNAME β€” a binary file containing the prompt. (default: none)
  • -e, --escape, --no-escape β€” whether to process escape sequences (\n, \r, \t, \', \", \\). (default: true)

RoPE + YaRN corner, where the context gets stretched like taffy:

  • --rope-scaling {none,linear,yarn} β€” RoPE frequency scaling method. Defaults to linear unless the model itself says otherwise. β€” env: LLAMA_ARG_ROPE_SCALING_TYPE
  • --rope-scale N β€” RoPE context scaling factor; expands the context by a factor of N. β€” env: LLAMA_ARG_ROPE_SCALE
  • --rope-freq-base N β€” RoPE base frequency, used by NTK-aware scaling. (default: loaded from model) β€” env: LLAMA_ARG_ROPE_FREQ_BASE
  • --rope-freq-scale N β€” RoPE frequency scaling factor; expands context by a factor of 1/N. β€” env: LLAMA_ARG_ROPE_FREQ_SCALE
  • --yarn-orig-ctx N β€” YaRN: original context size of the model. (default: 0 = the model's training context size) β€” env: LLAMA_ARG_YARN_ORIG_CTX
  • --yarn-ext-factor N β€” YaRN: extrapolation mix factor. (default: -1.00, and 0.0 = full interpolation) β€” env: LLAMA_ARG_YARN_EXT_FACTOR
  • --yarn-attn-factor N β€” YaRN: scale sqrt(t) or attention magnitude. (default: -1.00) β€” env: LLAMA_ARG_YARN_ATTN_FACTOR
  • --yarn-beta-slow N β€” YaRN: high correction dim or alpha. (default: -1.00) β€” env: LLAMA_ARG_YARN_BETA_SLOW
  • --yarn-beta-fast N β€” YaRN: low correction dim or beta. (default: -1.00) β€” env: LLAMA_ARG_YARN_BETA_FAST

memory + cache vibes:

  • -kvo, --kv-offload, -nkvo, --no-kv-offload β€” whether to enable KV cache offloading. (default: enabled) β€” env: LLAMA_ARG_KV_OFFLOAD
  • --repack, -nr, --no-repack β€” whether to enable weight repacking. (default: enabled) β€” env: LLAMA_ARG_REPACK
  • --no-host β€” bypass the host buffer, which allows extra buffers to be used. β€” env: LLAMA_ARG_NO_HOST
  • -ctk, --cache-type-k TYPE β€” KV cache data type for K. Allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1. (default: f16) β€” env: LLAMA_ARG_CACHE_TYPE_K
  • -ctv, --cache-type-v TYPE β€” KV cache data type for V. Allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1. (default: f16) β€” env: LLAMA_ARG_CACHE_TYPE_V
  • -dt, --defrag-thold N β€” KV cache defragmentation threshold. ⚠️ DEPRECATED ⚠️ β€” env: LLAMA_ARG_DEFRAG_THOLD
  • -np, --parallel N β€” number of parallel sequences to decode. (default: 1) β€” env: LLAMA_ARG_N_PARALLEL

πŸ’€ deprecation zone, pay attention bestie: all three of these are DEPRECATED in favor of --load-mode. They still exist, they still do the thing, but the cool kids moved on.
  • --mlock β€” DEPRECATED in favor of --load-mode: force the system to keep the model in RAM rather than swapping or compressing it. β€” env: LLAMA_ARG_MLOCK
  • --mmap, --no-mmap β€” DEPRECATED in favor of --load-mode: whether to memory-map the model. (if mmap is disabled, you get a slower load but it may reduce pageouts if you're not using mlock) β€” env: LLAMA_ARG_MMAP
  • -dio, --direct-io, -ndio, --no-direct-io β€” DEPRECATED in favor of --load-mode: use DirectIO if it's available. β€” env: LLAMA_ARG_DIO

  • -lm, --load-mode MODE β€” model loading mode. (default: auto) β€” env: LLAMA_ARG_LOAD_MODE
    • auto: mmap, unless a device doesn't support it
    • none: no special loading mode
    • mmap: memory-map the model (if mmap is disabled, slower load but may reduce pageouts if not using mlock)
    • mlock: force the system to keep the model in RAM rather than swapping or compressing
    • mmap+mlock: mmap + force the system to keep the model in RAM rather than swapping or compressing
    • dio: use DirectIO if available
  • --numa TYPE β€” attempt optimizations that help on some NUMA systems. β€” env: LLAMA_ARG_NUMA
    • distribute: spread execution evenly over all nodes
    • isolate: only spawn threads on CPUs on the node that execution started on
    • numactl: use the CPU map provided by numactl

And if you've run without this before, it's recommended that you drop the system page cache before using this. See https://github.com/ggml-org/llama.cpp/issues/1437.


devices, GPUs, and splitting the model like a pizza πŸ•:

  • -dev, --device <dev1,dev2,..> β€” comma-separated list of devices to use for offloading (none = don't offload). Use --list-devices to see a list of available devices. β€” env: LLAMA_ARG_DEVICE
  • --list-devices β€” print the list of available devices and exit. Peek at the roster πŸ‘€
  • -ot, --override-tensor <tensor name pattern>=<buffer type>,... β€” override tensor buffer type. β€” env: LLAMA_ARG_OVERRIDE_TENSOR
  • -cmoe, --cpu-moe β€” keep all Mixture of Experts (MoE) weights in the CPU. β€” env: LLAMA_ARG_CPU_MOE
  • -ncmoe, --n-cpu-moe N β€” keep the Mixture of Experts (MoE) weights of the first N layers in the CPU. β€” env: LLAMA_ARG_N_CPU_MOE
  • -ngl, --gpu-layers, --n-gpu-layers N β€” max number of layers to store in VRAM, either an exact number, 'auto', or 'all'. (default: auto) β€” env: LLAMA_ARG_N_GPU_LAYERS
  • -sm, --split-mode {none,layer,row,tensor} β€” how to split the model across multiple GPUs, one of: β€” env: LLAMA_ARG_SPLIT_MODE
    • none: use one GPU only
    • layer (default): split layers and KV across GPUs (pipelined)
    • row: split weight across GPUs by rows (parallelized)
    • tensor: split weights and KV across GPUs (parallelized, EXPERIMENTAL πŸ§ͺ)
  • -ts, --tensor-split N0,N1,N2,... β€” fraction of the model to offload to each GPU; a comma-separated list of proportions, e.g. 3,1. β€” env: LLAMA_ARG_TENSOR_SPLIT
  • -mg, --main-gpu INDEX β€” the GPU to use for the model (with split-mode = none), or for intermediate results and KV (with split-mode = row). (default: 0) β€” env: LLAMA_ARG_MAIN_GPU
  • -fit, --fit [on|off] β€” whether to adjust unset arguments to fit in device memory: 'on' or 'off'. (default: 'on') β€” env: LLAMA_ARG_FIT
  • -fitt, --fit-target MiB0,MiB1,MiB2,... β€” target margin per device for --fit; a comma-separated list of values, and a single value is broadcast across all devices. default: 1024 β€” env: LLAMA_ARG_FIT_TARGET
  • -fitc, --fit-ctx N β€” minimum ctx size that can be set by the --fit option. default: 4096 β€” env: LLAMA_ARG_FIT_CTX
  • --check-tensors β€” check the model tensor data for invalid values. (default: false)
  • --override-kv KEY=TYPE:VALUE,... β€” advanced option to override model metadata by key. To specify multiple overrides, either use comma-separated values. Types: int, float, bool, str. Example:
--override-kv tokenizer.ggml.add_bos_token=bool:false,tokenizer.ggml.add_eos_token=bool:false
  • --op-offload, --no-op-offload β€” whether to offload host tensor operations to device. (default: true)

adapters + control vectors, the customization section πŸŽ€:

  • --lora FNAME β€” path to the LoRA adapter (use comma-separated values to load multiple adapters).
  • --lora-scaled FNAME:SCALE,... β€” path to the LoRA adapter with a user-defined scaling. (format: FNAME:SCALE,...) note: use comma-separated values.
  • --control-vector FNAME β€” add a control vector. note: use comma-separated values to add multiple control vectors.
  • --control-vector-scaled FNAME:SCALE,... β€” add a control vector with a user-defined scaling SCALE. note: use comma-separated values. (format: FNAME:SCALE,...)
  • --control-vector-layer-range START END β€” layer range to apply the control vector(s) to, start and end inclusive.

  • -m, --model FNAME β€” model path to load. β€” env: LLAMA_ARG_MODEL
  • -mu, --model-url MODEL_URL β€” model download url. (default: unused) β€” env: LLAMA_ARG_MODEL_URL
  • -dr, --docker-repo [<repo>/]<model>[:quant]
🫢 okay so this is exactly where part 1 of the page runs out β€” the description for -dr picks up in the next chunk. Don't @ me, I'm just the messenger. Part 2 incoming πŸ’–
  • Docker Hub model repository. repo is optional, defaults to ai/. quant is optional, defaults to :latest. example: gemma3 (default: unused) (env: LLAMA_ARG_DOCKER_REPO)
  • -hf, -hfr, --hf-repo <user>/<model>[:quant] β€” bestie this one pulls straight from Hugging Face πŸ’– it's the model repository, and quant is optional, case-insensitive, defaults to Q4_K_M, or lowkey falls back to the first file in the repo if Q4_K_M doesn't exist. mmproj also gets downloaded automatically if it's available β€” to disable that, add --no-mmproj. example: ggml-org/GLM-4.7-Flash-GGUF:Q4_K_M (default: unused) (env: LLAMA_ARG_HF_REPO)
  • -hff, --hf-file FILE β€” the Hugging Face model file. if you specify this, it overrides the quant in --hf-repo (default: unused) (env: LLAMA_ARG_HF_FILE)
  • -hft, --hf-token TOKEN β€” your Hugging Face access token (default: value from the HF_TOKEN environment variable) (env: HF_TOKEN)
  • --log-disable β€” Log disable 🚫 (yes bestie, the logs go bye-bye)
  • --log-file FNAME β€” log it all to a file instead (env: LLAMA_ARG_LOG_FILE)
  • --log-colors [on|off|auto] β€” set colored logging, so the options are 'on', 'off', or 'auto' (default: 'auto'). 'auto' turns the colors on when the output is going to a terminal ✨ (env: LLAMA_ARG_LOG_COLORS)
  • -v, --verbose, --log-verbose β€” cranks the verbosity level to infinity, meaning it logs all messages. super useful for debugging πŸ”₯
  • --offline β€” offline mode: forces use of the cache and prevents network access πŸ”’ (env: LLAMA_ARG_OFFLINE)
  • -lv, --verbosity, --log-verbosity N β€” set the verbosity threshold. any message with a higher verbosity gets ignored. values:
    • 0: generic output
    • 1: error
    • 2: warning
    • 3: info
    • 4: trace (more info)
    • 5: debug

(default: 3) (env: LLAMA_ARG_LOG_VERBOSITY)

  • --log-prefix, --no-log-prefix β€” enable prefix in log messages (env: LLAMA_ARG_LOG_PREFIX)
  • --log-timestamps, --no-log-timestamps β€” enable timestamps in log messages (env: LLAMA_ARG_LOG_TIMESTAMPS)
  • --spec-draft-type-k, -ctkd, --cache-type-k-draft TYPE β€” the KV cache data type for K, for the draft model. allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_SPEC_DRAFT_CACHE_TYPE_K)
  • --spec-draft-type-v, -ctvd, --cache-type-v-draft TYPE β€” the KV cache data type for V, for the draft model. allowed values: f32, f16, bf16, q8_0, q4_0, q4_1, iq4_nl, q5_0, q5_1 (default: f16) (env: LLAMA_ARG_SPEC_DRAFT_CACHE_TYPE_V)

πŸŽ€ sampling params πŸŽ€

  • --samplers SAMPLERS β€” the samplers used for generation, in order, separated by ; (default: penalties;dry;top_n_sigma;top_k;typ_p;top_p;min_p;xtc;temperature)
  • -s, --seed SEED β€” the RNG seed (default: -1, and -1 means use a random seed for you 🎲)
  • --sampler-seq, --sampling-seq SEQUENCE β€” a simplified sequence for the samplers that will be used (default: edskypmxt)
  • --ignore-eos β€” ignore the end of stream token and keep generating (this implies --logit-bias EOS-inf) πŸ™ˆ
  • --temp, --temperature N β€” temperature (default: 0.80)
  • --top-k N β€” top-k sampling (default: 40, 0 = disabled) (env: LLAMA_ARG_TOP_K)
  • --top-p N β€” top-p sampling (default: 0.95, 1.0 = disabled)
  • --min-p N β€” min-p sampling (default: 0.05, 0.0 = disabled)
  • --top-nsigma, --top-n-sigma N β€” top-n-sigma sampling (default: -1.00, -1.0 = disabled)
  • --xtc-probability N β€” xtc probability (default: 0.00, 0.0 = disabled)
  • --xtc-threshold N β€” xtc threshold (default: 0.10, 1.0 = disabled)
  • --typical, --typical-p N β€” locally typical sampling, parameter p (default: 1.00, 1.0 = disabled)
  • --repeat-last-n N β€” last n tokens to consider for penalize (default: 64, 0 = disabled)
  • --repeat-penalty N β€” penalize repeat sequence of tokens (default: 1.00, 1.0 = disabled)
  • --presence-penalty N β€” repeat alpha presence penalty (default: 0.00, 0.0 = disabled)
  • --frequency-penalty N β€” repeat alpha frequency penalty (default: 0.00, 0.0 = disabled)
  • --dry-multiplier N β€” set the DRY sampling multiplier (default: 0.00, 0.0 = disabled)
  • --dry-base N β€” set the DRY sampling base value (default: 1.75)
  • --dry-allowed-length N β€” set the allowed length for DRY sampling (default: 2)
  • --dry-penalty-last-n N β€” set the DRY penalty for the last n tokens (default: 64, 0 = disable)
  • --dry-sequence-breaker STRING β€” add a sequence breaker for DRY sampling, which clears out the default breakers ('\n', ':', '"', '*') in the process. use "none" if you don't want any sequence breakers 🚫
  • --adaptive-target N β€” adaptive-p: select tokens near this probability (valid range 0.0 to 1.0; negative = disabled) (default: -1.00) [(more info)] β€” the link is https://github.com/ggml-org/llama.cpp/pull/17927
  • --adaptive-decay N β€” adaptive-p: decay rate for target adaptation over time. lower values are more reactive, higher values are more stable. (valid range 0.0 to 0.99) (default: 0.90)
  • --dynatemp-range N β€” dynamic temperature range (default: 0.00, 0.0 = disabled)
  • --dynatemp-exp N β€” dynamic temperature exponent (default: 1.00)
  • --mirostat N β€” use Mirostat sampling. heads up bestie, Top K, Nucleus and Locally Typical samplers get ignored if used. (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)
  • --mirostat-lr N β€” Mirostat learning rate, parameter eta (default: 0.10)
  • --mirostat-ent N β€” Mirostat target entropy, parameter tau (default: 5.00)
  • -l, --logit-bias TOKEN_ID(+/-)BIAS β€” modifies the likelihood of a token appearing in the completion, i.e. --logit-bias 15043+1 to increase the likelihood of token ' Hello', or --logit-bias 15043-1 to decrease the likelihood of token ' Hello' πŸ’…
  • --grammar GRAMMAR β€” BNF-like grammar to constrain generations (peep the samples in the grammars/ dir)
  • --grammar-file FNAME β€” file to read the grammar from
  • -j, --json-schema SCHEMA β€” JSON schema to constrain generations (https://json-schema.org/), e.g. {} for any JSON object. for schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead
  • -jf, --json-schema-file FILE β€” file containing a JSON schema to constrain generations (https://json-schema.org/), e.g. {} for any JSON object. for schemas w/ external $refs, use --grammar + example/json_schema_to_grammar.py instead
  • -bs, --backend-sampling β€” enable backend sampling (experimental, bestie, so be gentle with it πŸ™) (default: disabled) (env: LLAMA_ARG_BACKEND_SAMPLING)

✨ example-specific params ✨

  • -kvu, --kv-unified, -no-kvu, --no-kv-unified β€” use a single unified KV buffer shared across all sequences (default: enabled if number of slots is auto) (env: LLAMA_ARG_KV_UNIFIED)

example usage, periodt:

llama-batched -m model.gguf -p "Hello my name is" -n 32 -np 4

and that's the whole page bestie, we ate πŸ“ this one's from debian, dated September 2026 β€” no cap, you're now a LLAMA-BATCHED(1) main character πŸ‘‘πŸ’œ

πŸ“¦ where this page comes from