Automatic Parallelization for Graphic Processing Units

Accelerated graphics cards (GPUs) have became a commodity in recent years. On the right kinds of problems, GPUs greatly surpass CPUs in terms of raw performance. The first goal of this presentation is to provide a brief overview of programming GPUs and to indicate problematic areas in using GPUs to perform general purpose (i.e. non-graphics) computing. The second goal of this presentation is to describe a prototype implementation of an auto-parallelizating Just-In-Time compiler implemented in JikesRVM and how the complications have been addressed in the implementation. The optimizing compiler must properly identify code segments that are suitable for GPU execution while taking account of the overhead introduced in transferring data between memory and GPU. Other Issues such as aliasing and exceptions can also prevent GPU execution as well.
Greg Steffan
Last modified: Fri Aug 31 10:25:05 EDT 2007