blob: a4c3634bc96ff247b569a58888a3d5789a328e3f [file] [log] [blame]
bart8785c122008-05-29 08:34:27 +00001#!/bin/bash
2
3########################
4# Function definitions #
5########################
6
bart32811502008-06-03 15:12:59 +00007function log2 {
8 local i
9
10 for ((i=0;i<64;i++))
11 do
12 if [ $((2**i)) = $1 ]; then
13 echo $i
14 return 0
15 fi
16 done
17 echo ""
18 return 1
19}
20
21function get_cache_size {
22 local s
23 s=$(</sys/devices/system/cpu/cpu0/cache/index2/size)
24 if [ "${s%M}" != "$s" ]; then
25 echo $((${s%M}*1024*1024))
26 elif [ "${s%K}" != "$s" ]; then
27 echo $((${s%K}*1024))
28 else
29 echo $s
30 fi
31}
32
bart8785c122008-05-29 08:34:27 +000033# Read a stream of numbers from stdin (one per line), and print the average
34# and standard deviation.
35function avgstddev {
bartf06b4272008-05-30 09:52:13 +000036 awk '{n++;sum+=$1;sumsq+=$1*$1}END{d=sumsq/n-sum*sum/n/n;print sum/n,(d>0?sqrt(d):0)}'
bart8785c122008-05-29 08:34:27 +000037}
38
39function run_test {
40 local tmp avg1=1 stddev1=1 avg2=1 stddev2=1
41
42 tmp="/tmp/test-timing.$$"
43 echo "$@"
44 for ((i=0;i<3;i++))
45 do
46 /usr/bin/time --format="%e" "$@" 2>&1 | tail -n 1
47 done | avgstddev > "$tmp"
48 read avg1 stddev1 < "$tmp"
49 echo "Average time: ${avg1} +/- ${stddev1} seconds"
50
bartc4a174f2008-06-03 11:41:19 +000051 for ((p=1; p<=4; p++))
bart8785c122008-05-29 08:34:27 +000052 do
bartc4a174f2008-06-03 11:41:19 +000053 echo "$VG --tool=exp-drd $@ -p$p"
54 for ((i=0;i<3;i++))
55 do
56 /usr/bin/time --format="%e" $VG --tool=exp-drd "$@" -p$p 2>&1 | tail -n 1
57 done | avgstddev > "$tmp"
58 read avg2 stddev2 < "$tmp"
59 echo "Average time: ${avg2} +/- ${stddev2} seconds"
60 awk "END{print "'"'"Ratio ="'"'", ${avg2}/${avg1}, "'"'"+/-"'"'", ${avg2}/${avg1}*(${stddev1}/${avg1}+${stddev2}/${avg2})}" </dev/null
61 done
bart8785c122008-05-29 08:34:27 +000062
63 echo ''
64
65 rm -f "$tmp"
66}
67
68
69# Script body
70
bart32811502008-06-03 15:12:59 +000071DRD_SCRIPTS_DIR="$(dirname $0)"
72if [ "${DRD_SCRIPTS_DIR}" = "." ]; then
73 DRD_SCRIPTS_DIR="$PWD"
74fi
75
76SPLASH2="${DRD_SCRIPTS_DIR}/../splash2"
bartc4a174f2008-06-03 11:41:19 +000077if [ ! -e "${SPLASH2}" ]; then
78 echo "Error: splash2 directory not found (${SPLASH2})."
bart8785c122008-05-29 08:34:27 +000079 exit 1
80fi
81
82if [ "$VG" = "" ]; then
bart32811502008-06-03 15:12:59 +000083 VG="${DRD_SCRIPTS_DIR}/../../vg-in-place"
bart8785c122008-05-29 08:34:27 +000084fi
85
86if [ ! -e "$VG" ]; then
87 echo "Could not find $VG."
88 exit 1
89fi
90
bart32811502008-06-03 15:12:59 +000091# Results: (-p1) (-p2) (-p3) (-p4) ITC (-p4) ITC (-p4)
92# original w/ filter
93# .........................................................................
94# Cholesky 46 59 75 92 239 82
95# FFT 15 90 41
96# LU, contiguous blocks 40 48 53 55 428 128
97# LU, non-contiguous blocks 37 47 55 58 428 128
98# Ocean 90 28
99# Radiosity 99 99 99 99 485 163
100# Radix 222 56
101# Raytrace 172 53
102# Water-n2 189 39
103# Water-sp 183 34
bart8785c122008-05-29 08:34:27 +0000104
bart32811502008-06-03 15:12:59 +0000105cache_size=$(get_cache_size)
106log2_cache_size=$(log2 ${cache_size})
107
108# Cholesky
109if false; then
110(
111 cd ${SPLASH2}/codes/kernels/cholesky
112 if [ ! -e inputs/tk29.O ]; then
113 gzip -cd < inputs/tk29.O.Z > inputs/tk29.O
114 fi
115 run_test ./CHOLESKY -C${cache_size} -n1024 inputs/tk29.O
116)
117fi
118
119# FFT
120run_test ${SPLASH2}/codes/kernels/fft/FFT -l${log2_cache_size} -m$((2**28))
121exit 1
122
123# LU, contiguous blocks.
bartc4a174f2008-06-03 11:41:19 +0000124run_test ${SPLASH2}/codes/kernels/lu/contiguous_blocks/LU -n1024
bart8785c122008-05-29 08:34:27 +0000125
bart32811502008-06-03 15:12:59 +0000126# LU, non-contiguous blocks.
bartc4a174f2008-06-03 11:41:19 +0000127run_test ${SPLASH2}/codes/kernels/lu/non_contiguous_blocks/LU -n1024
bart8785c122008-05-29 08:34:27 +0000128
bart32811502008-06-03 15:12:59 +0000129# Radiosity.
bartc4a174f2008-06-03 11:41:19 +0000130run_test ${SPLASH2}/codes/apps/radiosity/RADIOSITY -batch -room
131
132
133# Local variables:
134# compile-command: "./run-splash2"
135# End: