Re: [eigen] Performance question

[ Thread Index | Date Index | More Archives ]

Hello, and thanks for your answer.

On Monday 23 February 2009 19:40:48 Benoit Jacob wrote:
> First, not all operations are vectorized. Some operations can't be
> efficiently vectorized. That includes small determinants, and also
> much of the ParametrizedLine and Hyperplane stuff. So it sounds like
> there's a possibility that your program is just spending most of its
> time in operations that can't be vectorized.

That's quite possible...

> Second, you are seeing a 50% speed difference between floats and
> doubles, even without vectorization. That's very unusual.

To be honest, on the contrary, it's a behaviour I noticed quite
often in "real world" applications involving huge sets of datas,
moreover non-well structured datas.

> Normally,
> the speed difference is much smaller or inexistent, on both 32bit and
> 64bit systems. So it sounds like your app is memory-bound, so any
> vectorization won't help.

Can you explain what you mean by "memory-bound"? or give me a reference,
if you don't want to give a (probably long) lesson.

> Typically, try to reorder the way you treat
> data, so you minimize memory accesses and maximize how many
> computations you do at once on a given set of data. If you really need
> to load a large number of vectors at once, then try at least to be
> cache-friendly: try to find a way to keep that number of vectors low
> enough to fit in CPU caches.

Ok... I'll check on this then. I have precisely zero experience in
this, any good reference I could read to learn on this matter?

Thanks again.


(o< | Yves Bailly                          | -o) 
//\ | Linux Dijon  : | //\ 
\_/ |                                      | \_/`

Mail converted by MHonArc 2.6.19+