|
Boost : |
From: Martin Weiser (weiser_at_[hidden])
Date: 2002-06-28 06:48:01
On Freitag, 28. Juni 2002 00:24, Joerg Walter wrote:
> ----- Original Message -----
> From: "Martin Weiser" <weiser_at_[hidden]>
> > 3. Large matrices (N=40,..,250). The operands don't fit any longer
> > into the 1st level cache. As expected, the lower memory bandwidth of
> > the 2nd level cache decreases the performance of both uBLAS and the
> > naive implementation. Due to blocked algorithms the Sun BLAS
> > maintains its high performance and wins by a factor of about 7. The
> > great surprise is, that the naive implementation suffers less than
> > uBLAS and wins by a factor of about 1.7. Currently I've no
> > explanation for that.
>
> We're switching from indexing to iterating access at N = 32. You could
> play with NUMERICS_ITERATOR_THRESHOLD to see the impact on your
> platform.
Thanks for the hint. GCC/UltraSparc seems to prefer indexing. The
performance drop attributed to the L1->L2 transition seems to be caused
by the indexing to iteration switch. Incidentally it happened at the same
matrix size where the L1->L2 transition must in fact be placed.
For the threshold at 1024, the new graph is available at
http://www.zib.de/weiser/ublas_review-1024.gif .
As a surprising side effect, the change seems to affect (improve) the
performance for small matrices (N<<32), too.
Yours,
Martin
-- Dr. Martin Weiser Zuse Institute Berlin weiser_at_[hidden] Scientific Computing http://www.zib.de/weiser Numerical Analysis and Modelling
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk