On 29/05/2013 15:32, Nasos Iliopoulos wrote:
That's true. So what we are looking at is breaking down the certain algorithms to a state that the vectorizer can penetrate the patterns. A triple loop won't be just vectorized but providing clear functional paths is working. I don't expect that it will work generally for the current expression templates back-end that's why the we encouraged the student to keep his proposal within the bounds of certain functions.
Good luck with that.
Additionally just injecting explicit vectorization instructions is not gonna work; you need to alter your computational patterns that in the end come very close to what the compiler would optimize anyway.
That's exactly what boost simd algorithms wraps. There's no shame beign close to the machine, the problem is being close while using vendor specific intrinsic.
We are also worried with polluting the code with vectorization instructions that will make things quite unmanageable in the future. I also think boost libraries should stay closer to what standard C++ specifies and this fixation of mine may be hindering my willingness to support non-standard items.
then abandon vectorization now, it aint gonna fly.