|
Boost : |
From: Malte Clasen (news_at_[hidden])
Date: 2007-07-19 15:17:13
iain.denniston_at_[hidden] wrote:
> I played around with a SIMD abstraction layer for a while - the goal being
> to create a thin wrapper around SIMD code to allow simple compile time
> switches between different archtechtures SIMD implementations (particularly
> x86 vs. PowerPC vs. Software - due to Xbox 360 and PC). I have the initial
> code lying around somewhere if anyone is interested in such a library - it
> certianly may smooth over some of the headaches of creating such maths
> libraries (although the performance characteristics may not be ideal).
I'm not sure whether this would be the right level for architecture
specific optimizations. Having a layer that provides access to SIMD
instructions might smooth out issues between SSE and AltiVec, but
programming Cell or perhaps CUDA is afaik a bit more involved. I would
start with larger operations such as FFT, SVD or "multiply a set of
vectors with matrix A". Given a portable C++-only implementation, you
could then provide architecture specific implementations of these
building blocks.
Malte
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk