Boost logo

Boost :

Subject: Re: [boost] SIMD implementation of uBLAS
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2013-05-29 07:05:05


On 29/05/13 12:46, Aditya Avinash wrote:
> On Wed, May 29, 2013 at 4:10 PM, Mathias Gaunard <
> mathias.gaunard_at_[hidden]> wrote:
>>
>>
>> Ok, in that case, you need to first study how uBlas works.
>>
>> For example if you write something along the lines of
>>
>> a = trans(b + c) * d;
>>
>> AFAIK what uBlas does is something like
>>
>> for(size_t i=0; i!=sz.height; ++i)
>> for(size_t j=0; j!=sz.width; ++j)
>> a[i][j] = (b[j][i] + c[j][i]) * d[i][j];
>>
>> What you need to do is change the loop structure and modify the evaluation
>> of all nodes involved to support SIMD.
>>
>> Of course trans is going to be a problem.
>> Thankfully uBlas doesn't have that many functions, so trans and herm are
>> the only functions that exhibit that issue.
>
>
> Should i write SIMD code for the algorithm. Or, as there is no such
> function in uBLAS, do you want me to develop CPU code (function)??

There is no algorithm here. It's just the evaluation of a uBlas matrix
expression template.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk