
DE wrote:
i got somewhat unexpected results
Everybody I show that does.
1. a small mixin to vector operations disadvantage is ~10% - predictable (here by advantage i mean ratio (old_time - nrc_time)/old_time since i assume that nrc would outperform old (non-nrc) code (should be nrc_time<old_time, then ration is >0) if the ratio is negative then it is actually a disadvantage value of ratio is in % for convenience)
Hmm for 1D vector, no need for NRC as you have 1D array or am I missing smthg
2. intensive matrix operations (+-* etc.) advantage is roughly zero - predictable
Normal
3. matrix multiplication advantage is roughly zero for best implementation - predictable (see mul.png)
Normal
4. matrix inversion (inplace, full pivoting) _advantage_ is ~15% - totally unpredictable (see inv.png)
actually it's difficult for me to explain the reason since it implements full pivoting maybe acceleration of the search process defeats the slowness of reducing cycles or maybe i made a mistake
You don't trash the cache with index computation. That's the only thing I can see usign cachegrind
however i can explain cases 1-3 disadvantages by the involvement of additional allocation/deallocation and setup process i'm still wondering about the latter case
You're benching alloc/desalloc too ... ??? It makes little sense.
however for you, joel, there is nothing to bother since your point is perfectly motivated
Yup. -- ___________________________________________ Joel Falcou - Assistant Professor PARALL Team - LRI - Universite Paris Sud XI Tel : (+33)1 69 15 66 35