LLAMA-BATCHED-BENCH(1)

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

πŸ’– LLAMA-BATCHED-BENCH(1) πŸ’– β€” User Commands

okay bestie, welcome to the manual page for llama-batched-bench. yes it's a whole bench, yes it's batched, yes it goes hard πŸ”₯. this page is LONG so hydrate, stretch, and let's get into it. every flag, every default, every env var β€” all of it, no cap. 🫢


✨ NAME ✨

llama-batched-bench β€” llama-batched-bench. that's it. that's the name. she said "my name is my name" and honestly? iconic. πŸ‘‘


πŸ¦‹ DESCRIPTION πŸ¦‹

πŸŽ€ ----- common params ----- πŸŽ€

okay so these are the common params β€” the shared lil squad of options that basically every llama.cpp tool rolls with. here's the full run-down, no skips, no cuts πŸ’…

  • -h, --help, --usage β€” prints the usage and then dips. the classic "help me bestie" button. πŸ†˜
  • --version β€” shows the version and the build info. receipts, basically. 🧾
  • -cl, --cache-list β€” shows the list of models hanging out in cache. hi queens πŸ‘‹
  • --completion-bash β€” prints a source-able bash completion script for llama.cpp. source it and your tab key becomes lowkey psychic ✨
  • -t, --threads N β€” number of CPU threads to use during generation. default: <num_cpus>. env: LLAMA_ARG_THREADS 🧡
  • -tb, --threads-batch N β€” number of threads to use during batch and prompt processing. default: same as --threads.
  • -C, --cpu-mask M β€” CPU affinity mask: arbitrarily long hex. complements cpu-range. default: "".
  • -Cr, --cpu-range lo-hi β€” range of CPUs for affinity. complements --cpu-mask.
  • --cpu-strict <0|1> β€” use strict CPU placement. default: 0.
  • --prio N β€” set process/thread priority: low(-1), normal(0), medium(1), high(2), realtime(3). default: 0.
  • --poll <0...100> β€” use 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.
  • -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: -1, and -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, and -1 = all.
  • --swa-full β€” use full-size SWA cache. default: false. env: LLAMA_ARG_SWA_FULL. there's more info over at https://github.com/ggml-org/llama.cpp/pull/13194#issuecomment-2868343055 πŸ“Ž
  • -fa, --flash-attn [on|off|auto] β€” set Flash Attention use ('on', 'off', or 'auto'). default: 'auto'. env: LLAMA_ARG_FLASH_ATTN ⚑
  • -p, --prompt PROMPT β€” prompt to start generation with. for 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 β€” binary file containing the prompt. default: none.
  • -e, --escape, --no-escape β€” whether to process escapes sequences (\n, \r, \t, \', \", \\). default: true.
  • --rope-scaling {none,linear,yarn} β€” RoPE frequency scaling method, defaults to linear unless specified by the model. env: LLAMA_ARG_ROPE_SCALING_TYPE.
  • --rope-scale N β€” RoPE context scaling factor, expands 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 model. default: 0 = model 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.
  • -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 host buffer allowing 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.
  • --mlock β€” DEPRECATED in favor of --load-mode: force system to keep model in RAM rather than swapping or compressing. env: LLAMA_ARG_MLOCK.
  • --mmap, --no-mmap β€” DEPRECATED in favor of --load-mode: whether to memory-map model. (if mmap disabled, slower load but may reduce pageouts if not using mlock). env: LLAMA_ARG_MMAP.
  • -dio, --direct-io, -ndio, --no-direct-io β€” DEPRECATED in favor of --load-mode: use DirectIO if available. env: LLAMA_ARG_DIO.
  • -lm, --load-mode MODE β€” model loading mode. default: auto. env: LLAMA_ARG_LOAD_MODE. the modes are:
    • auto: mmap, unless a device does not support it
    • none: no special loading mode
    • mmap: memory-map model (if mmap disabled, slower load but may reduce pageouts if not using mlock)
    • mlock: force system to keep model in RAM rather than swapping or compressing
    • mmap+mlock: mmap + force system to keep model in RAM rather than swapping or compressing
    • dio: use DirectIO if available
  • --numa TYPE β€” attempt optimizations that help on some NUMA systems:
    • 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
    • if run without this previously, it is recommended to drop the system page cache before using this. see https://github.com/ggml-org/llama.cpp/issues/1437. env: LLAMA_ARG_NUMA
  • -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 list of available devices and exit. window shopping, but make it hardware πŸ›οΈ
  • -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:
    • 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)
    • env: LLAMA_ARG_SPLIT_MODE
  • -ts, --tensor-split N0,N1,N2,... β€” fraction of the model to offload to each GPU, 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, comma-separated list of values, 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 --fit option. default: 4096. env: LLAMA_ARG_FIT_CTX.
  • --check-tensors β€” check 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.
  • --lora FNAME β€” path to LoRA adapter (use comma-separated values to load multiple adapters).
  • --lora-scaled FNAME:SCALE,... β€” path to LoRA adapter with 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 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] β€”
