Re: [eigen] on extern template instanciation

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



ok, after some experiments I found the issue with gcc and and extern template. The pb is that I was compiling the code with -O3 and so gcc instantiate all members to check for automatic inlining. So compiling with -O2  makes extern templates working as expected: 6sec versus  16sec....

However, the question still remains as we (at least me :) ) would like to be able to compile the code with -O3 while keep the benefits of having external instantiations...
I've already tried the no_inline attribute: does not do the trick. So maybe with some inllining related options of gcc.... ????

cheers,
Gael.


On Fri, Jun 13, 2008 at 6:31 PM, Benoît Jacob <jacob@xxxxxxxxxxxxxxx> wrote:
On Friday 13 June 2008 18:27:29 Gael Guennebaud wrote:
> actually GCC implements extern template for a while, gcc3 supports it, like
> MSVC. But that's good to know it's going to be a real standard :)

cool, great that it works on gcc3, that means it'd even be ok for KDE.

>
> hm... with the explicit instanciation of all classes of the QR modules and
> 8 matrix types the compilation time of the lib is much much higher: ~1min
> for ~400KB (release mode).

ah ok so I was comparing apples and oranges.

> That's not huge at all if we compare to other
> linear algebra package (e.g., Intel's one, but this is true for many
> others) which requires a couple of MB only for the matrix-matrix products
> (abusive unrolling).

Anyway, the compilation time of the library (if any) is not a problem, since
it only annoys us and people making eigen packages. What we don't want is to
piss off our actual users :)

Benoit



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/