File size: 1,232 Bytes
e2e6c43 47b5113 aae9a70 e2e6c43 aae9a70 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #!/usr/bin/env bash
set -euo pipefail
if [[ $# -ne 2 || ! $1 =~ ^(2|4|8|16|32)$ || ! $2 =~ ^(0|1)$ ]]; then
echo "usage: $0 <2|4|8|16|32 GiB> <pager 0|1>" >&2
exit 2
fi
root=$(cd "$(dirname "$0")" && pwd)
model=${MODEL:-models/flint-UD-Q4_K_XL.gguf}
if [[ "$model" != /* ]]; then
model="$root/$model"
fi
cap_gib=$1
pager=$2
arena_mb=${ARENA_MB:-$((cap_gib * 1024 - 4096))}
threads=${THREADS:-16}
if [[ -z ${ARENA_MB:-} ]]; then
case "$cap_gib" in
2) arena_mb=256 ;;
4) arena_mb=1024 ;;
8) arena_mb=3072 ;;
16) arena_mb=10240 ;;
32) arena_mb=18432 ;;
esac
fi
if [[ ! -r "$model" ]]; then
echo "GGUF not readable: $model" >&2
exit 2
fi
# 版本選擇:預設 v1(SDQ_PRELOAD=0 SDQ_ROW_PARALLEL=0);v2 請設 SDQ_PRELOAD=1 SDQ_ROW_PARALLEL=1
cmd=(env SDQ_PAGER="$pager" SDQ_PREFETCH=0 SDQ_ARENA_MB="$arena_mb" SDQ_PRELOAD="${SDQ_PRELOAD:-0}" SDQ_ROW_PARALLEL="${SDQ_ROW_PARALLEL:-0}"
"$root/build/bin/llama-cli" -m "$model" -c 128 -b 32 -ub 16
-p "Explain in one sentence why the sky is blue." -n 8 -t "$threads" --temp 0 -st --simple-io)
exec python3 "$root/tools/runmem.py" --rss-limit-gib "$cap_gib" --interval 0.02 --timeout 7200 -- "${cmd[@]}"
|