- Home
- Discover
- Your applications
- Case studies
- Feasibility Study: CURRERA-G smart camera with enhanced GPU
Project description
Period:
September 2011 – September 2013.
Name:
Accelerating Sequential Computer Vision Algorithms Using Commodity Parallel Hardware.
Project focuses on the practical question: How can the processing time for vision algorithms be improved by parallelization, in an economical way and execute them on multiple platforms?
Method:
A survey was performed on 22 standards for parallel computing and programming. OpenMP was chosen as the standard for multi-core CPU programming and OpenCL as the standard for GPU programming.
Portability, vendor independence and efficiency in parallelizing the code were the key decision factors.
Use of OpenMP demonstrated that many algorithms of Library can be parallelized in an economical way and adequate speedups were achieved on two multi-core CPU platforms.
With a considerable amount of extra effort OpenCL is able to provide much higher speedups for specific algorithms on dedicated GPUs.
Who was behind the project:
The Centre of Expertise in Computer Vision (CECV) of the NHL University of Applied Sciences in the Netherlands is focusing on feasibility studies for the industry in the field of Computer Vision.
Since 1996 more than 190 industrial projects have been initiated and successfully completed.
At present, more than 500 students have completed their placement or graduation assignment in CECV.
The strength of the CECV lies in the extensive experience with and understanding of the equipment necessary for the complete system chain. That includes lighting, cameras, optics, set-up and image processing algorithms.
Presentation of software which was used:
Instead of writing the host API code for OpenCL in C(++), VisionLab scripts were used.
The script language of VisionLab was extended with OpenCL host API commands. Use of these commands greatly reduced the time to develop and test the host-side code.
Benchmarks were run in order to compare the execution times of the sequential, OpenMP and OpenCL implementations of computer vision operators.
For the purpose of demonstrating the capabilities of the XIMEA’s CURRERA G a demo was developed that records live images and applies the Sobel edge detector filter on the images.
The OpenMP version of the edge detector has a speedup of 1.5x and the OpenCL version 20x.
Why was CURRERA G unique for such a study:
From 2004 onwards the clock frequency of CPUs has not increased significantly. Computer Vision applications have an increasing demand for more processing power but are limited by the performance capabilities of sequential processor architectures. The only way to get more performance is to go for parallel programming.
CURRERA G is world’s first intelligent camera with an Accelerated Processing Unit (APU) where APU is a combination of a CPU and GPU on one chip. The chip used in CURRERA G has a raw performance of 90 GFLOPs.
Future possibilities
At the moment the overhead of transferring images between CPU and GPU memory is high. In 2014 with the arrival of announced new heterogonous CPU/GPU architectures, this overhead will vanish.
This year OpenMP 4.0 with “directives for attached accelerators”, is released. This new standard will allow portable OpenMP pragma style programming on multi-core CPUs and GPUs.
Compared with OpenCL this new standard will allow multi-core programming at a higher abstraction level than OpenCL. With the new OpenMP standard it is expected that it will be much easier to program portable code, even though the code might not be as efficient as when programmed with OpenCL.
Study can be downloaded HERE
Contact info: Jaap van de Loosdrecht, Centre of Expertise in Computer Vision of NHL University of Applied Sciences
j.van.de.loosdrecht@nhl.nl