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

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


On 3/2/10, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> 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
> case).

I see -- good to keep in mind for future thoughts.

Although the aforementioned slowdown occurs on single-res floats (e.g.
not doubles).

> Benoit
>
> 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
>>> http://eigen.tuxfamily.org/index.php?title=Benchmark
>>> 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+ http://listengine.tuxfamily.org/