From 9cca79f5ca724ee5c3d5e4c6e9b842fc1f9bd2a2 Mon Sep 17 00:00:00 2001
From: Gael Guennebaud
Date: Wed, 23 Mar 2011 10:02:00 +0100
Subject: update aat action to do a syrk operation, and remove (comment) ata
action
---
bench/btl/actions/action_aat_product.hh | 2 +-
bench/btl/actions/basic_actions.hh | 2 +-
bench/btl/data/go_mean | 6 +++---
bench/btl/libs/C_BLAS/C_BLAS_interface.hh | 29 +++++++++++++++------------
bench/btl/libs/C_BLAS/main.cpp | 2 +-
bench/btl/libs/STL/STL_interface.hh | 33 +++++++++++++++++--------------
bench/btl/libs/eigen3/eigen3_interface.hh | 9 +++++----
bench/btl/libs/eigen3/main_matmat.cpp | 2 +-
bench/btl/libs/gmm/main.cpp | 4 ++--
bench/btl/libs/mtl4/mtl4_interface.hh | 6 +++---
bench/btl/libs/ublas/main.cpp | 4 ++--
11 files changed, 53 insertions(+), 46 deletions(-)
(limited to 'bench/btl')
diff --git a/bench/btl/actions/action_aat_product.hh b/bench/btl/actions/action_aat_product.hh
index 92930e219..aa5b35c94 100644
--- a/bench/btl/actions/action_aat_product.hh
+++ b/bench/btl/actions/action_aat_product.hh
@@ -87,7 +87,7 @@ public :
}
double nb_op_base( void ){
- return 2.0*_size*_size*_size;
+ return double(_size)*double(_size)*double(_size);
}
inline void initialize( void ){
diff --git a/bench/btl/actions/basic_actions.hh b/bench/btl/actions/basic_actions.hh
index 62442f01f..a3333ea26 100644
--- a/bench/btl/actions/basic_actions.hh
+++ b/bench/btl/actions/basic_actions.hh
@@ -6,7 +6,7 @@
#include "action_atv_product.hh"
#include "action_matrix_matrix_product.hh"
-#include "action_ata_product.hh"
+// #include "action_ata_product.hh"
#include "action_aat_product.hh"
#include "action_trisolve.hh"
diff --git a/bench/btl/data/go_mean b/bench/btl/data/go_mean
index 37f29fa17..176c3c994 100755
--- a/bench/btl/data/go_mean
+++ b/bench/btl/data/go_mean
@@ -27,7 +27,7 @@ echo ''\
'- ' `cat /proc/cpuinfo | grep "model name" | head -n 1`\
' (' `uname -m` ')
'\
'- compiler: ' `cat compiler_version.txt` '
'\
- '- eigen2: ' `svn info $EIGENDIR | grep Revision` '
'\
+ '- eigen3: ' `hg identify -i $EIGENDIR` '
'\
'
' \
'
' >> $webpagefilename
@@ -37,11 +37,10 @@ source mk_mean_script.sh matrix_vector $1 11 50 300 1000 $mode $prefix
source mk_mean_script.sh atv $1 11 50 300 1000 $mode $prefix
source mk_mean_script.sh matrix_matrix $1 11 100 300 1000 $mode $prefix
source mk_mean_script.sh aat $1 11 100 300 1000 $mode $prefix
-source mk_mean_script.sh ata $1 11 100 300 1000 $mode $prefix
+# source mk_mean_script.sh ata $1 11 100 300 1000 $mode $prefix
source mk_mean_script.sh trisolve_vector $1 11 100 300 1000 $mode $prefix
source mk_mean_script.sh trisolve_matrix $1 11 100 300 1000 $mode $prefix
source mk_mean_script.sh cholesky $1 11 100 300 1000 $mode $prefix
-source mk_mean_script.sh complete_lu_decomp $1 11 100 300 1000 $mode $prefix
source mk_mean_script.sh partial_lu_decomp $1 11 100 300 1000 $mode $prefix
source mk_mean_script.sh tridiagonalization $1 11 100 300 1000 $mode $prefix
source mk_mean_script.sh hessenberg $1 11 100 300 1000 $mode $prefix
@@ -49,6 +48,7 @@ source mk_mean_script.sh symv $1 11 50 300 1000 $mode $prefix
source mk_mean_script.sh syr2 $1 11 50 300 1000 $mode $prefix
source mk_mean_script.sh ger $1 11 50 300 1000 $mode $prefix
source mk_mean_script.sh rot $1 11 2500 100000 250000 $mode $prefix
+source mk_mean_script.sh complete_lu_decomp $1 11 100 300 1000 $mode $prefix
fi
diff --git a/bench/btl/libs/C_BLAS/C_BLAS_interface.hh b/bench/btl/libs/C_BLAS/C_BLAS_interface.hh
index 5701b7b1e..d23d04807 100644
--- a/bench/btl/libs/C_BLAS/C_BLAS_interface.hh
+++ b/bench/btl/libs/C_BLAS/C_BLAS_interface.hh
@@ -108,12 +108,13 @@ public :
cblas_dgemm(CblasColMajor,CblasTrans,CblasTrans,N,N,N,1.0,A,N,B,N,0.0,X,N);
}
- static inline void ata_product(gene_matrix & A, gene_matrix & X, int N){
- cblas_dgemm(CblasColMajor,CblasTrans,CblasNoTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
- }
+// static inline void ata_product(gene_matrix & A, gene_matrix & X, int N){
+// cblas_dgemm(CblasColMajor,CblasTrans,CblasNoTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
+// }
static inline void aat_product(gene_matrix & A, gene_matrix & X, int N){
- cblas_dgemm(CblasColMajor,CblasNoTrans,CblasTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
+ //cblas_dgemm(CblasColMajor,CblasNoTrans,CblasTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
+ cblas_dsyrk(CblasColMajor, CblasLower, CblasTrans, N, N, 1.0, A, N, 0.0, X, N);
}
static inline void axpy(real coef, const gene_vector & X, gene_vector & Y, int N){
@@ -212,19 +213,21 @@ public :
#endif
}
- static inline void ata_product(gene_matrix & A, gene_matrix & X, int N){
- #ifdef PUREBLAS
- sgemm_(&trans,¬rans,&N,&N,&N,&fone,A,&N,A,&N,&fzero,X,&N);
- #else
- cblas_sgemm(CblasColMajor,CblasTrans,CblasNoTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
- #endif
- }
+// static inline void ata_product(gene_matrix & A, gene_matrix & X, int N){
+// #ifdef PUREBLAS
+// sgemm_(&trans,¬rans,&N,&N,&N,&fone,A,&N,A,&N,&fzero,X,&N);
+// #else
+// cblas_sgemm(CblasColMajor,CblasTrans,CblasNoTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
+// #endif
+// }
static inline void aat_product(gene_matrix & A, gene_matrix & X, int N){
#ifdef PUREBLAS
- sgemm_(¬rans,&trans,&N,&N,&N,&fone,A,&N,A,&N,&fzero,X,&N);
+ // sgemm_(¬rans,&trans,&N,&N,&N,&fone,A,&N,A,&N,&fzero,X,&N);
+ ssyrk_(&lower,¬rans,&N,&N,&fone,A,&N,&fzero,X,&N);
#else
- cblas_sgemm(CblasColMajor,CblasNoTrans,CblasTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
+// cblas_sgemm(CblasColMajor,CblasNoTrans,CblasTrans,N,N,N,1.0,A,N,A,N,0.0,X,N);
+ cblas_ssyrk(CblasColMajor, CblasLower, CblasNoTrans, N, N, 1.0, A, N, 0.0, X, N);
#endif
}
diff --git a/bench/btl/libs/C_BLAS/main.cpp b/bench/btl/libs/C_BLAS/main.cpp
index 99f512f9b..d7af129f7 100644
--- a/bench/btl/libs/C_BLAS/main.cpp
+++ b/bench/btl/libs/C_BLAS/main.cpp
@@ -48,7 +48,7 @@ int main()
bench > >(MIN_AXPY,MAX_AXPY,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
- bench > >(MIN_MM,MAX_MM,NB_POINT);
+// bench > >(MIN_MM,MAX_MM,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
diff --git a/bench/btl/libs/STL/STL_interface.hh b/bench/btl/libs/STL/STL_interface.hh
index 0b73382f3..93e76bd55 100644
--- a/bench/btl/libs/STL/STL_interface.hh
+++ b/bench/btl/libs/STL/STL_interface.hh
@@ -78,18 +78,18 @@ public :
cible[i][j]=source[i][j];
}
- static inline void ata_product(const gene_matrix & A, gene_matrix & X, int N)
- {
- real somme;
- for (int j=0;j=j)
+ {
+ for (int k=0;k().setZero();
+ X.template selfadjointView().rankUpdate(A);
}
static inline void matrix_vector_product(const gene_matrix & A, const gene_vector & B, gene_vector & X, int N){
diff --git a/bench/btl/libs/eigen3/main_matmat.cpp b/bench/btl/libs/eigen3/main_matmat.cpp
index 052810a16..926fa2b01 100644
--- a/bench/btl/libs/eigen3/main_matmat.cpp
+++ b/bench/btl/libs/eigen3/main_matmat.cpp
@@ -25,7 +25,7 @@ BTL_MAIN;
int main()
{
bench > >(MIN_MM,MAX_MM,NB_POINT);
- bench > >(MIN_MM,MAX_MM,NB_POINT);
+// bench > >(MIN_MM,MAX_MM,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
diff --git a/bench/btl/libs/gmm/main.cpp b/bench/btl/libs/gmm/main.cpp
index 7ab22fda3..1f0c051eb 100644
--- a/bench/btl/libs/gmm/main.cpp
+++ b/bench/btl/libs/gmm/main.cpp
@@ -34,8 +34,8 @@ int main()
bench > >(MIN_MV,MAX_MV,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
- bench > >(MIN_MM,MAX_MM,NB_POINT);
- bench > >(MIN_MM,MAX_MM,NB_POINT);
+// bench > >(MIN_MM,MAX_MM,NB_POINT);
+// bench > >(MIN_MM,MAX_MM,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
//bench > >(MIN_LU,MAX_LU,NB_POINT);
diff --git a/bench/btl/libs/mtl4/mtl4_interface.hh b/bench/btl/libs/mtl4/mtl4_interface.hh
index a2f067f73..3795ac61e 100644
--- a/bench/btl/libs/mtl4/mtl4_interface.hh
+++ b/bench/btl/libs/mtl4/mtl4_interface.hh
@@ -92,9 +92,9 @@ public :
X = (trans(A)*trans(B));
}
- static inline void ata_product(const gene_matrix & A, gene_matrix & X, int N){
- X = (trans(A)*A);
- }
+// static inline void ata_product(const gene_matrix & A, gene_matrix & X, int N){
+// X = (trans(A)*A);
+// }
static inline void aat_product(const gene_matrix & A, gene_matrix & X, int N){
X = (A*trans(A));
diff --git a/bench/btl/libs/ublas/main.cpp b/bench/btl/libs/ublas/main.cpp
index 22d697225..e2e77ee1f 100644
--- a/bench/btl/libs/ublas/main.cpp
+++ b/bench/btl/libs/ublas/main.cpp
@@ -33,8 +33,8 @@ int main()
bench > >(MIN_MV,MAX_MV,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
- bench > >(MIN_MM,MAX_MM,NB_POINT);
- bench > >(MIN_MM,MAX_MM,NB_POINT);
+// bench > >(MIN_MM,MAX_MM,NB_POINT);
+// bench > >(MIN_MM,MAX_MM,NB_POINT);
bench > >(MIN_MM,MAX_MM,NB_POINT);
--
cgit v1.2.3