#!/usr/bin/env bash # Benchmark ubatch with llama-bench for frank-large. # # This is intentionally a ubatch-only benchmark. It uses one llama-bench # process, an 8K prompt workload, and equal batch/ubatch values. No server # process, HTTP requests, or log scraping are used. # # Run on Dankclaw after stopping frank-large: # sudo systemctl stop frank-large # ./scripts/bench-ubatch.sh # sudo systemctl start frank-large set -euo pipefail : "${LLAMA_BENCH:=/home/dank/GitPackages/ROCmFPX/build-strix-rocmfp4/bin/llama-bench}" : "${MODEL:=/home/dank/models/kingjones-Qwen3.8-27B-STRIX-MTP/Qwen3.8-27B-Uncensored-Q6_0_ROCMFPX_AGENT.gguf}" : "${UBATCH_VALUES:=256,512,768,1024,1280,1536,1792,2048,3072,4096}" : "${CONTEXT:=8192}" : "${GEN_TOKENS:=128}" : "${REPETITIONS:=3}" : "${DEVICE:=ROCm0}" : "${OUTPUT:=jsonl}" if [[ ! -x "$LLAMA_BENCH" ]]; then printf 'missing executable llama-bench: %s\n' "$LLAMA_BENCH" >&2 exit 1 fi if [[ ! -r "$MODEL" ]]; then printf 'missing or unreadable model: %s\n' "$MODEL" >&2 exit 1 fi exec "$LLAMA_BENCH" \ --model "$MODEL" \ --n-prompt "$CONTEXT" \ --n-gen "$GEN_TOKENS" \ --batch-size "$UBATCH_VALUES" \ --ubatch-size "$UBATCH_VALUES" \ --device "$DEVICE" \ --n-gpu-layers 999 \ --cache-type-k f16 \ --cache-type-v f16 \ --flash-attn on \ --mmap 0 \ --repetitions "$REPETITIONS" \ --output "$OUTPUT"