Hello, Bringing explicit SIMD into uBLAS is not in the near future plans because as you correctly mention this is far from trivial. This has been set as a general goal but I personally disagree that we should be considering it at this point. There is a GSOC project though that seeks to implement auto-vectorization friendly BLAS 1,2 and 3 functions, so that uBLAS can turn into a speedy BLAS drop-in replacement library. To that end I also like the idea uBLAS being called by C and even FORTRAN programs. We are also seeking ways of making the uBLAS expression templates more transparent to the compiler so that auto-vectorization can kick in - which it does in certain cases and provides a very nice performance boost on par with explicitly vectorized libraries. As a matter of fact I am surprised by the progress of the compilers auto-vectorization facilities the last few years, that make me -doubt- the need for explicit vectorization any more. The GSOC project will make it clear for us. An added benefit on relying on compiler is that future vector instructions come for free. A disadvantage is of course the non-guarantee that auto-vectorization will work but I find this rarely the case. Best, - Nasos On 05/29/2013 05:34 AM, Mathias Gaunard wrote:
On 29/05/13 06:13, Aditya Avinash wrote:
Hi, i have developed vector addition algorithm which exploits the hardware parallelism (SSE implementation).
That's something trivial to do, and unfortunately even that trivial code is broken (it's written for a generic T but clearly does not work for any T beside float). It still has nothing to do with uBLAS.
Bringing SIMD to uBLAS could be fairly difficult. Is this part of the GSoC projects? Who's in charge of this? I'd like to know what the plan is: optimize very specific operations with SIMD or try to provide a framework to use SIMD in expression templates?
The former is better adressed by simply binding BLAS, the latter is certainly not as easy as it sounds.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost