UFO: A Scalable GPU-based Image Processing Framework for On-line Monitoring

Current synchrotron experiments require state-of-the-art scientific cameras with sensors that provide several million pixels, each at a dynamic range of up to 16 bits and the ability to acquire hundreds of frames per second. The resulting data bandwidth of such a data stream reaches several Gigabits per second. These streams have to be processed in real-time to achieve a fast process response. In this paper we present a computation framework and middleware library that provides re-usable building blocks to implement high-performance image processing algorithms without requiring profound hardware knowledge. It is based on a graph structure of computation nodes that process image transformation kernels on either CPU or GPU using the OpenCL sub-system. This system architecture allows deployment of the framework on a large range of computational hardware, from netbooks to hybrid compute clusters. We evaluated the library with standard image processing algorithms required for high quality tomographic reconstructions. The results show that speed-ups from 7× to 37× compared to traditional CPU-based solutions can be achieved with our approach, hence providing an opportunity for real-time on-line monitoring at synchrotron beam lines.

[1]  Frank Mueller,et al.  GStream: A General-Purpose Data Streaming Framework on GPU Clusters , 2011, 2011 International Conference on Parallel Processing.

[2]  Steve Mann,et al.  OpenVIDIA: parallel GPU computer vision , 2005, ACM Multimedia.

[3]  James Lebak,et al.  VSIPL: an object-based open standard API for vector, signal, and image processing , 2001, 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221).

[4]  John D. Owens,et al.  Multi-GPU MapReduce on GPU Clusters , 2011, 2011 IEEE International Parallel & Distributed Processing Symposium.

[5]  Scott A. Mahlke,et al.  Sponge: portable stream programming on graphics engines , 2011, ASPLOS XVI.

[6]  Mubarak Shah,et al.  MinGPU: a minimum GPU library for computer vision , 2008, Journal of Real-Time Image Processing.

[7]  Yuefan Deng,et al.  New trends in high performance computing , 2001, Parallel Computing.

[8]  Eric Jones,et al.  SciPy: Open Source Scientific Tools for Python , 2001 .

[9]  Douglas Crockford,et al.  The application/json Media Type for JavaScript Object Notation (JSON) , 2006, RFC.

[10]  André Hinkenjann,et al.  GrIP: A Framework for Experiments with Screen Space Algorithms , 2011 .

[11]  Williem,et al.  Object oriented framework for real-time image processing on GPU , 2010, 2010 IEEE International Conference on Image Processing.

[12]  Jack J. Dongarra,et al.  Automated empirical optimizations of software and the ATLAS project , 2001, Parallel Comput..

[13]  Steven G. Johnson,et al.  The Design and Implementation of FFTW3 , 2005, Proceedings of the IEEE.

[14]  Patrick Horain,et al.  GPUCV: A Framework for Image Processing Acceleration with Graphics Processors , 2006, 2006 IEEE International Conference on Multimedia and Expo.

[15]  Jean-Michel Morel,et al.  A non-local algorithm for image denoising , 2005, 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'05).

[16]  Thomas Ertl,et al.  CUDASA: Compute Unified Device and Systems Architecture , 2008, EGPGV@Eurographics.

[17]  Andreas Kopmann,et al.  A GPU-based architecture for real-time data assessment at synchrotron experiments , 2010, 2010 17th IEEE-NPSS Real Time Conference.

[18]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.