Re: [eigen] new eigen2 release (2.0.12) runs slower than 2.0.0 ?

[ Thread Index | Date Index | More Archives ]

There is one area where we have consciously introduced a performance
regression between 2.0.0 and 2.0.12: inversion of 4x4 matrices with
numeric types different from float. (We have changed the algorithm
used to be safer, and have only added a SSE version in the float


2010/3/1 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> Hi Leon,
> So far, we haven't been doing any serious testing for performance
> regressions. It's just that the commits that we allow into the 2.0
> branch are, in principle, very safe.
> The online benchmarks refer to the development branch (though at that
> time it wasn't much different from 2.0.0).
> What you report sounds very interesting but we indeed need more
> details in order to do anything about it. Ideally, if you could
> produce a self-contained, compilable benchmark...
> Here are some ideas.
> First let's check for potentially stupid compiler optimizations:
>  - what happens if you remove -ffast-math?
>  - what happens if you replace -O3 by -O2 ?
> Is it 32bit or 64bit code?
> If you disable vectorization (EIGEN_DONT_VECTORIZE) on both sides, how
> does performance compare?
> Benoit
> 2010/3/1 leon zadorin <leonleon77@xxxxxxxxx>:
>> Hi all -- just a generic question w.r.t. benchmarking being done to
>> compare older vs newer eigen2 releases to see if, inadvertently, there
>> are performance-related regressions...
>> I have noticed that v 2.0.12 appears to have slowed down in comparison
>> to 2.0.0_1 ...
>> Currently, it's too time-consuming for me to unwind the code for a
>> particular bottleneck -- I have simply noticed that a complex function
>> (log-likelihood calculations made up from large dynamic matricies of
>> mainly column-major layout with some exp, cwise, select, etc. calls)
>> are taking ~3.4 seconds to calculate with 2.0.12 whilst taking ~3.1
>> seconds with the 2.0.0 (exactly same app's code and compilation
>> options (e.g. -DNDEBUG -O3 -ffast-math -march=native on E6550 core2
>> duo cpu -- implying SSE3 et al, eigen_vectorization macros etc etc
>> etc)... running with gcc 4.4 (threading model single) on FreeBSD with
>> drawf eh.
>> My current question would be if the new versions/releases of Eigen do
>> undergo the comparative (to earlier versions) performance-related
>> benchmarks tests to find any performance regressions et al?
>> The benchmarks page
>> appears to list march, 2009 (oldish) as the date for benchmarks?
>> ... and it only compares eigen2 vs other libs... are there any
>> already-done marks w.r.t. eigen vs eigen of different versions out
>> there?
>> Kind regards
>> Leon.

Mail converted by MHonArc 2.6.19+