added long context benchmakrs for RPC

This commit is contained in:
Donato Capitella
2025-11-18 10:43:17 +00:00
parent d19875828c
commit 1d88fca07d
+54 -29
View File
@@ -139,10 +139,17 @@ has_pending_runs() {
for model_path in "${RESOLVED_MODELS[@]}"; do for model_path in "${RESOLVED_MODELS[@]}"; do
local model_name local model_name
model_name="$(basename "${model_path}" .gguf)" model_name="$(basename "${model_path}" .gguf)"
local log_file="$RESULTDIR/${model_name}__${env}${suffix}__rpc.log" for ctx in default longctx32768; do
if [[ ! -s "$log_file" ]]; then local ctx_suffix=""
return 0 # still work to do if [[ "$ctx" == longctx32768 ]]; then
fi ctx_suffix="__longctx32768"
fi
local log_file="$RESULTDIR/${model_name}__${env}${suffix}${ctx_suffix}__rpc.log"
if [[ ! -s "$log_file" ]]; then
return 0 # still work to do
fi
done
done done
return 1 # all logs already exist return 1 # all logs already exist
@@ -214,7 +221,6 @@ run_llama_bench_rpc() {
local mode="$4" local mode="$4"
local model_name local model_name
model_name="$(basename "${model_path}" .gguf)" model_name="$(basename "${model_path}" .gguf)"
local log_file="$RESULTDIR/${model_name}__${env}${suffix}__rpc.log"
local client_cmd="${CLIENT_CMDS[$env]:-}" local client_cmd="${CLIENT_CMDS[$env]:-}"
if [[ ! -f "$model_path" ]]; then if [[ ! -f "$model_path" ]]; then
@@ -222,11 +228,6 @@ run_llama_bench_rpc() {
return return
fi fi
if [[ -s "$log_file" ]]; then
echo "[SKIP] ${log_file} already exists."
return
fi
if [[ -z "$client_cmd" ]]; then if [[ -z "$client_cmd" ]]; then
echo "[WARN] No client llama-bench command defined for ${env} - skipping." echo "[WARN] No client llama-bench command defined for ${env} - skipping."
return return
@@ -240,30 +241,54 @@ run_llama_bench_rpc() {
fi fi
fi fi
kill_local_llamabench
echo
echo "> [${env}${suffix}] ${model_name}"
echo " -> log: ${log_file}"
local -a client_cmd_ary local -a client_cmd_ary
# shellcheck disable=SC2206 # intentional word splitting # shellcheck disable=SC2206 # intentional word splitting
client_cmd_ary=( $client_cmd ) client_cmd_ary=( $client_cmd )
local -a cmd=( for ctx in default longctx32768; do
"${client_cmd_ary[@]}" local ctx_suffix=""
-mmp 0 local ctx_reps=3
-m "$model_path" local -a ctx_args=()
-fa 1 if [[ "$ctx" == longctx32768 ]]; then
--rpc "${RPC_HOST}:${RPC_PORT}" ctx_suffix="__longctx32768"
) ctx_reps=1
ctx_args=( -p 2048 -n 32 -d 32768 )
if [[ "$env" == *vulkan* ]]; then
ctx_args+=( -ub 512 )
else
ctx_args+=( -ub 2048 )
fi
fi
printf " -> cmd: %s\n" "${cmd[*]}" local log_file="$RESULTDIR/${model_name}__${env}${suffix}${ctx_suffix}__rpc.log"
if "${cmd[@]}" >"$log_file" 2>&1; then if [[ -s "$log_file" ]]; then
echo " [OK] Completed" echo "[SKIP] ${log_file} already exists."
else continue
echo "[ERROR] llama-bench failed for ${env} / ${model_name} (see ${log_file})" fi
fi
kill_local_llamabench
echo
echo "> [${env}${suffix}] ${model_name} (${ctx})"
echo " -> log: ${log_file}"
local -a cmd=(
"${client_cmd_ary[@]}"
-mmp 0
-m "$model_path"
-fa 1
"${ctx_args[@]}"
-r "$ctx_reps"
--rpc "${RPC_HOST}:${RPC_PORT}"
)
printf " -> cmd: %s\n" "${cmd[*]}"
if "${cmd[@]}" >"$log_file" 2>&1; then
echo " [OK] Completed"
else
echo "[ERROR] llama-bench failed for ${env} / ${model_name} (see ${log_file})"
fi
done
} }
run_all() { run_all() {