Active Silicon’s frame grabbers and GPU processing
Graphic Processing Unit (GPU) common applications include embedded systems, mobile phones, personal computers, workstations and game consoles. Modern GPUs are extremely efficient at processing images and graphics, and their parallel structure makes them particularly well suited to uses where large blocks of data need to be processed in parallel.
All Active Silicon frame grabbers can be used in combination with GPUs. In addition, APIs are now available which enable many filter, convolution and matrix-vector operations to be performed by the GPU directly on data from a frame grabber without the need to be processed by system buffers or by the CPU. This makes data acquisition very fast with very low latency as the GPU memory is made directly accessible to the frame grabber.
APIs that accelerate processing via GPUs
The two major GPU manufacturers, NVIDIA and AMD, provide specific APIs to aid integration with third-party devices such as Active Silicon’s acquisition cards. This allows smooth integration with NVIDIA’s GPUDirect for Video and AMD’s DirectGMA when using Active Silicon cards.
NVIDIA’s GPUDirect for Video
Under Windows, the GPUDirect for Video API allows data to be transferred from the acquisition card directly into GPU buffers via DMA (Direct Memory Access) without the overhead of any CPU interaction. These GPU buffers may be in the PC’s system memory as shown in Figure 1, but are managed by the GPU, which has the ability to process and/or transfer these buffers using its own lightning-fast DMA engine directly to and from the GPU.
By using GPUDirect for Video the CPU overhead is eliminated since it has removed a memory copy of the image data into a GPU buffer, thus reducing latency and system memory bandwidth usage, resulting in significant performance improvements in data transfer times for applications running on NVIDIA cards. Another great benefit is that the GPU can start processing data as soon as it arrives in the GPU buffer rather than the alternative via a non-GPU buffer of having to wait until the whole image frame has arrived. This provides optimum system latency.
NVIDIA’s GPUDirect RDMA is the technology equivalent under Linux and this API allows Active Silicon’s frame grabber to DMA image data directly into the GPU’s memory, physically located on the graphics card memory, bypassing system memory altogether. This is similar to AMD’s DirectGMA outlined below, also supported by Active Silicon acquisition cards and software libraries.
Figure 1: GPU Access – traditional versus using NVIDIA’s GPUDirect for Video
DirectGMA (Direct Graphics Memory Access) is AMD’s proprietary method and API for low latency peer-to-peer data transfers between PCI Express devices. The API exposes part of the GPU memory and makes it accessible to other devices on the bus, such as Active Silicon’s acquisition cards. This allows the frame grabber to DMA image data directly into GPU memory, with no CPU involvement at all and bypassing system memory completely, resulting in minimal latency data transfer with the added benefit of saving memory bandwidth.
Figure 2: GPU Access – traditional versus using AMD’s DirectGMA
GPU API Comparison
NVIDIA GPUDirect for Video / RDMA
- Supported GPUs: Quadro; GRID; Tesla click here for full list
- Operating system – Windows 7/8/10 64-bit or Linux 64-bit (RDMA: Linux only)
- Supporting API – CUDA, OpenCL™, OpenGL®, DirectX®
- NVIDIA cards offer from 8 to over 5000 CUDA Cores, offering a range of processing power
- NVIDIA GPU supporting GPUDirect for Video
- Active Silicon’s SDK and NVIDIA SDK
- FireBird or Phoenix frame grabber
- Supported GPUs: FirePro W™ W5x00 and above; FirePro™S series
- Operating system – Windows 7/8/10 64-bit or Linux 64-bit
- Supporting API – OpenCL™, OpenGL®, DirectX®
- AMD graphic cards support STREAM technology, which uses OpenCL cross-platform programming standard
- AMD GPU supporting DirectGMA
- Active Silicon’s SDK and AMD SDK
- FireBird or Phoenix frame grabber
Integrating Active Silicon products with GPUDirect for Video or DirectGMA
All Active Silicon FireBird and Phoenix frame grabbers are compatible with GPUDirect for Video and DirectGMA.
Our well documented API and SDK sample code allows for easy integration of parallel computing techniques on standard PC hardware.
- Active Silicon’s SDK includes a comprehensive suite of C++ examples for GPUDirect for Video and DirectGMA with full source code. This can be easily found in the SDK manual index:
– SDK Setup: GPU Hardware and Software
– Examples list: NVIDIA GPUDirect for Video Examples
- Our technology supports GPUDirect for Video on Windows 7 and 10, and DirectGMA on Windows 7, 10 and Linux.
- Our API supports CUDA, OpenCL, OpenGL and DirectX and is consistent across operating systems and hardware platforms allowing easy migration.
- With ActiveDMA technology, our FireBird frame grabbers work latency free.
- Watch our demo of GPU processing in action: Active Silicon CEO, Colin Pearce, explains how optimal GPU processing can be achieved using our frame grabbers at the VISION Show 2016.
Download the information above as a printable Datasheet on GPU Solutions (pdf).