GE AXIS Middleware for Mixed Architecture Signal Processing
Hi, I’m David Tetley, an Engineering manager with GE Intelligent Platforms.
Our AXIS software provides libraries for signal processing and inter-processor communications along with graphical tools to facilitate system visualization and rapid prototyping. Today, I am going to show you how our AXIS libraries and tools can be used to develop a signal processing application that can utilize both CPUs and GPUs in a system.
The system consists of two 3U VPX Intel processing boards and a NVIDIA GPU.
The application is a straight forward one, which we have built using the AXISView tools. We use ApplicationView to describe the application tasks and dataflow.
First, we have a task that acts as a signal generator.
That signal is then fed down two parallel processing paths.
Two signal processing tasks then operate on this data in parallel.
Each signal processing task performs bandpass filtering, followed by an FFT and sends the results to an output task for display.
The processing tasks use the same C code and utilize the industry standard Vector Signal and Image Processing API known as VSIPL.
We have mapped the application so one signal processing task is run on first board, and the other on the second board.
We have linked the application on one board with our CPU optimized VSIPL library, and the other with our GPU optimized library.
The RuntimeView tool shows the task distribution and also highlights the transport mechanisms used between the tasks.
Tasks can communicate via AXISFlow or MPI and the dataflow visualized.
Now if we take a look at the signal generation GUI you can see we are generating two sine waves and some noise.
We are then automatically sweeping the frequency of these signals.
The output GUI displays the processed signals on a log scale.
The top graph is showing the CPU processed signal and the one below is for the GPU.
Note that the different VSIPL libraries are producing numerically identical results despite the fact the computation is happening on different processing paradigms.
If you look at performance however, you will see the CPU performance, measured in GFLOPs, is significantly higher as the Intel CPU is more efficient for smaller data sizes.
Increasing the data size to 16K shows that the GPU performance is now better.
Beyond that, the GPU performance becomes significantly higher than the CPU.
This simple demo shows that using the AXIS libraries and tools, and utilizing VSIPL, you can easily create applications to take advantage of heterogeneous processing architectures.
Demonstration applications, including this one, are available as part of our AXISPro package and help developers quickly evaluate their system performance.