diff options
author | Gael Guennebaud <g.gael@free.fr> | 2008-07-12 21:41:32 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2008-07-12 21:41:32 +0000 |
commit | ed6e07b2f6d91fa34253f97d13049d7cbabf6a34 (patch) | |
tree | 4ff556601f66863ddf410341657b430212ad5a7e /bench | |
parent | 8233de8b69daf5d15daf3102b1788c833b56779c (diff) |
various improvements of the plot generator in BTL
Diffstat (limited to 'bench')
-rw-r--r-- | bench/btl/actions/action_atv_product.hh | 6 | ||||
-rw-r--r-- | bench/btl/actions/action_matrix_vector_product.hh | 2 | ||||
-rw-r--r-- | bench/btl/data/CMakeLists.txt | 15 | ||||
-rw-r--r-- | bench/btl/data/atv.hh | 111 | ||||
-rw-r--r-- | bench/btl/data/axpy.hh | 186 | ||||
-rw-r--r-- | bench/btl/data/gnuplot_common_settings.hh | 87 | ||||
-rwxr-xr-x | bench/btl/data/go_mean | 24 | ||||
-rw-r--r-- | bench/btl/data/matrix_vector.hh | 111 | ||||
-rw-r--r-- | bench/btl/data/mk_mean_script.sh | 8 | ||||
-rwxr-xr-x | bench/btl/data/mk_new_gnuplot.sh | 36 | ||||
-rw-r--r-- | bench/btl/data/perlib_plot_settings.txt | 11 | ||||
-rw-r--r-- | bench/btl/generic_bench/bench_parameter.hh | 10 | ||||
-rw-r--r-- | bench/btl/libs/C/CMakeLists.txt | 2 | ||||
-rw-r--r-- | bench/btl/libs/STL/CMakeLists.txt | 2 | ||||
-rw-r--r-- | bench/btl/libs/STL_algo/CMakeLists.txt | 2 | ||||
-rw-r--r-- | bench/btl/libs/eigen2/eigen2_interface.hh | 10 | ||||
-rw-r--r-- | bench/btl/libs/eigen2/main.cpp | 11 | ||||
-rw-r--r-- | bench/btl/libs/hand_vec/CMakeLists.txt | 4 | ||||
-rw-r--r-- | bench/btl/libs/ublas/ublas_interface.hh | 14 |
19 files changed, 292 insertions, 360 deletions
diff --git a/bench/btl/actions/action_atv_product.hh b/bench/btl/actions/action_atv_product.hh index 9041885fc..b46bb6de8 100644 --- a/bench/btl/actions/action_atv_product.hh +++ b/bench/btl/actions/action_atv_product.hh @@ -85,8 +85,10 @@ public : Interface::copy_vector(X_ref,X,_size); } - inline void calculate( void ) { - Interface::atv_product(A,B,X,_size); + BTL_DONT_INLINE void calculate( void ) { + asm("#begin atv"); + Interface::atv_product(A,B,X,_size); + asm("#end atv"); } void check_result( void ) diff --git a/bench/btl/actions/action_matrix_vector_product.hh b/bench/btl/actions/action_matrix_vector_product.hh index 7e490abe3..3a172f292 100644 --- a/bench/btl/actions/action_matrix_vector_product.hh +++ b/bench/btl/actions/action_matrix_vector_product.hh @@ -88,7 +88,7 @@ public : static inline std::string name( void ) { - return "matrix_vector_"+Interface::name(); + return "matrix_vector_" + Interface::name(); } double nb_op_base( void ){ diff --git a/bench/btl/data/CMakeLists.txt b/bench/btl/data/CMakeLists.txt index 0057614da..daa65fed4 100644 --- a/bench/btl/data/CMakeLists.txt +++ b/bench/btl/data/CMakeLists.txt @@ -1,7 +1,7 @@ ADD_CUSTOM_TARGET(copy_scripts) -SET(script_files go_mean aat.hh ata.hh axpy.hh order_lib mk_mean_script.sh mk_new_gnuplot.sh mk_gnuplot_script.sh matrix_matrix.hh matrix_vector.hh atv.hh) +SET(script_files go_mean aat.hh ata.hh axpy.hh order_lib mk_mean_script.sh mk_new_gnuplot.sh mk_gnuplot_script.sh matrix_matrix.hh matrix_vector.hh atv.hh header.html footer.html perlib_plot_settings.txt gnuplot_common_settings.hh ) FOREACH(script_file ${script_files}) ADD_CUSTOM_COMMAND( @@ -12,6 +12,19 @@ ADD_CUSTOM_COMMAND( ) ENDFOREACH(script_file) +ADD_CUSTOM_COMMAND( + TARGET copy_scripts + POST_BUILD + COMMAND ${CMAKE_CXX_COMPILER} --version | head -n 1 > ${CMAKE_CURRENT_BINARY_DIR}/compiler_version.txt + ARGS +) +ADD_CUSTOM_COMMAND( + TARGET copy_scripts + POST_BUILD + COMMAND echo "${Eigen_SOURCE_DIR}" > ${CMAKE_CURRENT_BINARY_DIR}/eigen_root_dir.txt + ARGS +) + add_executable(smooth smooth.cxx) add_executable(regularize regularize.cxx) add_executable(main mean.cxx) diff --git a/bench/btl/data/atv.hh b/bench/btl/data/atv.hh index 45327f532..e476f9ee7 100644 --- a/bench/btl/data/atv.hh +++ b/bench/btl/data/atv.hh @@ -1,108 +1,3 @@ -#!/usr/bin/gnuplot -persist -# -# -# G N U P L O T -# Linux version 3.7 -# patchlevel 0 -# last modified Thu Jan 14 19:34:53 BST 1999 -# -# Copyright(C) 1986 - 1993, 1998, 1999 -# Thomas Williams, Colin Kelley and many others -# -# Type `help` to access the on-line reference manual -# The gnuplot FAQ is available from -# <http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/> -# -# Send comments and requests for help to <info-gnuplot@dartmouth.edu> -# Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu> -# -# set terminal postscript landscape noenhanced monochrome dashed defaultplex "Helvetica" 14 -# set output 'bench_gcc.ps' -set noclip points -set clip one -set noclip two -set bar 1.000000 -set border 31 lt -1 lw 1.000 -set xdata -set ydata -set zdata -set x2data -set y2data -set boxwidth -set dummy x,y -set format x "%g" -set format y "%g" -set format x2 "%g" -set format y2 "%g" -set format z "%g" -set angles radians -set nogrid -set key title "" -set key right top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0 -set nolabel -set noarrow -set nolinestyle -set nologscale -set logscale x 10 -set offsets 0, 0, 0, 0 -set pointsize 1 -set encoding default -set nopolar -set noparametric -set view 60, 30, 1, 1 -set samples 100, 100 -set isosamples 10, 10 -set surface -set nocontour -set clabel '%8.3g' -set mapping cartesian -set nohidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels auto 5 -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set data style linespoints -set function style lines -set xzeroaxis lt -2 lw 1.000 -set x2zeroaxis lt -2 lw 1.000 -set yzeroaxis lt -2 lw 1.000 -set y2zeroaxis lt -2 lw 1.000 -set tics in -set ticslevel 0.5 -set ticscale 1 0.5 -set mxtics default -set mytics default -set mx2tics default -set my2tics default -set xtics border mirror norotate autofreq -set ytics border mirror norotate autofreq -set ztics border nomirror norotate autofreq -set nox2tics -set noy2tics -set title "transposed-matrix vector product " 0.000000,0.000000 "" -set timestamp "" bottom norotate 0.000000,0.000000 "" -set rrange [ * : * ] noreverse nowriteback # (currently [-0:10] ) -set trange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set urange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set vrange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set xlabel "matrix size" 0.000000,0.000000 "" -set x2label "" 0.000000,0.000000 "" -set timefmt "%d/%m/%y\n%H:%M" -set xrange [ 10 : 1000 ] noreverse nowriteback -set x2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set ylabel "MFLOPS" 0.000000,0.000000 "" -set y2label "" 0.000000,0.000000 "" -set yrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set y2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set zlabel "" 0.000000,0.000000 "" -set zrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set locale "C" -set xrange [1:1000] -##set yrange [0:400] +set title "transposed-matrix vector product " 0.000000,0.000000 +set xlabel "matrix size" 0.000000,0.000000 +set xrange [4:1024] diff --git a/bench/btl/data/axpy.hh b/bench/btl/data/axpy.hh index 9f53397e3..1c3a62fbc 100644 --- a/bench/btl/data/axpy.hh +++ b/bench/btl/data/axpy.hh @@ -1,108 +1,110 @@ #!/usr/bin/gnuplot -persist # -# +# # G N U P L O T # Linux version 3.7 # patchlevel 0 # last modified Thu Jan 14 19:34:53 BST 1999 -# +# # Copyright(C) 1986 - 1993, 1998, 1999 # Thomas Williams, Colin Kelley and many others -# +# # Type `help` to access the on-line reference manual # The gnuplot FAQ is available from # <http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/> -# +# # Send comments and requests for help to <info-gnuplot@dartmouth.edu> # Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu> -# +# # set terminal postscript landscape noenhanced monochrome dashed defaultplex "Helvetica" 14 # set output 'bench_gcc.ps' -set noclip points -set clip one -set noclip two -set bar 1.000000 -set border 31 lt -1 lw 1.000 -set xdata -set ydata -set zdata -set x2data -set y2data -set boxwidth -set dummy x,y -set format x "%g" -set format y "%g" -set format x2 "%g" -set format y2 "%g" -set format z "%g" -set angles radians -set nogrid -set key title "" -set key right top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0 -set nolabel -set noarrow -set nolinestyle -set nologscale -set logscale x 10 -set offsets 0, 0, 0, 0 -set pointsize 1 -set encoding default -set nopolar -set noparametric -set view 60, 30, 1, 1 -set samples 100, 100 -set isosamples 10, 10 -set surface -set nocontour -set clabel '%8.3g' -set mapping cartesian -set nohidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels auto 5 -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set data style linespoints -set function style lines -set xzeroaxis lt -2 lw 1.000 -set x2zeroaxis lt -2 lw 1.000 -set yzeroaxis lt -2 lw 1.000 -set y2zeroaxis lt -2 lw 1.000 -set tics in -set ticslevel 0.5 -set ticscale 1 0.5 -set mxtics default -set mytics default -set mx2tics default -set my2tics default -set xtics border mirror norotate autofreq -set ytics border mirror norotate autofreq -set ztics border nomirror norotate autofreq -set nox2tics -set noy2tics -set title "Y+=alpha*X " 0.000000,0.000000 "" -set timestamp "" bottom norotate 0.000000,0.000000 "" -set rrange [ * : * ] noreverse nowriteback # (currently [-0:10] ) -set trange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set urange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set vrange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set xlabel "vector size" 0.000000,0.000000 "" -set x2label "" 0.000000,0.000000 "" -set timefmt "%d/%m/%y\n%H:%M" -set xrange [ 10 : 1000 ] noreverse nowriteback -set x2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set ylabel "MFLOPS" 0.000000,0.000000 "" -set y2label "" 0.000000,0.000000 "" -set yrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set y2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set zlabel "" 0.000000,0.000000 "" -set zrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set locale "C" +# set noclip points +# set clip one +# set noclip two +# set bar 1.000000 +# set border 31 lt -1 lw 1.000 +# set xdata +# set ydata +# set zdata +# set x2data +# set y2data +# set boxwidth +# set dummy x,y +# set format x "%g" +# set format y "%g" +# set format x2 "%g" +# set format y2 "%g" +# set format z "%g" +# set angles radians +# set nogrid +# set key title "" +# set key left top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0 +# set nolabel +# set noarrow +# set nolinestyle +# set nologscale +# set logscale x 10 +# set offsets 0, 0, 0, 0 +# set pointsize 1 +# set encoding default +# set nopolar +# set noparametric +# set view 60, 30, 1, 1 +# set samples 100, 100 +# set isosamples 10, 10 +# set surface +# set nocontour +# set clabel '%8.3g' +# set mapping cartesian +# set nohidden3d +# set cntrparam order 4 +# set cntrparam linear +# set cntrparam levels auto 5 +# set cntrparam points 5 +# set size ratio 0 1,1 +# set origin 0,0 +# set data style lines +# set function style lines +# set xzeroaxis lt -2 lw 1.000 +# set x2zeroaxis lt -2 lw 1.000 +# set yzeroaxis lt -2 lw 1.000 +# set y2zeroaxis lt -2 lw 1.000 +# set tics in +# set ticslevel 0.5 +# set ticscale 1 0.5 +# set mxtics default +# set mytics default +# set mx2tics default +# set my2tics default +# set xtics border mirror norotate autofreq +# set ytics border mirror norotate autofreq +# set ztics border nomirror norotate autofreq +# set nox2tics +# set noy2tics + +# set timestamp "" bottom norotate 0.000000,0.000000 "" +# set rrange [ * : * ] noreverse nowriteback # (currently [-0:10] ) +# set trange [ * : * ] noreverse nowriteback # (currently [-5:5] ) +# set urange [ * : * ] noreverse nowriteback # (currently [-5:5] ) +# set vrange [ * : * ] noreverse nowriteback # (currently [-5:5] ) +# +# set x2label "" 0.000000,0.000000 "" +# set timefmt "%d/%m/%y\n%H:%M" +# set xrange [ 10 : 1000 ] noreverse nowriteback +# set x2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) +# set ylabel "MFLOPS" 0.000000,0.000000 "" +# set y2label "" 0.000000,0.000000 "" +# set yrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) +# set y2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) +# set zlabel "" 0.000000,0.000000 "" +# set zrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) +# set zero 1e-08 +# set lmargin -1 +# set bmargin -1 +# set rmargin -1 +# set tmargin -1 +# set locale "C" + +set title "Y+=alpha*X " 0.000000,0.000000 +set xlabel "vector size" 0.000000,0.000000 set xrange [1:1000000] -##set yrange [0:550] diff --git a/bench/btl/data/gnuplot_common_settings.hh b/bench/btl/data/gnuplot_common_settings.hh new file mode 100644 index 000000000..00ae2867b --- /dev/null +++ b/bench/btl/data/gnuplot_common_settings.hh @@ -0,0 +1,87 @@ +set noclip points +set clip one +set noclip two +set bar 1.000000 +set border 31 lt -1 lw 1.000 +set xdata +set ydata +set zdata +set x2data +set y2data +set boxwidth +set dummy x,y +set format x "%g" +set format y "%g" +set format x2 "%g" +set format y2 "%g" +set format z "%g" +set angles radians +set nogrid +set key title "" +set key left top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0 +set nolabel +set noarrow +set nolinestyle +set nologscale +set logscale x 10 +set offsets 0, 0, 0, 0 +set pointsize 1 +set encoding default +set nopolar +set noparametric +set view 60, 30, 1, 1 +set samples 100, 100 +set isosamples 10, 10 +set surface +set nocontour +set clabel '%8.3g' +set mapping cartesian +set nohidden3d +set cntrparam order 4 +set cntrparam linear +set cntrparam levels auto 5 +set cntrparam points 5 +set size ratio 0 1,1 +set origin 0,0 +set data style lines +set function style lines +set xzeroaxis lt -2 lw 1.000 +set x2zeroaxis lt -2 lw 1.000 +set yzeroaxis lt -2 lw 1.000 +set y2zeroaxis lt -2 lw 1.000 +set tics in +set ticslevel 0.5 +set tics scale 1, 0.5 +set mxtics default +set mytics default +set mx2tics default +set my2tics default +set xtics border mirror norotate autofreq +set ytics border mirror norotate autofreq +set ztics border nomirror norotate autofreq +set nox2tics +set noy2tics +set timestamp "" bottom norotate 0.000000,0.000000 "" +set rrange [ * : * ] noreverse nowriteback # (currently [-0:10] ) +set trange [ * : * ] noreverse nowriteback # (currently [-5:5] ) +set urange [ * : * ] noreverse nowriteback # (currently [-5:5] ) +set vrange [ * : * ] noreverse nowriteback # (currently [-5:5] ) +set xlabel "matrix size" 0.000000,0.000000 +set x2label "" 0.000000,0.000000 +set timefmt "%d/%m/%y\n%H:%M" +set xrange [ 10 : 1000 ] noreverse nowriteback +set x2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) +set ylabel "MFLOPS" 0.000000,0.000000 +set y2label "" 0.000000,0.000000 +set yrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) +set y2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) +set zlabel "" 0.000000,0.000000 +set zrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) +set zero 1e-08 +set lmargin -1 +set bmargin -1 +set rmargin -1 +set tmargin -1 +set locale "C" +set xrange [4:1024] + diff --git a/bench/btl/data/go_mean b/bench/btl/data/go_mean index 36942bd09..422b357a6 100755 --- a/bench/btl/data/go_mean +++ b/bench/btl/data/go_mean @@ -1,10 +1,28 @@ +#! /bin/bash mkdir $1 ##cp ../libs/*/*.dat $1 +EIGENDIR=`cat eigen_root_dir.txt` + +webpagefilename=$1/index.html +#cp header.html $webpagefilename +echo '' > $webpagefilename +echo '<p><strong>Configuration</strong>' >> $webpagefilename +echo '<ul>'\ + '<li>' `cat /proc/cpuinfo | grep "model name" | head -n 1`\ + ' (' `uname -m` ')</li>'\ + '<li> compiler: ' `cat compiler_version.txt` '</li>'\ + '<li> eigen2: ' `svn info $EIGENDIR | grep Revision` '</li>'\ + '</ul>' \ + '</p>' >> $webpagefilename + source mk_mean_script.sh axpy $1 11 2500 100000 250000 > $1/axpy.html source mk_mean_script.sh matrix_vector $1 11 50 300 500 > $1/matrix_vector.html source mk_mean_script.sh atv $1 11 50 300 500 > $1/atv.html -source mk_mean_script.sh matrix_matrix $1 11 100 300 500 > $1/matrix_matrix.html -source mk_mean_script.sh aat $1 11 100 300 1000 > $1/aat.html -source mk_mean_script.sh ata $1 11 100 300 1000 > $1/ata.html +# source mk_mean_script.sh matrix_matrix $1 11 100 300 500 > $1/matrix_matrix.html +# source mk_mean_script.sh aat $1 11 100 300 1000 > $1/aat.html +# source mk_mean_script.sh ata $1 11 100 300 1000 > $1/ata.html + +## compile the web page ## +#echo `cat footer.html` >> $webpagefilename
\ No newline at end of file diff --git a/bench/btl/data/matrix_vector.hh b/bench/btl/data/matrix_vector.hh index 00e8c7c33..16a2b7ac7 100644 --- a/bench/btl/data/matrix_vector.hh +++ b/bench/btl/data/matrix_vector.hh @@ -1,108 +1,3 @@ -#!/usr/bin/gnuplot -persist -# -# -# G N U P L O T -# Linux version 3.7 -# patchlevel 0 -# last modified Thu Jan 14 19:34:53 BST 1999 -# -# Copyright(C) 1986 - 1993, 1998, 1999 -# Thomas Williams, Colin Kelley and many others -# -# Type `help` to access the on-line reference manual -# The gnuplot FAQ is available from -# <http://www.uni-karlsruhe.de/~ig25/gnuplot-faq/> -# -# Send comments and requests for help to <info-gnuplot@dartmouth.edu> -# Send bugs, suggestions and mods to <bug-gnuplot@dartmouth.edu> -# -# set terminal postscript landscape noenhanced monochrome dashed defaultplex "Helvetica" 14 -# set output 'bench_gcc.ps' -set noclip points -set clip one -set noclip two -set bar 1.000000 -set border 31 lt -1 lw 1.000 -set xdata -set ydata -set zdata -set x2data -set y2data -set boxwidth -set dummy x,y -set format x "%g" -set format y "%g" -set format x2 "%g" -set format y2 "%g" -set format z "%g" -set angles radians -set nogrid -set key title "" -set key right top Right noreverse box linetype -2 linewidth 1.000 samplen 4 spacing 1 width 0 -set nolabel -set noarrow -set nolinestyle -set nologscale -set logscale x 10 -set offsets 0, 0, 0, 0 -set pointsize 1 -set encoding default -set nopolar -set noparametric -set view 60, 30, 1, 1 -set samples 100, 100 -set isosamples 10, 10 -set surface -set nocontour -set clabel '%8.3g' -set mapping cartesian -set nohidden3d -set cntrparam order 4 -set cntrparam linear -set cntrparam levels auto 5 -set cntrparam points 5 -set size ratio 0 1,1 -set origin 0,0 -set data style linespoints -set function style lines -set xzeroaxis lt -2 lw 1.000 -set x2zeroaxis lt -2 lw 1.000 -set yzeroaxis lt -2 lw 1.000 -set y2zeroaxis lt -2 lw 1.000 -set tics in -set ticslevel 0.5 -set ticscale 1 0.5 -set mxtics default -set mytics default -set mx2tics default -set my2tics default -set xtics border mirror norotate autofreq -set ytics border mirror norotate autofreq -set ztics border nomirror norotate autofreq -set nox2tics -set noy2tics -set title "matrix vector product " 0.000000,0.000000 "" -set timestamp "" bottom norotate 0.000000,0.000000 "" -set rrange [ * : * ] noreverse nowriteback # (currently [-0:10] ) -set trange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set urange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set vrange [ * : * ] noreverse nowriteback # (currently [-5:5] ) -set xlabel "matrix size" 0.000000,0.000000 "" -set x2label "" 0.000000,0.000000 "" -set timefmt "%d/%m/%y\n%H:%M" -set xrange [ 10 : 1000 ] noreverse nowriteback -set x2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set ylabel "MFLOPS" 0.000000,0.000000 "" -set y2label "" 0.000000,0.000000 "" -set yrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set y2range [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set zlabel "" 0.000000,0.000000 "" -set zrange [ * : * ] noreverse nowriteback # (currently [-10:10] ) -set zero 1e-08 -set lmargin -1 -set bmargin -1 -set rmargin -1 -set tmargin -1 -set locale "C" -set xrange [1:1000] -##set yrange [0:400] +set title "matrix vector product " 0.000000,0.000000 +set xlabel "matrix size" 0.000000,0.000000 +set xrange [4:1024] diff --git a/bench/btl/data/mk_mean_script.sh b/bench/btl/data/mk_mean_script.sh index bc6821cf1..0af6ccbc4 100644 --- a/bench/btl/data/mk_mean_script.sh +++ b/bench/btl/data/mk_mean_script.sh @@ -10,7 +10,7 @@ WORK_DIR=tmp mkdir $WORK_DIR DATA_FILE=`find $DIR -name "*.dat" | grep _${WHAT}` -echo +echo for FILE in $DATA_FILE do ##echo hello world @@ -19,7 +19,7 @@ do ##echo "mk_mean_script1" ${TITLE} cp $FILE ${WORK_DIR}/${TITLE} - + done cd $WORK_DIR @@ -30,6 +30,10 @@ cd .. rm -R $WORK_DIR +webpagefilename=$2/index.html +# echo '<h3>'${WHAT}'</h3>' >> $webpagefilename +echo '<a href="/btl/'$1'.pdf"><img src="/btl/'$1'.png" alt="'${WHAT}'" /></a><br/>' >> $webpagefilename + diff --git a/bench/btl/data/mk_new_gnuplot.sh b/bench/btl/data/mk_new_gnuplot.sh index 5f8bd4e33..85eb2403e 100755 --- a/bench/btl/data/mk_new_gnuplot.sh +++ b/bench/btl/data/mk_new_gnuplot.sh @@ -1,7 +1,9 @@ #! /bin/bash WHAT=$1 DIR=$2 -cat ../${WHAT}.hh > ${WHAT}.gnuplot + +cat ../gnuplot_common_settings.hh > ${WHAT}.gnuplot +cat ../${WHAT}.hh >> ${WHAT}.gnuplot DATA_FILE=`cat ../order_lib` @@ -12,36 +14,36 @@ do LAST=$FILE done - for FILE in $DATA_FILE do + BASE=${FILE##*/} ; BASE=${FILE##*/} ; AVANT=bench_${WHAT}_ ; REDUC=${BASE##*$AVANT} ; TITLE=${REDUC%.dat} + + echo "'"$FILE"'" `grep $TITLE ../perlib_plot_settings.txt | head -n 1 | cut -d ";" -f 2` "\\" >> $WHAT.gnuplot if [ $FILE != $LAST ] then - echo "'"$FILE"'" ",\\" >> $WHAT.gnuplot + echo ", \\" >> $WHAT.gnuplot fi done -echo "'"$LAST"'" >> $WHAT.gnuplot +echo " " >> $WHAT.gnuplot + echo set term postscript color >> $WHAT.gnuplot echo set output "'"../${DIR}/$WHAT.ps"'" >> $WHAT.gnuplot -# echo set term pdf color >> $WHAT.gnuplot -# echo set output "'"../${DIR}/$WHAT.pdf"'" >> $WHAT.gnuplot -# echo set term png truecolor size 1024,768 >> $WHAT.gnuplot -# echo set output "'"../${DIR}/$WHAT.png"'" >> $WHAT.gnuplot -echo plot \\ >> $WHAT.gnuplot -for FILE in $DATA_FILE -do - if [ $FILE != $LAST ] - then - echo "'"$FILE"'" ",\\" >> $WHAT.gnuplot - fi -done -echo "'"$LAST"'" >> $WHAT.gnuplot +echo replot >> $WHAT.gnuplot + +echo set term png truecolor size 800,600 >> $WHAT.gnuplot +echo set output "'"../${DIR}/$WHAT.png"'" >> $WHAT.gnuplot +echo replot >> $WHAT.gnuplot + gnuplot -persist < $WHAT.gnuplot rm $WHAT.gnuplot +# echo "`pwd` hh s2pdf $WHAT.ps $WHAT.pdf" > ../log.txt + +ps2pdf ../${DIR}/$WHAT.ps ../${DIR}/$WHAT.pdf + diff --git a/bench/btl/data/perlib_plot_settings.txt b/bench/btl/data/perlib_plot_settings.txt new file mode 100644 index 000000000..8e5784497 --- /dev/null +++ b/bench/btl/data/perlib_plot_settings.txt @@ -0,0 +1,11 @@ +eigen2 ; with lines lw 2 lc rgbcolor "black" lt 1 +eigen2_novec ; with lines lw 1 lc rgbcolor "grey" lt 1 +gmm ; with lines lc rgbcolor "blue" lt 1 +mtl4 ; with lines lc rgbcolor "#74B973" lt 1 +blitz ; with lines lc rgbcolor "#38F5F5" lt 1 +ATLAS ; with lines lc rgbcolor "green" lt 1 +INTEL_MKL ; with lines lc rgbcolor "yellow" lt 2 +MKL_INTEL ; with lines lc rgbcolor "yellow" lt 2 +ublas ; with lines lc rgbcolor "red" lt 1 +F77 ; with lines lc rgbcolor "#9A6B36" lt 1 +C ; with lines lc rgbcolor "#7DF4FF" lt 1 diff --git a/bench/btl/generic_bench/bench_parameter.hh b/bench/btl/generic_bench/bench_parameter.hh index e2db997fd..62ba20e4c 100644 --- a/bench/btl/generic_bench/bench_parameter.hh +++ b/bench/btl/generic_bench/bench_parameter.hh @@ -27,21 +27,21 @@ // nb of point on bench curves #define NB_POINT 100 // min vector size for axpy bench -#define MIN_AXPY 2 +#define MIN_AXPY 5 // max vector size for axpy bench #define MAX_AXPY 1000000 // min matrix size for matrix vector product bench -#define MIN_MV 2 +#define MIN_MV 5 // max matrix size for matrix vector product bench #define MAX_MV 1024 // min matrix size for matrix matrix product bench -#define MIN_MM 2 +#define MIN_MM 5 // max matrix size for matrix matrix product bench #define MAX_MM 1024 // min matrix size for LU bench -#define MIN_LU 10 +#define MIN_LU 5 // max matrix size for LU bench -#define MAX_LU 1000 +#define MAX_LU 1024 // max size for tiny vector and matrix #define TINY_MV_MAX_SIZE 16 // default nb_sample for x86 timer diff --git a/bench/btl/libs/C/CMakeLists.txt b/bench/btl/libs/C/CMakeLists.txt index 2bce21e8d..3d4d24cee 100644 --- a/bench/btl/libs/C/CMakeLists.txt +++ b/bench/btl/libs/C/CMakeLists.txt @@ -1,3 +1,3 @@ include_directories(${PROJECT_SOURCE_DIR}/libs/f77) -btl_add_bench(btl_C main.cpp) +btl_add_bench(btl_C main.cpp OFF) # set_target_properties(btl_C PROPERTIES COMPILE_FLAGS "-fpeel-loops")
\ No newline at end of file diff --git a/bench/btl/libs/STL/CMakeLists.txt b/bench/btl/libs/STL/CMakeLists.txt index 2897298d1..4cfc2dcf2 100644 --- a/bench/btl/libs/STL/CMakeLists.txt +++ b/bench/btl/libs/STL/CMakeLists.txt @@ -1,2 +1,2 @@ -btl_add_bench(btl_STL main.cpp) +btl_add_bench(btl_STL main.cpp OFF) diff --git a/bench/btl/libs/STL_algo/CMakeLists.txt b/bench/btl/libs/STL_algo/CMakeLists.txt index e4387aba8..8309c8bdd 100644 --- a/bench/btl/libs/STL_algo/CMakeLists.txt +++ b/bench/btl/libs/STL_algo/CMakeLists.txt @@ -1,2 +1,2 @@ -btl_add_bench(btl_STL_algo main.cpp) +btl_add_bench(btl_STL_algo main.cpp OFF) diff --git a/bench/btl/libs/eigen2/eigen2_interface.hh b/bench/btl/libs/eigen2/eigen2_interface.hh index fa7f759b2..4ce4af165 100644 --- a/bench/btl/libs/eigen2/eigen2_interface.hh +++ b/bench/btl/libs/eigen2/eigen2_interface.hh @@ -30,7 +30,9 @@ class eigen2_interface public : - typedef real real_type ; + enum {IsFixedSize = (SIZE!=Dynamic)}; + + typedef real real_type; typedef std::vector<real> stl_vector; typedef std::vector<stl_vector> stl_matrix; @@ -41,11 +43,11 @@ public : static inline std::string name( void ) { #if defined(EIGEN_VECTORIZE_SSE) - if (SIZE==Dynamic) return "eigen2_SSE"; else return "tiny_eigen2_SSE"; + if (SIZE==Dynamic) return "eigen2"; else return "tiny_eigen2"; #elif defined(EIGEN_VECTORIZE_ALTIVEC) - if (SIZE==Dynamic) return "eigen2_AltiVec"; else return "tiny_eigen2_AltiVec"; - #else if (SIZE==Dynamic) return "eigen2"; else return "tiny_eigen2"; + #else + if (SIZE==Dynamic) return "eigen2_novec"; else return "tiny_eigen2_novec"; #endif } diff --git a/bench/btl/libs/eigen2/main.cpp b/bench/btl/libs/eigen2/main.cpp index f38dfcc0a..dd86ee2a8 100644 --- a/bench/btl/libs/eigen2/main.cpp +++ b/bench/btl/libs/eigen2/main.cpp @@ -32,11 +32,12 @@ int main() { bench<Action_matrix_vector_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT); -// bench<Action_atv_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT); -// bench<Action_axpy<eigen2_interface<REAL_TYPE> > >(MIN_AXPY,MAX_AXPY,NB_POINT); -// bench<Action_matrix_matrix_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); -// bench<Action_ata_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); -// bench<Action_aat_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + + bench<Action_axpy<eigen2_interface<REAL_TYPE> > >(MIN_AXPY,MAX_AXPY,NB_POINT); + bench<Action_matrix_matrix_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_ata_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_aat_product<eigen2_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT); + bench<Action_atv_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT); //bench<Action_lu_solve<blitz_LU_solve_interface<REAL_TYPE> > >(MIN_LU,MAX_LU,NB_POINT); diff --git a/bench/btl/libs/hand_vec/CMakeLists.txt b/bench/btl/libs/hand_vec/CMakeLists.txt index afab9140e..3fffbfe8a 100644 --- a/bench/btl/libs/hand_vec/CMakeLists.txt +++ b/bench/btl/libs/hand_vec/CMakeLists.txt @@ -2,9 +2,9 @@ find_package(Eigen2) if (EIGEN2_FOUND) include_directories(${EIGEN2_INCLUDE_DIR} ${PROJECT_SOURCE_DIR}/libs/f77) - btl_add_bench(btl_hand_vec main.cpp) + btl_add_bench(btl_hand_vec main.cpp OFF) - btl_add_bench(btl_hand_peeling main.cpp) + btl_add_bench(btl_hand_peeling main.cpp OFF) if (BUILD_btl_hand_peeling) set_target_properties(btl_hand_peeling PROPERTIES COMPILE_FLAGS "-DPEELING") endif (BUILD_btl_hand_peeling) diff --git a/bench/btl/libs/ublas/ublas_interface.hh b/bench/btl/libs/ublas/ublas_interface.hh index c8acb32db..2572f8c21 100644 --- a/bench/btl/libs/ublas/ublas_interface.hh +++ b/bench/btl/libs/ublas/ublas_interface.hh @@ -46,9 +46,9 @@ public : static inline void matrix_from_stl(gene_matrix & A, stl_matrix & A_stl){ A.resize(A_stl.size(),A_stl[0].size()); - for (int i=0; i<A_stl.size() ; i++) - for (int j=0; j<A_stl[i].size() ; j++) - A(i,j)=A_stl[i][j]; + for (int j=0; j<A_stl.size() ; j++) + for (int i=0; i<A_stl[j].size() ; i++) + A(i,j)=A_stl[j][i]; } static inline void vector_from_stl(gene_vector & B, stl_vector & B_stl){ @@ -64,11 +64,11 @@ public : static inline void matrix_to_stl(gene_matrix & A, stl_matrix & A_stl){ int N=A_stl.size(); - for (int i=0;i<N;i++) + for (int j=0;j<N;j++) { - A_stl[i].resize(N); - for (int j=0;j<N;j++) - A_stl[i][j]=A(i,j); + A_stl[j].resize(N); + for (int i=0;i<N;i++) + A_stl[j][i]=A(i,j); } } |