Commit Graph

202 Commits

Author SHA1 Message Date
Gael Guennebaud
6db6e358f5 add the possibility to set the cache size at runtime 2010-06-18 23:25:57 +02:00
Gael Guennebaud
5b192930b6 add runtime API to control multithreading 2010-06-10 23:30:15 +02:00
Gael Guennebaud
0116261407 make BenchTimer compatible with 2.0 branch 2010-06-01 13:57:38 +02:00
Benoit Jacob
abbe260905 remove USING_PART_OF_NAMESPACE_EIGEN, leaving it in Eigen2Support.
improve porting-Eigen2-to-3 docs
2010-04-22 18:27:13 -04:00
Hauke Heibel
51b0159c96 Fixed line endings. 2010-03-05 18:11:54 +01:00
Gael Guennebaud
f2a246c225 add a small program to bench all combinations of small products 2010-03-05 17:16:19 +01:00
Gael Guennebaud
c442208358 clean a bit the bench_gemm files 2010-03-05 11:35:43 +01:00
Gael Guennebaud
24ef5fedcd minor cleaning 2010-03-05 09:57:04 +01:00
Gael Guennebaud
cefd9b8888 merge with default branch 2010-03-04 18:47:52 +01:00
Gael Guennebaud
b0ffd9bf04 clean #defined tokens, and use clock_gettime for the real time 2010-03-03 09:41:29 +01:00
Eamon Nerbonne
ff6b94d6d0 BenchTimer: avoid warning about symbol redefinition on win32, and include <Eigen/Core> (required to compile) 2010-03-02 08:46:11 +01:00
Gael Guennebaud
1710c07f63 remove Qt's atomic dependency, I don't know what I was doing wrong... 2010-03-01 13:09:47 +01:00
Gael Guennebaud
aeff3ff391 make Aron's idea work using Qt's atomic implementation for the synchronisation 2010-03-01 10:57:32 +01:00
Gael Guennebaud
ac425090f3 BTL: allow to bench real time 2010-02-26 14:57:49 +01:00
Gael Guennebaud
c05047d28e fix some BTL issues 2010-02-26 12:51:20 +01:00
Gael Guennebaud
3ac2b96a2f implement a smarter parallelization strategy for gemm avoiding multiple
paking of the same data
2010-02-26 12:32:00 +01:00
Gael Guennebaud
68eaefa5d4 update BTL (better timer, eigen2 => eigen3, etc) 2010-02-23 18:23:12 +01:00
Gael Guennebaud
3beedba244 merge 2010-02-22 21:32:29 +01:00
Thomas Capricelli
d3b314569b provide default values for CXX, remove duplicate define 2010-02-22 15:39:17 +01:00
Hauke Heibel
3e6ab8f93b ups 2010-02-22 11:34:25 +01:00
Hauke Heibel
d5af5ab92b Added getRealTime() for windows. 2010-02-22 11:23:27 +01:00
Gael Guennebaud
f797ba0abe extend the bench timer to allow benchmarking of parallel code,
improvements are welcome
2010-02-22 11:04:35 +01:00
Gael Guennebaud
801440c519 fix BTL's eigen interface
(transplanted from 437f40acc1
)
2010-02-22 09:32:16 +01:00
Gael Guennebaud
eb905500b6 significant speedup in the matrix-matrix products 2010-02-23 13:06:49 +01:00
Gael Guennebaud
d579d4cc37 oops 2010-02-22 17:57:15 +01:00
Hauke Heibel
6730fd9f3f Port BenchTimer fix. 2010-02-22 11:42:58 +01:00
Gael Guennebaud
4ba25a8d5c merge 2010-02-22 11:30:36 +01:00
Gael Guennebaud
aaaf855a88 add a small benchmark to quickly bench/compare SMP support 2010-02-22 11:09:57 +01:00
Gael Guennebaud
437f40acc1 fix BTL's eigen interface 2010-02-22 09:32:16 +01:00
Mark Borgerding
f200c84d9f merge 2010-02-16 21:41:04 -05:00
Mark Borgerding
7a6cb2a39c added benchmark for unscaled and half-spectrum FFTs 2010-01-21 21:09:26 -05:00
Gael Guennebaud
905050b239 extend sparse product benchmark with ublas 2010-02-09 15:55:36 +01:00
Gael Guennebaud
c3823dce72 extend benchmark for sparse products 2010-01-05 16:03:35 +01:00
Benoit Jacob
39ac57fa6d Big renaming:
start ---> head
  end   ---> tail
