|
Boost : |
From: Pierre Aubert (pierre.aubert_at_[hidden])
Date: 2001-03-28 04:56:38
lums_at_[hidden] writes:
> --- In boost_at_y..., boost_at_s... wrote:
>
> > >
> > > Yes and No. It also affects how algorithms are written and at
> some
> > > extent, their efficiency.
> > >
>
> >
> > actually one should provide both storage formats.
> > Art least I'm confronted with (dense, rather large) matrix
> > multiplications of the form A_i * B_i, where A_i always appear on
> > the left, and B_i appears on the right.
> > So using different storage layouts, I can increase performance
> > since no strides appear.
Using ATLAS or one of the cited sources below, you will increase
performances by a factor of 4 to 5 even on a pentiumII, this factor
increase on better processors of course.
>
> For dense time dense the storage layout of the original matrices is
> somewhat irrelevant for performance issues. By performing
> appropriate blocking and re-arranging for optimal layout within the
> working blocks, one can get optimal performance for any original
> layout. ATLAS, PhiPAC, optimized BLAS, and MTL all do this AFAIK.
> That is, yes, layout is important, but only in the working blocks.
> Any original storage format can be copied to a good orientation in
> the working blocks within the mat-mult algorithm.
-- Pierre F. Aubert pierre.aubert(at)echo.fr http://pierre(dot)aubert(dot)free(dot)fr pierre.aubert(at)free.fr
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk