blob: ecad96afcd0049b027a188743f0cc99ab274d0c4 [file] [log] [blame]
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 {experiment_name}"
exit 1
fi
experiment_name="$1"
benchmark_script="server.py"
checkpoint_file="resnet18-f37072fd.pth"
downloaded_checkpoint=false
num_iters=10
batch_size_values=(1 32 64 128 256)
compile_values=(true false)
if [ -f $checkpoint_file ]; then
echo "Checkpoint exists."
else
downloaded_checkpoint=true
echo "Downloading checkpoint..."
wget https://download.pytorch.org/models/resnet18-f37072fd.pth
fi
for batch_size in "${batch_size_values[@]}"; do
for compile in "${compile_values[@]}"; do
echo "Running benchmark for batch size ${batch_size} and compile=${compile}..."
output_file="output_${batch_size}_${compile}.csv"
if [ -e "./results/$output_file" ]; then
rm "./results/$output_file"
fi
for i in $(seq 1 $num_iters); do
if [ "$compile" = true ]; then
python -W ignore "$benchmark_script" --batch_size "$batch_size" --output_file "$output_file" --compile
else
python -W ignore "$benchmark_script" --batch_size "$batch_size" --output_file "$output_file" --no-compile
fi
done
python process_metrics.py --csv "$output_file" --name "$experiment_name"
rm "./results/$output_file"
done
done
if [ "$downloaded_checkpoint" = true ]; then
echo "Cleaning up checkpoint..."
rm "$checkpoint_file"
else
echo "No cleanup needed"
fi