various improvements of the plot generator in BTL

This commit is contained in:
Gael Guennebaud 2008-07-12 21:41:32 +00:00
parent 8233de8b69
commit ed6e07b2f6
19 changed files with 293 additions and 361 deletions

View File

@ -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 )

View File

@ -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 ){

View File

@ -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)

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")

View File

@ -1,2 +1,2 @@
btl_add_bench(btl_STL main.cpp)
btl_add_bench(btl_STL main.cpp OFF)

View File

@ -1,2 +1,2 @@
btl_add_bench(btl_STL_algo main.cpp)
btl_add_bench(btl_STL_algo main.cpp OFF)

View File

@ -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";
#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";
#elif defined(EIGEN_VECTORIZE_ALTIVEC)
if (SIZE==Dynamic) return "eigen2"; else return "tiny_eigen2";
#else
if (SIZE==Dynamic) return "eigen2_novec"; else return "tiny_eigen2_novec";
#endif
}

View File

@ -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);

View File

@ -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)

View File

@ -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);
}
}