[vsipl++] [patch] Fast convolution expression templates

Don McCoy don at codesourcery.com
Mon Apr 16 20:34:03 UTC 2007


Committed as attached, with notes below...


Jules Bergmann wrote:
> The general rule of thumb is we only want a special evaluator to apply 
> if:
>
> 1) the blocks all support direct access,
>
>    i.e. check at compile time that:
>
>     Ext_data_cost<BlockT>::value == 0
>
> 2) the data is in the format we require (usually lowest order dimension
>    unit stride), i.e. check at run time that:
>
>     Ext_data<BlockT> ext(block);
>     ...
>     ext.stride(lowest_order_dim) == 1;
>
> Otherwise, it will be necessary to allocate a temporary and copy data, 
> which is usually expensive enough to outweight using the evaluator.
>
These checks have been added all around.


>>> We should definitely check FFT scaling (see ifdef'd out check in
>>> opt/expr/eval_fastconv).  IIRC that check was expensive for some
>>> reason, although I believe it shouldn't be.  If it proves to be
>>> expensive here, we can leave it out for the time being.
>>>
>> So do we need those checks in *all* evaluators then?
>
This did turn out to be expensive, so I did leave it out for the time 
being.  I guess this needs looking into.  Any idea what makes it so? 


> Yes, we should add the check to the FFTM/vmmul/FFTM Cbe evaluator.
>
>   And on that note,
>> do we want to add evaluators for the Fc_expr_tag as well (so it will 
>> work for non Cell/B.E. platforms)?
>
> Yes!  excellent that would be good!
>
>
I'll make a note to do this real quick.


-- 
Don McCoy
don (at) CodeSourcery
(888) 776-0262 / (650) 331-3385, x712

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fcb2.diff
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20070416/4308245d/attachment.ksh>


More information about the vsipl++ mailing list