#!/usr/bin/env bash
set -euo pipefail

CFG=${1:-data/model_config.json}
WTS=${2:-data/model.safetensors}
BATCH=${3:-1}
WARMUP=${4:-2}
ITERS=${5:-20}

echo "== Rust CPU (ndarray) =="
cargo run --release --bin st-infer -- \
  --config "$CFG" --weights "$WTS" --batch-size "$BATCH" --warmup "$WARMUP" --iters "$ITERS"

echo
echo "== Rust CPU (ndarray + Accelerate) =="
cargo run --release --features blas-accelerate --bin st-infer -- \
  --config "$CFG" --weights "$WTS" --batch-size "$BATCH" --warmup "$WARMUP" --iters "$ITERS"

echo
echo "== Rust GPU (wgpu WGSL) =="
cargo run --release --no-default-features --features wgpu --bin st-infer -- \
  --config "$CFG" --weights "$WTS" --batch-size "$BATCH" --warmup "$WARMUP" --iters "$ITERS"

echo
echo "== Rust GPU (wgpu Metal) =="
cargo run --release --no-default-features --features wgpu-metal --bin st-infer -- \
  --config "$CFG" --weights "$WTS" --batch-size "$BATCH" --warmup "$WARMUP" --iters "$ITERS"
