[patch] Fast convolution expression templates
Don McCoy
don at codesourcery.com
Thu Apr 12 17:27:51 UTC 2007
The attached patch adds expression templates to support these
single-line, multiple-row fast convolutions using unique weights for
each row ('weights_' is a matrix as well).
out = inv_fftm_(weights_ * for_fftm_(in)));
and
out = inv_fftm_(for_fftm_(in) * weights_));
Note: the weights must be transformed into the frequency space prior to
calling. If using the Cell/B.E. back end, this may be avoided by
calling the cbe::Fastconv object directly, but pre-transforming the
weights is preferred for the performance advantage it offers. This
differs from the 'vector of coefficients' case where the cost of the
single FFT required to do the transform is negligible due to the fact
that the kernel is able to store the transformed kernel and use it
multiple times (provided the instance of the Fastconv object does not
change).
New test cases and benchmark cases are provided as well.
Regards,
--
Don McCoy
don (at) CodeSourcery
(888) 776-0262 / (650) 331-3385, x712
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fcb.changes
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20070412/7e0367be/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: fcb.diff
URL: <http://sourcerytools.com/pipermail/vsipl++/attachments/20070412/7e0367be/attachment-0001.ksh>
More information about the vsipl++
mailing list