
Paul Baxter wrote:
I'm very interested in the SIMD part. What functions of the math toolkit would be targeted? Also, will this project create facilities that I can use SIMD hardware with my own calculations? For example, I would very much like to do ray/box intersection tests by using SSE. Would that be possible after the SOC?
This project might be of interest to you, in case you didn't know about it:
Glen Low at PixelGlow was very positive and proactive with macstl (smart cookie!) but sadly didn't get as much interest and commercial support as he needed to put bread on the table.
This is tricky isn't it: these things are good academic projects, but are very much "niche" applications :-( The other issue is portability: although several platforms support vectorised float operations (including NVidia graphics cards if you want to gain some extra cores!), only Intel supports vectorised double operations as far as I know, and it's these latter that I'm interested in :-(
I found MacSTL reasonably good but not that well supported on x86 (much better on Altivec). Glen was a little prone to hyperbole in some of his speedup claims. I also found that the Intel compiler was reasonably good at optimising C (gulp) code to achieve the same sorts of speeds (particularly relevant for complex numbers which are hopelessly SIMD optimised in C++ by Intel).
Perhaps also take a look at www.codesourcery.com and their VSIPL++ option. It uses expression templates to coalesce sequences of ops and makes use of SIMD operations and also utilises underlying vector libs if available but as with macstl, has a more restrictive license.
Unfortunately BLAS/FFT style operations, aren't the ones we really need in this project (think vectorised Horner evaluations and the like) :-( Cheers, John.