|Re: [eigen] new eigen2 release (2.0.12) runs slower than 2.0.0 ?|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] new eigen2 release (2.0.12) runs slower than 2.0.0 ?
- From: leon zadorin <leonleon77@xxxxxxxxx>
- Date: Tue, 2 Mar 2010 18:53:22 +1100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type; bh=qBMGA4ALIeA19n7V1MT7t/5H+eS1O8v40YPhr6oNSYY=; b=OxCtpd63EmftGbMB3Omtgew83cG8nRRP2PK/z9U8M32NmUhHXNlxZTlGj1fXEcIqVG 373cklsAiCfA1uEdB9iRKfgX/m60gI7t+zVPQM4NdWSKlK1RRRay14vl6grHuV9sO0cd pvKvN3HB8M1+tGun4Dkhyvx5yMfMHttgli/oE=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=eq3Li6eTa/h5N/PWccaLHIkbEYgA0gAjQsbeF2PCXCNxoluLLf1oho0cdMj1DjQb6j jeUMojLr8iCNUZHVlz38UYMgOzs61UN/2sk3WjiOlRGMgRu1uAoQ/Q9ZB59GexMUGCx8 C5En4/ezg9jz73SZz3JkUtEe3+udcW9phxkQI=
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
I see -- good to keep in mind for future thoughts.
Although the aforementioned slowdown occurs on single-res floats (e.g.
> 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?
>> 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
>>> Kind regards