|Re: [eigen] Performance question|
[ Thread Index |
| More lists.tuxfamily.org/eigen 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.
> 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?
(o< | Yves Bailly | -o)
//\ | Linux Dijon : http://www.coagul.org | //\
\_/ | | \_/`