Much frustration with sed syntax. Need to learn perl some day.
2010-01-04 21:24:43 -05:00
Benoit Jacob
25f8adfa6c * Fix bug #79: ei_alignmentOffset was assuming that ptr is multiple of
sizeof(Scalar), and that assumption breaks with double on linux x86-32.
* Rename ei_alignmentOffset to ei_first_aligned
* Rewrite its documentation and part of its body
* The variant taking a MatrixBase doesn't need a separate size argument.
2010-01-02 12:38:16 -05:00
Gael Guennebaud
36969cc2a5 add a slerp benchmark (for accuracy and speed)) 2009-12-04 15:02:38 +01:00
Hauke Heibel
1fc5fdea25 Added missing typedef (will I ever learn it!?)
Removed unsupported directories that do not provide CMakeList.txt (CMake 2.8 warning).
The BenchTimer is now also working on Cygwin.
2009-12-01 09:20:05 +01:00
Benoit Jacob
92749eed11 * merge
* remove a ctor in QuaternionBase as it gives a strange error with GCC 4.4.2.
2009-11-09 09:08:03 -05:00
Gael Guennebaud
6647a58847 update product bench 2009-11-06 11:33:18 +01:00
Mark Borgerding
0fa68b9e50 switched to BenchUtil.h 2009-10-30 19:46:45 -04:00
Benoit Jacob
a2268ca6b3 properly implement BenchTimer on POSIX
(may require a platform check for the clock name on non-linux platforms)
2009-10-29 15:47:56 -04:00
Benoit Jacob
e8dd552257 sync with mainline 2009-10-28 19:06:45 -04:00
Benoit Jacob
2840ac7e94 big huge changes, so i dont remember everything.
* renaming, e.g. LU ---> FullPivLU
* split tests framework: more robust, e.g. dont generate empty tests if a number is skipped
* make all remaining tests use that splitting, as needed.
* Fix 4x4 inversion (see stable branch)
* Transform::inverse() and geo_transform test : adapt to new inverse() API, it was also trying to instantiate inverse() for 3x4 matrices.
* CMakeLists: more robust regexp to parse the version number
* misc fixes in unit tests
2009-10-28 18:19:29 -04:00
Mark Borgerding
0167f5ef43 added inline to many functions 2009-10-22 23:06:19 -04:00
Mark Borgerding
902b6dcd6c added Eigen::FFT and
Eigen::Complex
2009-10-20 21:33:48 -04:00
Hauke Heibel
5e3e6ff71a Added Windows support to the BenchTimer. 2009-10-20 22:08:13 +02:00
Mark Borgerding
d9b418bf12 merged eigen2_for_fft into eigen2 mainline 2009-10-20 15:18:01 -04:00
Gael Guennebaud
8f3e33581e extend the sparse matrix assembly benchmark 2009-10-07 14:25:53 +02:00
Gael Guennebaud
0b60027f3c implement __gnuc_forget_about_setZero_its_over_now 2009-09-18 15:36:05 +02:00
Gael Guennebaud
d2becb9612 add a "rot" benchmark in BTL 2009-08-15 10:19:16 +02:00
Gael Guennebaud
c2a92e92a6 add ger and lu with partial pivoting in BTL 2009-08-04 11:30:33 +02:00
Gael Guennebaud
3cf5bb31f6 * Bye bye MultiplierBase, extend a bit AnyMatrixBase to allow =, +=, and -=
* This probably makes ReturnByValue needless
2009-08-03 16:05:15 +02:00
Gael Guennebaud
54804eb626 synch with main branch 2009-07-28 17:35:07 +02:00
Gael Guennebaud
de8b795895 compilation fixes in BTL 2009-07-28 17:10:34 +02:00
Gael Guennebaud
32b08ac971 re-implement stableNorm using a homemade blocky and
vectorization friendly algorithm (slow if no vectorization)
2009-07-17 16:22:39 +02:00
Gael Guennebaud
15ed32dd6e add other stable norm impl. in the benchmark 2009-07-16 16:21:26 +02:00
Gael Guennebaud
525da6a464 bugfix in blueNorm 2009-07-16 14:20:36 +02:00
Gael Guennebaud
65fc70b750 add a benchmark for the different norms 2009-07-16 11:33:56 +02:00
Gael Guennebaud
c49d1fd2b5 add a partial LU bench in BTL 2009-06-04 18:16:54 +02:00
Mark Borgerding
1c54340174 more work on ei_fftw_impl 2009-05-31 15:44:57 -04:00
Mark Borgerding
09b4733255 added real-optimized inverse FFT (NFFT must be multiple of 4) 2009-05-25 23:52:21 -04:00
Mark Borgerding
210092d16c changed name from simple_fft_traits to ei_kissfft_impl 2009-05-25 20:35:24 -04:00
Mark Borgerding
326ea77390 added FFT inverse complex-to-scalar interface (not yet optimized) 2009-05-23 22:50:07 -04:00
Mark Borgerding
9c0fcd0f62 started real optimization, added benchmark for FFT 2009-05-23 10:09:48 -04:00
Benoit Jacob
6347b1db5b remove sentence "Eigen itself is part of the KDE project."
it never made very precise sense. but now does it still make any?
2009-05-22 20:25:33 +02:00
Gael Guennebaud
caa1ef7515 various BTL updates (disable Cholesky for MTL, add new plot settings,
etc)
2009-03-09 23:28:46 +00:00
Gael Guennebaud
bd8107c90c forgot to include a file in previous commit 2009-03-09 14:18:29 +00:00
Gael Guennebaud
8a424efb11 add an option to bench eigen without GCC's auto vec (might conflict with
Eigen's auto vec)
2009-03-09 14:16:05 +00:00
Gael Guennebaud
d710ccd41e BTL: add syr2 action 2009-03-05 08:15:32 +00:00
Gael Guennebaud
a72ff5abc1 BTL: - patch from Victor (add ACML support)
- fix overflow issues
2009-03-05 08:11:47 +00:00
Gael Guennebaud
45136ac3b6 various update of of BTL 2009-03-04 07:21:17 +00:00
Gael Guennebaud
7485aa6d57 add symv bench 2009-02-20 21:05:19 +00:00
Gael Guennebaud
19b035ee11 s/cholesky/llt in precompiled lib and BTL 2009-02-06 14:01:01 +00:00
Gael Guennebaud
cc90495e30 add bench_reverse, draft of a reverse vectorization for AltiVec, make
global Scaling function static
2009-02-06 13:28:55 +00:00
Gael Guennebaud
b0dd22cc72 update cholesky benchmark 2009-02-03 19:05:10 +00:00
Gael Guennebaud
dde729379a various updates in the (still messy) sparse benchmarks 2009-01-28 20:32:28 +00:00
Gael Guennebaud
f645d1f911 * complete the support of QVector via a QtAlignedMalloc header
* add a unit test for QVector which shows the issue with QVector::fill
2009-01-20 16:50:47 +00:00
Gael Guennebaud
0c7974dd4d bugfix in Map by Keir Mierle 2009-01-18 09:53:06 +00:00
Gael Guennebaud
22792c696f add ublas vector of vector in sparse setter bench 2009-01-17 16:24:49 +00:00
Gael Guennebaud
cc6c4d807b add a sparse setter bench 2009-01-17 14:05:01 +00:00
Gael Guennebaud
f5741d4277 add a sparse * dense_vector bench 2009-01-14 18:27:17 +00:00
James Richard Tyrer
28e15574df updating FindEigen2.cmake for proper search order 2009-01-11 16:18:59 +00:00
Benoit Jacob
1d52bd4cad the big memory changes. the most important changes are:
ei_aligned_malloc now really behaves like a malloc
 (untyped, doesn't call ctor)
ei_aligned_new is the typed variant calling ctor
EIGEN_MAKE_ALIGNED_OPERATOR_NEW now takes the class name as parameter
2009-01-08 15:20:21 +00:00
Benoit Jacob
be64619ab6 * require CMake 2.6.2 everywhere, Alexander Neundorf says it'd make it
easier to have a uniform requirement in kdesupport for when he makes
fixes.
* add eigen versioning macros
2009-01-04 16:19:12 +00:00
Benoit Jacob
15ca6659ac * the 4th template param of Matrix is now Options. One bit for storage
order, one bit for enabling/disabling auto-alignment. If you want to
disable, do:
Matrix<float,4,1,Matrix_DontAlign>
The Matrix_ prefix is the only way I can see to avoid
ambiguity/pollution. The old RowMajor, ColMajor constants are
deprecated, remain for now.
* this prompted several improvements in matrix_storage. ei_aligned_array
renamed to ei_matrix_array and moved there. The %16==0 tests are now
much more centralized in 1 place there.
* unalignedassert test: updated
* update FindEigen2.cmake from KDElibs
* determinant test: use VERIFY_IS_APPROX to fix false positives; add
testing of 1 big matrix
2009-01-04 15:26:32 +00:00
Benoit Jacob
164f410bb5 * make WithAlignedOperatorNew always align even when vectorization is disabled
* make ei_aligned_malloc and ei_aligned_free honor custom operator new and delete
2008-12-30 14:11:35 +00:00
Benoit Jacob
9e00d94543 * the Upper->UpperTriangular change
* finally get ei_add_test right
2008-12-20 13:36:12 +00:00
Gael Guennebaud
8679d895d3 various MSVC fixes in BTL 2008-12-19 15:31:47 +00:00
Gael Guennebaud
93f8d56789 improved MSVC support in cmake files (SSE) 2008-12-18 09:07:36 +00:00
Benoit Jacob
00f89a8f37 Update e-mail address 2008-11-24 13:40:43 +00:00
Gael Guennebaud
86ccd99d8d Several improvements in sparse module:
* add a LDL^T factorization with solver using code from T. Davis's LDL
  library (LPGL2.1+)
* various bug fixes in trianfular solver, matrix product, etc.
* improve cmake files for the supported libraries
* split the sparse unit test
* etc.
2008-11-05 13:47:55 +00:00
Gael Guennebaud
0c5a09d93f some cleaning and doc in ParametrizedLine and HyperPlane
Just a thought: what about ParamLine instead of the verbose ParametrizedLine ?
2008-10-25 00:08:52 +00:00
Gael Guennebaud
cf0f82ecbe sparse module:
- remove some useless stuff => let's focus on a single sparse matrix format
 - finalize the new RandomSetter
2008-10-21 13:35:04 +00:00
Gael Guennebaud
9e02e42ff6 add the bench file for the RandomSetter 2008-10-21 00:05:45 +00:00
Gael Guennebaud
3a231c2349 sparse module: add support for umfpack, the sparse direct LU
solver from suitesparse (as cholmod). It seems to be even faster
than SuperLU and it was much simpler to interface ! Well,
the factorization is faster, but for the solve part, SuperLU is
quite faster. On the other hand the solve part represents only a
fraction of the whole procedure. Moreover, I bench random matrices
that does not represents real cases, and I'm not sure at all
I use both libraries with their best settings !
2008-10-19 22:44:21 +00:00
Gael Guennebaud
76fe2e1b34 add/update some benchmark files used to test/compare sparse module features 2008-10-19 17:06:11 +00:00
Gael Guennebaud
765219aa51 Big API change in Cholesky module:
* rename Cholesky to LLT
 * rename CholeskyWithoutSquareRoot to LDLT
 * rename MatrixBase::cholesky() to llt()
 * rename MatrixBase::choleskyNoSqrt() to ldlt()
 * make {LLT,LDLT}::solve() API consistent with other modules

Note that we are going to keep a source compatibility untill the next beta release.
E.g., the "old" Cholesky* classes, etc are still available for some time.
To be clear, Eigen beta2 should be (hopefully) source compatible with beta1,
and so beta2 will contain all the deprecated API of beta1. Those features marked
as deprecated will be removed in beta3 (or in the final 2.0 if there is no beta 3 !).

Also includes various updated in sparse Cholesky.
2008-10-13 15:53:27 +00:00
Gael Guennebaud
68fbd6f531 typos in bench/ 2008-08-29 16:10:08 +00:00
Gael Guennebaud
3e526dcdbd BTL:added trisolve action file 2008-08-26 10:46:58 +00:00
Gael Guennebaud
7ce70e1437 various updates in BTL 2008-08-25 14:23:08 +00:00