GPUs are increasingly being used in applications outside of graphics and have been popular for some time in both high performance computing (HPC) and machine learning. Thanks to technologies such as the CUDA parallel computing platform from NVIDIA and the Numba high performance Python compiler, the barriers to using GPUs are being lowered all the time, enabling their blistering performance to be harnessed in ever more compute-intensive applications.
cuSignal is a port of the signal processing modules in the Python SciPy library, which is developed by NVIDIA and builds on top of Numba and CUDA, along with CuPy. It comes provided with a number of examples, such as polyphase resampling, WFM demodulation, and even using machine learning to ‘predict’ the number of carriers in a signal.
Just weeks after cuSignal was first released, Luigi Cruz developed a demo using a LimeSDR with an NVIDIA GTX 1070 Ti, where he was able to capture a 20.6MHz stream in real-time and use the GPU to demodulate 18 broadcast radio stations in parallel.
Only a month later and Luigi has published a slick AM/FM radio app called CyberRadio, powered by a radio core which provides accelerated DSP and tuning, plus a collection of scripts, including one which is capable of demodulating 35+ FM stations at once.
Also notable is how cuSignal and applications that build upon it, such as CyberRadio, can equally be run on the low cost embedded Jetson Nano platform, in addition to desktop and server systems equipped with more powerful GPUs such as the NVIDIA GTX series.