10 lines
596 B
Bash
10 lines
596 B
Bash
RUNS=${1:-5}
|
|
median() { sort -n | awk '{a[NR]=$1} END{print (NR%2)?a[(NR+1)/2]:(a[NR/2]+a[NR/2+1])/2}'; }
|
|
for cfg in "novec:" "vec:VECTORIZE=1" "avx2:VECTORIZE=1 AVX2=1"; do
|
|
name=${cfg%%:*}; flags=${cfg#*:}
|
|
make -s clean; make -s $flags >/dev/null 2>&1 || { echo "build $name failed"; exit 1; }
|
|
t=$(for r in $(seq $RUNS); do ./test_auto_vectorize -t 1 | grep -oE '^[0-9.]+'; done | median)
|
|
echo "$name $t"; eval "T_$name=$t"
|
|
done
|
|
awk -v n=$T_novec -v v=$T_vec -v a=$T_avx2 'BEGIN{printf "vec/novec speedup: %.2fx\navx2/vec speedup: %.2fx\navx2/novec speedup: %.2fx\n", n/v, v/a, n/a}'
|