This commit is contained in:
57
scripts/benchmarks/run-benchmark.sh
Executable file
57
scripts/benchmarks/run-benchmark.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
FRAMEWORK="${FRAMEWORK:-}"
|
||||
MODE="${MODE:-}"
|
||||
ITERATIONS="${ITERATIONS:-3}"
|
||||
TIMEOUT="${TIMEOUT:-900}"
|
||||
FIXTURES_DIR="${FIXTURES_DIR:-tools/benchmark-harness/fixtures}"
|
||||
HARNESS_PATH="${HARNESS_PATH:-./target/release/benchmark-harness}"
|
||||
MEASURE_QUALITY="${MEASURE_QUALITY:-false}"
|
||||
OCR_ENABLED="${OCR_ENABLED:-false}"
|
||||
OUTPUT_FORMAT="${OUTPUT_FORMAT:-markdown}"
|
||||
|
||||
if [ -z "$FRAMEWORK" ] || [ -z "$MODE" ]; then
|
||||
echo "::error::FRAMEWORK and MODE environment variables are required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
|
||||
source "${REPO_ROOT}/scripts/lib/common.sh"
|
||||
source "${REPO_ROOT}/scripts/lib/library-paths.sh"
|
||||
|
||||
validate_repo_root "$REPO_ROOT" || exit 1
|
||||
|
||||
setup_go_paths "$REPO_ROOT"
|
||||
setup_onnx_paths
|
||||
|
||||
OUTPUT_DIR="benchmark-results/${FRAMEWORK}-${OUTPUT_FORMAT}-${MODE}"
|
||||
rm -rf "${OUTPUT_DIR}"
|
||||
|
||||
MAX_CONCURRENT=$([[ "$MODE" == "single-file" ]] && echo 1 || echo 4)
|
||||
|
||||
SHARD="${SHARD:-}"
|
||||
|
||||
EXTRA_ARGS=()
|
||||
if [ "$MEASURE_QUALITY" = "true" ]; then
|
||||
EXTRA_ARGS+=("--measure-quality")
|
||||
fi
|
||||
if [ "$OCR_ENABLED" = "true" ]; then
|
||||
EXTRA_ARGS+=("--ocr")
|
||||
fi
|
||||
if [ -n "$SHARD" ]; then
|
||||
EXTRA_ARGS+=("--shard" "${SHARD}")
|
||||
fi
|
||||
|
||||
BENCHMARK_DEBUG=1 "${HARNESS_PATH}" \
|
||||
run \
|
||||
--fixtures "${FIXTURES_DIR}" \
|
||||
--frameworks "${FRAMEWORK}" \
|
||||
--output "${OUTPUT_DIR}" \
|
||||
--iterations "${ITERATIONS}" \
|
||||
--timeout "${TIMEOUT}" \
|
||||
--mode "${MODE}" \
|
||||
--max-concurrent "${MAX_CONCURRENT}" \
|
||||
--output-format "${OUTPUT_FORMAT}" \
|
||||
"${EXTRA_ARGS[@]+"${EXTRA_ARGS[@]}"}"
|
||||
Reference in New Issue
Block a user