GpuCV: A GPU-accelerated framework for image processing and Computer Vision
Y. Allusse, P. Horain Outline
Why accelerating Computer Vision and Image Processing? How can GPUs help? GpuCV description Results Future works Conclusion
page 2 6 mai 2010 Y. Allusse, P. Horain Motivation statement
Why accelerating Computer Vision and Image Processing? Processing large images & HD videos
Increasing data weight • Microscopy • Satellite images • Fine arts, printing • Video databases
Images up to 100 GBytes !
page 4 6 mai 2010 Y. Allusse, P. Horain Real time computer vision
Interactive applications, security… • Biometry • Multimodal applications • 3D motion tracking P A B /
4
G
3D/2D registration E P M page 5 6 mai 2010 Y. Allusse, P. Horain Example application: Virtual conference s o m e d
m o c . D 3 g o l B y M / / : p t t h
page 6 Y. Allusse, P. Horain Example application: Virtual conference s o m e d
m o c . D 3 g o l B y M / / : p t t h
page 7 Y. Allusse, P. Horain How to accelerate image processing?
Available technologies for acceleration: • Extended instruction sets (ex.: Intel OpenCV / IPP) • Multiple CPU cores (ex.: IBM Cell) • Co-processor:
- FPGA (field-programmable gate array)
- GPU (graphical processing unit)
GPUs available (almost) for free in consumer PCs
page 8 6 mai 2010 Y. Allusse, P. Horain Graphics Processing Units GPU: what?
Graphics Processing Unit Designed for advanced rendering • Multi-texturing effects. • Realistic lights and shadows effects. • Post processing visual effects. Originally in consumer PCs for gaming
Image rendering device : Highly parallel processor High bandwidth memory
page 10 6 mai 2010 Y. Allusse, P. Horain GPU history: The power race t a . z a r g u t . g c i . n o i s i v 4 u p g / / : p t t h
, n o i s i V 4 U P G
: e c r u o S
page 11 6 mai 2010 Y. Allusse, P. Horain GPU vs CPU: Specifications ]
Effective Nbr. of u Avg Price in € Millions of j a
Model processing Power in Watts processing r (12/01/2008) transistors a d n
power in Gflops units i v o G
a g a N
:
e c r
NVIDIA u 300 336 110 754 112 o S
GeForce 8800 GT [
ATI 300 475 215 700 320 Radeon HD 2900 XT
Intel 169 17 65 291 2 Core 2 Duo E6700
AMD 168 19 125 227,4 2 64 x2 6000+
page 12 6 mai 2010 Y. Allusse, P. Horain GPU vs. CPU
Processing power ratio on price and power consumption
gFlops per €
4
Different purpose
2 Different architecture
Different efficiency 0
gFlops per Watts gFlops
NVIDIA GeForce 8800 GT ATI Radeon HD 2900 XT Intel Core 2 Duo E6700 AMD 64 x2 6000+
page 13 6 mai 2010 Y. Allusse, P. Horain GPU history: towards programming flexibility
Until 2000: fixed architecture (not programmable) 2000-01: Pixel and Vertex shaders GeForce 3 and ATI R200. 2005: Geometry shaders GeForce 6800 and ATI Radeon X800. 2006: ATI CTM™ (for "Close To Metal"). ATI Radeon based GPUs. 2007: NVIDIA CUDA, ATI Stream SDK NVIDIA GeForce 8, AMD ATI FireStream. 2009 (Q3): OpenCL drivers & SDK available Apple Inc., AMD, IBM, Intel, Nvidia… page 14 6 mai 2010 Y. Allusse, P. Horain GPU pipeline
Shaders allow application to run their own code in the graphic pipeline
page 15 6 mai 2010 Y. Allusse, P. Horain CUDA thread batching
GPU processing library from NVIDIA. Subdivide processing tasks in thousands of threads using blocks. C Style programming Full memory access
page 16 6 mai 2010 Y. Allusse, P. Horain Cuda memory model