This tutorial will teach you how to integrate GPU processing using CUDA with GNU Radio on the AIR-T software defined radio. Once completed, you will be able to build a custom GPU processing block within GNU Radio and use it to process your own signals. The tutorial assumes some familiarity in programming in Python and writing GPU kernels using CUDA. Don't worry if you have never written a GNU Radio block before, this part is explained for you and you can start by modifying the code in the tutorial's GitHub repository to get a feel for how all the components fit together.
The below sections will walk you through how to create a very simple GNU Radio block in Python that executes on the GPU. This simple block will use the PyCUDA library to divide the input signal by two and send the result to the output. All computation within the block will be done on the GPU. It is meant to be a very simple framework to understand the process of developing signal processing code.
Note that this tutorial documents software APIs that may change over time. In all of the below examples, we will be working with GNURadio 3.7.9 (as released with Ubuntu 16.04 LTS) and developing blocks using Python 2.7.
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. In this blog post the Deepwave team walks you though 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.
You may not be aware, but a while back we pushed a new block to our open source GR-Wavelearner software: a processing block that allows customers 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.
We have just received our first production versions of the new AIR-T software defined radio enclosure and it is beautiful. If you already have and AIR-T, you can order a kit today to protect your SDR. If you are thinking about acquiring our GPU enabled SDR, make sure to talk with us about the enclosure.
The enclosure is expertly constructed from aluminum to produce a polished, elegant, and sleek metallic silver finish. It measures 192 x 182 x 79 mm (7.5 x 7.2 3.1 inches) and the power button illuminates blue when they system is on. All RF ports are brought to the front of the enclosure for ease of use and all computer peripherals connections are brought to the rear.