Re: [eigen] Nesting by reference of by value ?

[ Thread Index | Date Index | More Archives ]

2009/11/18 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> ok, actually I forgot the rules #1 when benchmarking gcc, never put your
> critical code in the main function, but put it in a separated, not inlined,
> function. So now, for the same computation, gcc 4.3 and 4.4 generate good
> code in both cases. gcc 4.2 still generates the same poor code as above.

I didn't know about that rule, interesting! In any case, if you just
want to examine ASM, you don't need a main function at all, you can
just do "g++ -c" so you don't have to worry about inlining.


> Then I tried the same computation but with VectorXf instead of Vector4f.
> Then both gcc 4.2 and 4.3 generates a better code for the inner vectorized
> loop when nesting by value. I observed a significant speedup here. However,
> gcc 4.4 generates the same code in both cases.
> Then I added some scalar multiple and sub matrix operations, and well, there
> is no real winner, especially with gcc 4.4 which consistently generates
> similar code. So finally, for me this change is safe regarding the
> performances.
> Now it would be interesting to bench MSVC as well since it seems this
> compiler has more difficulties to manage Eigen's code, but this is something
> I cannot do.
> gael.

Mail converted by MHonArc 2.6.19+