diff options
author | Gael Guennebaud <g.gael@free.fr> | 2009-09-18 15:36:05 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2009-09-18 15:36:05 +0200 |
commit | 0b60027f3c952163608a2d9b75b5da4ed7275210 (patch) | |
tree | 625725f5226ff98aa96b946f39bab51586d29db3 /bench/sparse_dense_product.cpp | |
parent | 6b5f96cb030a0fc65d772c91d66fc27f9cf57af3 (diff) |
implement __gnuc_forget_about_setZero_its_over_now
Diffstat (limited to 'bench/sparse_dense_product.cpp')
-rw-r--r-- | bench/sparse_dense_product.cpp | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/bench/sparse_dense_product.cpp b/bench/sparse_dense_product.cpp index 9b9af8819..bfe46122d 100644 --- a/bench/sparse_dense_product.cpp +++ b/bench/sparse_dense_product.cpp @@ -91,22 +91,22 @@ int main(int argc, char *argv[]) { std::cout << "Eigen sparse\t" << sm1.nonZeros()/float(sm1.rows()*sm1.cols())*100 << "%\n"; - BENCH(for (int k=0; k<REPEAT; ++k) v2 = sm1 * v1;) + BENCH(asm("#myc"); v2 = sm1 * v1; asm("#myd");) std::cout << " a * v:\t" << timer.value() << endl; - - BENCH(for (int k=0; k<REPEAT; ++k) { asm("#mya"); v2 = sm1.transpose() * v1; asm("#myb"); }) - + + BENCH( { asm("#mya"); v2 = sm1.transpose() * v1; asm("#myb"); }) + std::cout << " a' * v:\t" << timer.value() << endl; } - + // { // DynamicSparseMatrix<Scalar> m1(sm1); // std::cout << "Eigen dyn-sparse\t" << m1.nonZeros()/float(m1.rows()*m1.cols())*100 << "%\n"; -// +// // BENCH(for (int k=0; k<REPEAT; ++k) v2 = m1 * v1;) // std::cout << " a * v:\t" << timer.value() << endl; -// +// // BENCH(for (int k=0; k<REPEAT; ++k) v2 = m1.transpose() * v1;) // std::cout << " a' * v:\t" << timer.value() << endl; // } @@ -118,23 +118,15 @@ int main(int argc, char *argv[]) //GmmDynSparse gmmT3(rows,cols); GmmSparse m1(rows,cols); eiToGmm(sm1, m1); - + std::vector<Scalar> gmmV1(cols), gmmV2(cols); Map<Matrix<Scalar,Dynamic,1> >(&gmmV1[0], cols) = v1; Map<Matrix<Scalar,Dynamic,1> >(&gmmV2[0], cols) = v2; - timer.reset(); - timer.start(); - for (int k=0; k<REPEAT; ++k) - gmm::mult(m1, gmmV1, gmmV2); - timer.stop(); + BENCH( asm("#myx"); gmm::mult(m1, gmmV1, gmmV2); asm("#myy"); ) std::cout << " a * v:\t" << timer.value() << endl; - timer.reset(); - timer.start(); - for (int k=0; k<REPEAT; ++k) - gmm::mult(gmm::transposed(m1), gmmV1, gmmV2); - timer.stop(); + BENCH( gmm::mult(gmm::transposed(m1), gmmV1, gmmV2); ) std::cout << " a' * v:\t" << timer.value() << endl; } #endif |