Performing real-time digital signal processing (DSP) routines such as Fast Fourier Transform (FFT), Signal Averaging, Finite Impulse Response (FIR) Filtering, Digital Down Conversion (DDC) and more have traditionally required the use of dedicated DSP processors, Field Programmable Gate Arrays (FPGAs), or Application Specific Integrated Circuits (ASICs).
The size of DSP processors, FPGAs, and ASICs are often resource limited and require significant development with specialized engineering skills in particular languages and platform tools that are often native and proprietary to the targeted device. These solutions are typically expensive in terms of the physical devices, required software development tools, lengthy development cycles and expertise resources.
With the evolution of increasing multi-core CPU resources, developers began to implement DSP routines utilizing the host CPU. The primary advantage of the host CPU platform is that it enables faster development utilizing more familiar programming environments such as C; as opposed to more complex VHDL based programming that is typically required for FPGAs. However a disadvantage is that the host CPU platform may still not be powerful enough to conduct complex processing routines, especially for real-time application requirements.
The use of a GPU provides the best of both capabilities, a fast familiar programming development environment such as C and more powerful computational capabilities than the host CPU platform to satisfy demanding real-time application requirements. GPUs incorporate many more cores with a high-speed memory bus that can be effectively utilized in parallel for efficient manipulation of large blocks of data.
The PCI Express (PCIe) interface bus is the key pathway for transferring data to and from the GPU at very high-speeds. Taking advantage of the GaGe eXpert PCIe Data Streaming firmware capability, GaGe CompuScope PCIe Digitizer models can simultaneously acquire and stream data to the GPU at sustained rates up to 5 GB/s via a PCIe Gen3 interface.
The Gage CompuScope C Software Development Kit (SDK) provides ready-made compiled sample programs illustrating how to configure and use the eXpert PCIe Data Streaming feature to stream acquired data to the GPU for processing AND how to effectively exploit the parallelized vector processing of the GPU to attain processing rates anywhere from 10X ~ 100X faster than the host CPU for display analysis.
This enables end users to quickly and easily begin working with GPU cards, focusing on the development of their custom in-line processing routines that is unique to their application. Projects can be developed rapidly and are more transportable working in a C programming environment with the GPU CUDA library.
The Gage CompuScope C SDK sample programs also illustrate streaming GPU processed data results continuously to high-speed storage for real-time data recordings of the processed output. Utilizing PCIe based storage systems allow for continuous signal capture and processing recording systems at high-speed sustained transfer rates at up to 5 GB/s within a Windows based environment.
GPU processed data can also be optionally streamed to PCIe Arbitrary Waveform Generators to effectively playback modified signals back out to the testing environment, suitable for applications such as Digital Radio Frequency Memory (DRFM).