[hpsdr] Announcement of a CudaSharpDSP package for HPSDR: doing parallel DSP processing on your GPU

Hermann hvh.net at gmail.com
Mon May 17 01:07:40 PDT 2010


Dear All,

while waiting for some exciting news from Dayton, I continued
implementing SharpDSP on my graphics device with Cuda. Here are some
news about that:

One of my major concerns was the implementation of AGC and the
LMS-based noise filter. This has been solved. There is still some work
to do on AGC (to slow), but the noise filter is doing quite well now.

For those who are interested in the filter details:
The serial implementation of the leaky normalized LMS noise filter is
indeed very tricky, so I needed some time to understand what really
happens there. Updating the filter weigths for every sample is not
suitable for a parallel implementation on the GPU. So I learned about
the Block-LMS adaptive filter algorithm and tried to implement this.
There the filter weights are updated only blockwise (e.g. after 128
samples), which still is a recursion, but one which can be handled on
the GPU more effectively. To my surprise, this BLMS implementation
works quite good (only after some two or three weeks of bug tracking
on the GPU, and a major misunderstanding of usage of the different
memories on the GPU - I learned it the hard way..)
Next step is to implement FBLMS (Fast BLMS), which does the filtering
and weights updating in frequency space.


I still need to do some code cleaning and comment writing. I also want
to step back from WinUSB to libusb0 (the 64-Bit version of which is
now perfectly working, thanks to George, K9TRV!). Done that, I will be
able to release in short a first version of the "little HPSDR server"
using CudaSharpDSP, for those of you willing to do some experiments.

Vy 73,
Hermann

DL3HVH

 1274083660.0


More information about the Hpsdr mailing list