and that's where part 1 leaves us bestie, mid-option, on a cliffhanger πŸ’€. part 2 is pulling up with the rest, so don't go anywhere 🫢

Docker Hub model repository. repo is optional, default to ai/. quant is optional, default to :latest. example: gemma3 (default: unused) (env: LLAMA_ARG_DOCKER_REPO)

  • -hf, -hfr, --hf-repo <user>/<model>[:quant] β€” okay so this is the Hugging Face model repo one πŸ’– quant is optional, case-insensitive, default to Q4_K_M β€” orrrr it falls back to the first file in the repo if Q4_K_M doesn't exist. mmproj is also downloaded automatically if available. wanna turn that off? 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 β€” Hugging Face model file. If specified, it will override the quant in --hf-repo (default: unused) (env: LLAMA_ARG_HF_FILE)
  • -hft, --hf-token TOKEN β€” Hugging Face access token (default: value from HF_TOKEN environment variable) (env: HF_TOKEN) πŸ”‘
  • --log-disable β€” Log disable. yeah. that's the whole vibe 🚫
  • --log-file FNAME β€” Log to file (env: LLAMA_ARG_LOG_FILE) πŸ“
  • --log-colors [on|off|auto] β€” Set colored logging ('on', 'off', or 'auto', default: 'auto'). 'auto' enables colors when output is to a terminal (env: LLAMA_ARG_LOG_COLORS) 🌈
  • -v, --verbose, --log-verbose β€” Set verbosity level to infinity (i.e. log all messages, useful for debugging). literally infinity, bestie, she said what she said πŸ’€
  • --offline β€” Offline mode: forces use of cache, prevents network access (env: LLAMA_ARG_OFFLINE) ✈️
  • -lv, --verbosity, --log-verbosity N β€” Set the verbosity threshold. Messages with a higher verbosity will be 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 β€” 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 β€” 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 β€” samplers that will be used for generation, in the order they'll be applied, separated by ; (default: penalties;dry;top_n_sigma;top_k;typ_p;top_p;min_p;xtc;temperature) πŸŽ›οΈ
  • -s, --seed SEED β€” RNG seed (default: -1, use random seed for -1)
  • --sampler-seq, --sampling-seq SEQUENCE β€” simplified sequence for samplers that will be used (default: edskypmxt) ✨
  • --ignore-eos β€” ignore end of stream token and continue generating (implies --logit-bias EOS-inf). she does NOT know how to stop πŸ—£οΈ
  • --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 DRY sampling multiplier (default: 0.00, 0.0 = disabled)
  • --dry-base N β€” set DRY sampling base value (default: 1.75)
  • --dry-allowed-length N β€” set allowed length for DRY sampling (default: 2)
  • --dry-penalty-last-n N β€” set DRY penalty for the last n tokens (default: 64, 0 = disable)
  • --dry-sequence-breaker STRING β€” add sequence breaker for DRY sampling, clearing out default breakers ('\n', ':', '"', '*') in the process; use "none" to not use 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)](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. Top K, Nucleus and Locally Typical samplers are 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 token appearing in the completion, i.e. --logit-bias 15043+1 to increase likelihood of token ' Hello', or --logit-bias 15043-1 to decrease likelihood of token ' Hello' 🎚️
  • --grammar GRAMMAR β€” BNF-like grammar to constrain generations (see samples in grammars/ dir)
  • --grammar-file FNAME β€” file to read 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) (default: disabled) (env: LLAMA_ARG_BACKEND_SAMPLING)

πŸ§ͺ example-specific params πŸ§ͺ

  • -kvu, --kv-unified, -no-kvu, --no-kv-unified β€” use single unified KV buffer shared across all sequences (default: enabled if number of slots is auto) (env: LLAMA_ARG_KV_UNIFIED)
  • -pps β€” is the prompt shared across parallel sequences (default: false)
  • -tgs β€” is the text generation separated across the different sequences (default: false)
  • -npp n0,n1,... β€” number of prompt tokens
  • -ntg n0,n1,... β€” number of text generation tokens
  • -npl n0,n1,... β€” number of parallel prompts
  • --output-format {md,jsonl} β€” output format for batched-bench results (default: md) πŸ“Š

example usage: (save this, bestie, it's the whole point 🫢)

llama-batched-bench -m model.gguf -c 2048 -b 2048 -ub 512 -npp 128,256,512 -ntg 128,256 -npl 1,2,4,8,16,32 [-pps]

and that's the page, babe πŸ’– this little beauty ships as debian, dated September 2026, and she answers to the name LLAMA-BATCHED-BENCH(1). go forth and benchmark, mwah πŸŽ€

πŸ“¦ where this page comes from