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 · B (gemm)' 60*bf2c3715SXin Liprint_tr lazy_gemm 'C += A · B (gemm lazy)' 61*bf2c3715SXin Liprint_tr gemv 'y += A · x (gemv)' 62*bf2c3715SXin Liprint_tr gemvt 'y += A<sup>T</sup> · x (gemv)' 63*bf2c3715SXin Liprint_tr trmv_up 'y += U · x (trmv)' 64*bf2c3715SXin Liprint_tr trmv_upt 'y += U<sup>T</sup> · x (trmv)' 65*bf2c3715SXin Liprint_tr trmv_lo 'y += L · x (trmv)' 66*bf2c3715SXin Liprint_tr trmv_lot 'y += L<sup>T</sup> · x (trmv)' 67*bf2c3715SXin Liprint_tr trmv_lot 'L · L<sup>T<sup> = A (Cholesky,potrf)' 68*bf2c3715SXin Li 69*bf2c3715SXin Licat resources/footer.html >> $htmlfile 70*bf2c3715SXin Li 71*bf2c3715SXin Lifi 72*bf2c3715SXin Lifi 73