MMER_GPU

Computer vision algorithms are per default computational intense. It is a great challenge to implement them in an efficient manner.

The MMER_GPU library provides developers with the ability to run their algorithms not only on the CPU but also the GPU (abbrev. ’Graphics Processing Unit’).

As part of the MMER System Architecture, the MMER_GPU library fully integrates with the multithreaded framework application MMER_Lab. It provides a simple, thread-safe interface for executing rendering and general purpose tasks an the display hardware in parallel enabling realtime computer vision applications.

Why use GPUs for general purpose mathematics?

The short answer is, because they are pretty fast compared to CPUs and rapidly growing faster.

The long answer is a little more complicated. The rendering pipeline of GPUs is optimized in the first place for rendering geometry in computer games or CAD/CAM applications for example. Available in almost every workstation, laptop and game console, high performace GPUs can be found almost everywhere. Even handheld devices are already equiped with accelerated display hardware.

In comparison to current CPUs, GPUs have a higher memory bandwidth and much more floating point units. At the time of this writing, a current state of the art GPU has a peak performance of about 250 GFLOPS and a memory bandwidth of 51.2 GB/s, compared to the performance of an average CPU of about 12 GFLOPS and 6GB/s, respectively.

What makes modern GPUs even more attractive for general purpose applications is their programmability and support for half (16bit) and single precision (32bit) floating point arithmetic. GPUs can actually be undestood as stream processors, capable of doing a huge amount of floating point operations in parallel.

The idea of using GPUs for geneal purpose applications is not new at all. Thus the term GPGPU (abbrev. ’General Purpose Graphics Processing Unit’) has been established within the past years. Scientific applications range from fast matrix multiplication over fluid simulation to iterative solvers for sparse linear systems. For additional information about this topic refer to www.gpgpu.org.