aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/perf_monitoring/gemm/run_gemm.sh
blob: 4d87ff6561c41ee2c4f58a46a66292915c85988f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash

if [ ! -d "eigen_src" ]; then
  hg clone https://bitbucket.org/eigen/eigen eigen_src
fi

if [ ! -z '$CXX' ]; then
  CXX=g++
fi

rm sgemm.out
rm dgemm.out
rm cgemm.out

function test_current 
{
  rev=$1
  scalar=$2
  name=$3
  
  if $CXX -O2 -DNDEBUG -march=native $CXX_FLAGS -I eigen_src gemm.cpp -DSCALAR=$scalar -o $name; then
    res=`./$name`
    echo $res
    echo "$rev $res" >> $name.out
  else
    echo "Compilation failed, skip rev $rev"
  fi
}

while read rev
do
  if [ ! -z '$rev' ]; then
    echo "Testing rev $rev"
    cd eigen_src
    hg up -C $rev
    actual_rev=`hg identify | cut -f1 -d' '`
    cd ..
    
    test_current $actual_rev float                  sgemm
    test_current $actual_rev double                 dgemm
    test_current $actual_rev "std::complex<double>" cgemm
  fi
  
done < changesets.txt

echo "Float:"
cat sgemm.out
echo ""

echo "Double:"
cat dgemm.out
echo ""

echo "Complex:"
cat cgemm.out
echo ""

./make_plot.sh sgemm
./make_plot.sh dgemm
./make_plot.sh cgemm