![]() |
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, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk