Re: [eigen]

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


2009/10/11 dilas dilas <espiritusantu@xxxxxxx>:
> Hello. I think Eigen to be really good library, but I've found some problem, which I can't to live with. :)
> I employ x86 + SSE2 platform and Visual C++
> When I use matrices with fixed sizes, which are not multiple of the packet size Eigen doesn't use vector instructions.
> I tried to enforce it by using AutoAlign option, but it didn't worked.
> for example for:
>
> Matrix<float,5,1,AutoAlign | ColMajor> a;
> Matrix<float,5,1,AutoAlign | ColMajor> b;
> Matrix<float,5,1,AutoAlign | ColMajor> c = a.cwise()  * b;
>
> Visual C++ generates five mulss-instructions, but I want one mulps and one mulss.
>
> So I've decided to round up first dimention to multiple of 4. And it worked. But in some cases, for example when we multiply 3x3 Matrix by 3x1 one this doesn't work, and we must round up second dimention either, but it's not on.
>
> So I have two questions:
> 1. Do developers intend to reach behavior, which I've declared?
> 2. How can I myself change sources to reach this behavior?

It's certainly possible, it is on the TODO, IIRC. It must be fairly
non trivial, that's why it hasn't been done so far.
>
>
>
>
>
>
>
>



-- 
Rohit Garg

http://rpg-314.blogspot.com/

Senior Undergraduate
Department of Physics
Indian Institute of Technology
Bombay



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