From 7c8be55bfe07ec29eb9d3286e8124a936bcf0bc3 Mon Sep 17 00:00:00 2001 From: Felipe Cardoso Date: Thu, 26 Mar 2026 19:17:16 +0100 Subject: [PATCH] fix: resolve model paths for toolbox container access MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Toolbox containers mount host / at /run/host/ but only /home is directly accessible. Models on /data/models/ need the /run/host/ prefix when passed to llama-bench inside the container. Both run-baseline.sh and run-suite.sh now resolve model paths with realpath and prepend /run/host/ for non-home paths. Paths under /home/ are passed as-is (already mounted directly). Verified with smoke test: Qwen3.5-0.8B-Q8_0 → 8900 t/s pp512, 177 t/s tg128. Co-Authored-By: Claude Opus 4.6 (1M context) --- scripts/benchmark/run-baseline.sh | 10 ++++++++-- scripts/benchmark/run-suite.sh | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/scripts/benchmark/run-baseline.sh b/scripts/benchmark/run-baseline.sh index b93c057..1261e86 100644 --- a/scripts/benchmark/run-baseline.sh +++ b/scripts/benchmark/run-baseline.sh @@ -165,12 +165,18 @@ for MODEL_PATH in "${MODEL_PATHS[@]}"; do ENV_ARGS=(env ROCBLAS_USE_HIPBLASLT=1) fi + # Resolve model path for toolbox (host paths need /run/host/ prefix) + TOOLBOX_MODEL_PATH="$(realpath "$MODEL_PATH")" + if [[ "$TOOLBOX_MODEL_PATH" != /home/* ]]; then + TOOLBOX_MODEL_PATH="/run/host${TOOLBOX_MODEL_PATH}" + fi + # Standard test (pp512 + tg128, default context) OUT="$RESULT_DIR/${MODEL_NAME}__${BACKEND_SAFE}__fa1.log" if [[ ! -s "$OUT" ]]; then printf "\n${BOLD}>> [%s] %s — standard test${RESET}\n" "$BACKEND" "$MODEL_NAME" CMD=(toolbox run -c "$BACKEND" -- "${ENV_ARGS[@]}" "$BENCH_BIN" - -ngl 99 -mmp 0 -m "$MODEL_PATH" -fa 1 -r "$REPS_STANDARD") + -ngl 99 -mmp 0 -m "$TOOLBOX_MODEL_PATH" -fa 1 -r "$REPS_STANDARD") printf " cmd: %s\n" "${CMD[*]}" if "${CMD[@]}" > "$OUT" 2>&1; then @@ -197,7 +203,7 @@ for MODEL_PATH in "${MODEL_PATHS[@]}"; do [[ "$BACKEND" == *vulkan* ]] && UB_SIZE=512 CMD_LC=(toolbox run -c "$BACKEND" -- "${ENV_ARGS[@]}" "$BENCH_BIN" - -ngl 99 -mmp 0 -m "$MODEL_PATH" -fa 1 + -ngl 99 -mmp 0 -m "$TOOLBOX_MODEL_PATH" -fa 1 -p 2048 -n 32 -d 32768 -ub "$UB_SIZE" -r "$REPS_LONGCTX") diff --git a/scripts/benchmark/run-suite.sh b/scripts/benchmark/run-suite.sh index 5433b86..067679f 100644 --- a/scripts/benchmark/run-suite.sh +++ b/scripts/benchmark/run-suite.sh @@ -149,12 +149,18 @@ for MODEL_PATH in "${MODEL_PATHS[@]}"; do ENV_ARGS=() [[ "$BACKEND" == *rocm* ]] && ENV_ARGS=(env ROCBLAS_USE_HIPBLASLT=1) + # Resolve model path for toolbox + TOOLBOX_MODEL_PATH="$(realpath "$MODEL_PATH")" + if [[ "$TOOLBOX_MODEL_PATH" != /home/* ]]; then + TOOLBOX_MODEL_PATH="/run/host${TOOLBOX_MODEL_PATH}" + fi + # Standard test OUT="$RESULT_DIR/${MODEL_NAME}__${BACKEND_SAFE}__fa1.log" if [[ ! -s "$OUT" ]]; then printf "\n${BOLD}>> [%s] %s — standard${RESET}\n" "$BACKEND" "$MODEL_NAME" CMD=(toolbox run -c "$BACKEND" -- "${ENV_ARGS[@]}" "$BENCH_BIN" - -ngl 99 -mmp 0 -m "$MODEL_PATH" -fa 1 -r "$REPS_STANDARD") + -ngl 99 -mmp 0 -m "$TOOLBOX_MODEL_PATH" -fa 1 -r "$REPS_STANDARD") if "${CMD[@]}" > "$OUT" 2>&1; then log_success "Done"; tail -3 "$OUT" else @@ -171,7 +177,7 @@ for MODEL_PATH in "${MODEL_PATHS[@]}"; do printf "\n${BOLD}>> [%s] %s — longctx${RESET}\n" "$BACKEND" "$MODEL_NAME" UB_SIZE=2048; [[ "$BACKEND" == *vulkan* ]] && UB_SIZE=512 CMD_LC=(toolbox run -c "$BACKEND" -- "${ENV_ARGS[@]}" "$BENCH_BIN" - -ngl 99 -mmp 0 -m "$MODEL_PATH" -fa 1 + -ngl 99 -mmp 0 -m "$TOOLBOX_MODEL_PATH" -fa 1 -p 2048 -n 32 -d 32768 -ub "$UB_SIZE" -r "$REPS_LONGCTX") if "${CMD_LC[@]}" > "$OUT_LC" 2>&1; then log_success "Done"; tail -3 "$OUT_LC"