FFTs with CUDA on the AIR-T with GNU Radio¶
GPUs are extremely well suited for processes that are highly parallel. The Fast Fourier Transform (FFT) is one of the most common techniques in signal processing and happens to be a highly parallel algorithm. Here you will learn how to leverage the embedded GPU built into the AIR-T to perform high-speed FFTs without the computational bottleneck of a CPU and without having to experience the long development cycle associated with writing VHDL code for FPGAs. By leveraging the GPU on the AIR-T, you get the best of both worlds: fast development time and high speed processing.
GR-Wavelearner contains a processing block that allows AIR-T users to leverage NVIDIA's extremely efficient cuFFT algorithm on the AIR-T, out of the box. Because the AIR-T is the only Software Defined Radio (SDR) with native GPU support, it may be leveraged to accelerate FFT processing capability with very little programming expertise. Here is the short, three step process.
Step 1: Update GR-Wavelearner¶
The first step is to make sure that the version of GR-Wavelearner installed on your AIR-T is up to date. Instruction for upgradingGR-Wavelearner may be found in this tutorial.
Step 2: Launch the Example Code¶
GNU Radio companion is located in the Launcher on theleft side of the desktop as shown in the figure below. Launch GNU Radio and choose File -> Open, and select the gpu_fft_demo.grc file located in
Once complete, your desktop will resemble the image below.
Now simply click the green Play button at the top of the GNU Radio application. That is it! You are now receiving live RF signal data from the AIR-T, executing a cuFFT process in GNU Radio, and displaying the real-time frequency spectrum.
Step 3: Tailoring to Your Application¶
While the example distributed with GR-Wavelearner will work out of the box, we do provide you with the capability to modify the FFT batch size, FFT sample size, and the ability to do an inverse FFT (additional features coming!). If you are an advanced GNU Radio user, we also provide the source code on our GitHub for you to customize to your needs.
Video Tutorial We have also recorded the full procedure in a video to help get started. Check it out below.