Automatically translating a general purpose C++ image processing library for GPUs

  • Authors:
  • Jay L. T. Cornwall;Olav Beckmann;Paul H. J. Kelly

  • Affiliations:
  • Department of Computing, Imperial College London, United Kingdom;Department of Computing, Imperial College London, United Kingdom;Department of Computing, Imperial College London, United Kingdom

  • Venue:
  • IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
  • Year:
  • 2006

Quantified Score

Hi-index 0.01

Visualization

Abstract

This paper presents work-in-progress towards a C++ source-to-source translator that automatically seeks parallelisable code fragments and replaces them with code for a graphics co-processor. We report on our experience with accelerating an industrial image processing library. To increase the effectiveness of our approach, we exploit some domain-specific knowledge of the library's semantics. We outline the architecture of our translator and how it uses the ROSE source-to-source transformation library to overcome complexities in the C++ language. Techniques for parallel analysis and source transformation are presented in light of their uses in GPU code generation. We conclude with results from a performance evaluation of two examples, image blending and an erosion filter, hand-translated with our parallelisation techniques. We show that our approach has potential and explain some of the remaining challenges in building an effective tool.