|
Boost : |
From: Matthew Hurd (matt_at_[hidden])
Date: 2002-06-27 17:32:07
> On Thursday 27 June 2002 17:47, Martin Weiser wrote:
>
> > Although the abstraction penalty is mostly insignificant compared to
> > equivalent handwritten code, there remains a huge performance gap to
> > optimized numerical kernels. I've done a preliminary comparison of dgemm
> > performance with different matrix sizes N (see
> > http://www.zib.de/weiser/ublas_review.gif),
What about some run time, or offline parameter setting, ala FFTW. Process
could set platform numbers, such as tile size, or identify parameters at
run-time via some automatic singleton or precondition routine. Also I think
Blitz struggled somewhat to get good speed for larger sizes without KAI,
regardless.
Blitz used stencils (
http://www.oonumerics.org/blitz/benchmarks/acou3d.html ) to achieve improved
L1 cache hits instead of tiling for some benchmarks. It might be worth
having a todo list, such as jamming, unrolling, blocking, stencil support...
whatever you're not doing now. Whatever jamming is, I just saw it on the
Blitz site...
Also, to make this thing a defacto standard I think vendor BLAs should be
supportable, rather than necessarily supported. After all, the ANtSI people
will only be interested in the interface and vendors will be interested in
plugging in their hard-core hand tune BLAs.
But I think any wholesale changes probably don't need to be made for
adoption into Boost. I feel it should just be adopted because it works and
is a great start so additional algorithms and further modifications can keep
rolling out. Personally I would like to see some clarification w.r.t. to
MTL as this is what I already use, apart from some commercial FORTRAN
libraries that I'm unlikely to be able to throw away for a long long time.
But the key will be activity via wide adoption, promotion via articles in
popular press and in the numerical community, and the boost branding should
help tons. I keep chopping and changing my numerical libraries because I
always want something a little more expressive, faster or because the
library hasn't been touched or had activity around it for a couple of
years... I would like to stop. I just want to ride the one train, changing
at the stations is annoying even if a change of scenery and a stretch of the
legs is refreshing.
I can't vote for it because I haven't reviewed it, but I hope it is adopted.
Just $0.0002 (Aussie Peso ;-)) ,
matt.
PS: I have just followed this thread and read the uBLA doco, I have not
executed the code, just thought I might try to contribute something from a
distance whilst getting the kids ready for school, so please ignore this if
you wish; it is probably just motherhood and apple pie.
PPS: My life as a numerical user typically consists of finding an algorithm
I need in internal code, IMSL, TOMS, numerical recipes, some on-line library
via gams or statlib, (often FORTRAN) then noting the array/matrix/vector
format it requires and massaging accordingly. So the key is often (>75% of
the time?) not the performance but the flexibility of representation and
ease of conversion.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk