Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'
This commit is contained in:
72
vendor/ruvector/crates/profiling/scripts/benchmark_all.sh
vendored
Executable file
72
vendor/ruvector/crates/profiling/scripts/benchmark_all.sh
vendored
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
# Comprehensive benchmarking script
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
BENCHMARK_DIR="$SCRIPT_DIR/../benchmarks"
|
||||
|
||||
mkdir -p "$BENCHMARK_DIR"
|
||||
|
||||
echo "📊 Running comprehensive benchmark suite..."
|
||||
|
||||
cd "$PROJECT_ROOT"
|
||||
|
||||
# Get CPU info
|
||||
echo "CPU Information:" > "$BENCHMARK_DIR/system_info.txt"
|
||||
lscpu >> "$BENCHMARK_DIR/system_info.txt" 2>&1 || true
|
||||
echo "" >> "$BENCHMARK_DIR/system_info.txt"
|
||||
echo "Memory Information:" >> "$BENCHMARK_DIR/system_info.txt"
|
||||
free -h >> "$BENCHMARK_DIR/system_info.txt" 2>&1 || true
|
||||
|
||||
# Build with different optimization levels
|
||||
echo "Building with optimizations..."
|
||||
cargo build --release
|
||||
|
||||
# Run criterion benchmarks
|
||||
echo "Running criterion benchmarks..."
|
||||
cargo bench --bench distance_metrics -- --save-baseline before 2>&1 | tee "$BENCHMARK_DIR/distance_metrics.txt"
|
||||
cargo bench --bench hnsw_search -- --save-baseline before 2>&1 | tee "$BENCHMARK_DIR/hnsw_search.txt"
|
||||
|
||||
# Test with different thread counts
|
||||
echo "Benchmarking with different thread counts..."
|
||||
for threads in 1 2 4 8 16 32; do
|
||||
echo "Testing with $threads threads..."
|
||||
RAYON_NUM_THREADS=$threads cargo bench --bench distance_metrics -- --profile-time=5 \
|
||||
2>&1 | tee "$BENCHMARK_DIR/threads_${threads}.txt"
|
||||
done
|
||||
|
||||
# Generate summary
|
||||
echo "Generating benchmark summary..."
|
||||
cat > "$BENCHMARK_DIR/summary.txt" << 'EOF'
|
||||
# Ruvector Performance Benchmark Summary
|
||||
|
||||
## Test Environment
|
||||
$(cat system_info.txt)
|
||||
|
||||
## Benchmark Results
|
||||
|
||||
### Distance Metrics
|
||||
$(grep "time:" distance_metrics.txt | head -20)
|
||||
|
||||
### HNSW Search
|
||||
$(grep "time:" hnsw_search.txt | head -20)
|
||||
|
||||
### Thread Scaling
|
||||
EOF
|
||||
|
||||
for threads in 1 2 4 8 16 32; do
|
||||
echo "#### $threads threads" >> "$BENCHMARK_DIR/summary.txt"
|
||||
grep "time:" "$BENCHMARK_DIR/threads_${threads}.txt" | head -5 >> "$BENCHMARK_DIR/summary.txt" || true
|
||||
echo "" >> "$BENCHMARK_DIR/summary.txt"
|
||||
done
|
||||
|
||||
echo "✅ Benchmark suite complete!"
|
||||
echo "Results saved to: $BENCHMARK_DIR"
|
||||
echo ""
|
||||
echo "Key files:"
|
||||
echo " - distance_metrics.txt: Distance calculation benchmarks"
|
||||
echo " - hnsw_search.txt: HNSW search benchmarks"
|
||||
echo " - threads_*.txt: Thread scaling tests"
|
||||
echo " - summary.txt: Overall benchmark summary"
|
||||
Reference in New Issue
Block a user