Eric Blossom wrote:
A bigger issue however, is that setting/adjusting the taps on the SIMD
versions is fairly expensive. If your filter is always adapting,
you'll probably want to reimplement it in terms of the generic FIR
code, bypassing the SIMD speedups.
I realize now that changing the FIR taps each output sample will pretty
much wipe out the performance gains of the SIMD optimizations, at which
point it doesn't make sense to go with any of the gr_fir_xxx functions.
Per our offline discussion, I'm going to implement my own FIR
calculation using regular multiplies and hope the compiler can optimize
things somewhat. I'll be able to combine the FIR calculation, the error
calculation and weight updates in a nested loop, while they're all still
(hopefully) hanging out in registers.
It does mean that I can't do a generic "adaptive_fir" class that can be
subclassed and specialized into classes like cma_equalizer,
noise_reduction, etc. Instead each one will end up being unique. I
guess that's the price you pay for speed.
-Johnathan, AE6HO
_______________________________________________
Discuss-gnuradio mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio