xref: /aosp_15_r20/external/eigen/bench/perf_monitoring/runall.sh (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
1*bf2c3715SXin Li#!/bin/bash
2*bf2c3715SXin Li
3*bf2c3715SXin Li# ./runall.sh "Title"
4*bf2c3715SXin Li
5*bf2c3715SXin Li# Examples of environment variables to be set:
6*bf2c3715SXin Li#   PREFIX="haswell-fma-"
7*bf2c3715SXin Li#   CXX_FLAGS="-mfma"
8*bf2c3715SXin Li#   CXX=clang++
9*bf2c3715SXin Li
10*bf2c3715SXin Li# Options:
11*bf2c3715SXin Li#   -up : enforce the recomputation of existing data, and keep best results as a merging strategy
12*bf2c3715SXin Li#   -s  : recompute selected changesets only and keep bests
13*bf2c3715SXin Li#   -np : no plotting of results, just generate the data
14*bf2c3715SXin Li
15*bf2c3715SXin Liif [[ "$*" =~ '-np' ]]; then
16*bf2c3715SXin Li  do_plot=false
17*bf2c3715SXin Lielse
18*bf2c3715SXin Li  do_plot=true
19*bf2c3715SXin Lifi
20*bf2c3715SXin Li
21*bf2c3715SXin Li./run.sh gemm gemm_settings.txt $*
22*bf2c3715SXin Li./run.sh lazy_gemm lazy_gemm_settings.txt $*
23*bf2c3715SXin Li./run.sh gemv gemv_settings.txt $*
24*bf2c3715SXin Li./run.sh gemvt gemv_settings.txt $*
25*bf2c3715SXin Li./run.sh trmv_up gemv_square_settings.txt $*
26*bf2c3715SXin Li./run.sh trmv_lo gemv_square_settings.txt $*
27*bf2c3715SXin Li./run.sh trmv_upt gemv_square_settings.txt $*
28*bf2c3715SXin Li./run.sh trmv_lot gemv_square_settings.txt $*
29*bf2c3715SXin Li./run.sh llt gemm_square_settings.txt $*
30*bf2c3715SXin Li
31*bf2c3715SXin Liif $do_plot ; then
32*bf2c3715SXin Li
33*bf2c3715SXin Li# generate html file
34*bf2c3715SXin Li
35*bf2c3715SXin Lifunction print_td {
36*bf2c3715SXin Li  echo '<td><a href="'$PREFIX'-'$1"$2"'.html"><img src="'$PREFIX'-'$1"$2"'.png" title="'$3'"></a></td>' >> $htmlfile
37*bf2c3715SXin Li}
38*bf2c3715SXin Li
39*bf2c3715SXin Lifunction print_tr {
40*bf2c3715SXin Li  echo '<tr><th colspan="3">'"$2"'</th></tr>' >> $htmlfile
41*bf2c3715SXin Li  echo '<tr>' >> $htmlfile
42*bf2c3715SXin Li  print_td s $1 float
43*bf2c3715SXin Li  print_td d $1 double
44*bf2c3715SXin Li  print_td c $1 complex
45*bf2c3715SXin Li  echo '</tr>' >> $htmlfile
46*bf2c3715SXin Li}
47*bf2c3715SXin Li
48*bf2c3715SXin Liif [ -n "$PREFIX" ]; then
49*bf2c3715SXin Li
50*bf2c3715SXin Li
51*bf2c3715SXin Licp resources/s1.js $PREFIX/
52*bf2c3715SXin Licp resources/s2.js $PREFIX/
53*bf2c3715SXin Li
54*bf2c3715SXin Lihtmlfile="$PREFIX/index.html"
55*bf2c3715SXin Licat resources/header.html > $htmlfile
56*bf2c3715SXin Li
57*bf2c3715SXin Liecho '<h1>'$1'</h1>' >> $htmlfile
58*bf2c3715SXin Liecho '<table>' >> $htmlfile
59*bf2c3715SXin Liprint_tr gemm       'C += A &middot; B   &nbsp; (gemm)'
60*bf2c3715SXin Liprint_tr lazy_gemm  'C += A &middot; B   &nbsp; (gemm lazy)'
61*bf2c3715SXin Liprint_tr gemv       'y += A &middot; x   &nbsp; (gemv)'
62*bf2c3715SXin Liprint_tr gemvt      'y += A<sup>T</sup> &middot; x  &nbsp; (gemv)'
63*bf2c3715SXin Liprint_tr trmv_up    'y += U &middot; x   &nbsp; (trmv)'
64*bf2c3715SXin Liprint_tr trmv_upt   'y += U<sup>T</sup> &middot; x  &nbsp; (trmv)'
65*bf2c3715SXin Liprint_tr trmv_lo    'y += L &middot; x   &nbsp; (trmv)'
66*bf2c3715SXin Liprint_tr trmv_lot   'y += L<sup>T</sup> &middot; x  &nbsp; (trmv)'
67*bf2c3715SXin Liprint_tr trmv_lot   'L &middot; L<sup>T<sup> = A &nbsp;  (Cholesky,potrf)'
68*bf2c3715SXin Li
69*bf2c3715SXin Licat resources/footer.html >> $htmlfile
70*bf2c3715SXin Li
71*bf2c3715SXin Lifi
72*bf2c3715SXin Lifi
73