Graphical Processing Units (GPUs) consists of many computing cores designed to process data in a highly parallel fashion. You are likely familiar with the GPU found in your PC which is used to speed up the graphics for your favorite video games. It turns out these same GPUs can be used to accelerate general purpose scientific calculations in modeling and simulation applications. This now gives the average user the equivalent of a supercomputer on his or her desktop!
We can program a GPU to perform parallel calculations using the standard C language with the assistance of an Application Programming Interface (API) known as OpenCL. From the floorplan of a typical GPU illustrated below, you can see the major challenge of writing an efficient parallel program is to manage the memory hierarchy. This involves synchronization issues associated with communicating efficiently between parallel compute units and moving data between global memory and the local and private memory.
The Floorplan of a Typical GPU
Our research laboratory has a Lenovo ThinkStation P500 computer equipped with an AMD Radeon R9 270X GPU. A couple on-going research projects are highlighted here.
· Face Recognition
Face recognition has important applications in bio-metric based security such as real-time video surveillance at airport check-ins. This project involves the implementation and optimization of computer vision algorithms for face detection and recognition for GPUs. We are also looking at the ARM Cortex microprocessor for applications targeting mobile devices.
· Medical Image Segmentation
Image segmentation is one of the more challenging problems in image processing. This research investigates the use of a cellular automated-based algorithm that can be accelerated on GPUs. It has application for the real-time image segmentation of medical images. This work was initiated by a group of undergraduate students for their Senior Design project (see photo below).
Representative GPU Publication (* indicates undergraduate student co-author)
I. Olmedo*, Y. Guerra Perez*, J. F. Johnson*, L. Raut*, and D. H. K. Hoe, “Image Segmentation on GPGPUs: A Cellular Automata-based Approach,” SummerSim Conference 2013, Toronto, July 2013.