|
Accelerating a C++ Image Processing Library using a GPU (Preliminary Report)
Jay L. T. Cornwall, Olav Beckmann and Paul H. J. Kelly
This paper presents work-in-progress towards a C++ sourceto-source translator that automatically seeks parallel, streaming 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 effectiveness, we exploit some domain-specific knowledge of the image processing libraryŐs semantics. We outline the architecture of our compiler, and how it uses the ROSE source-to-source transformation library. Techniques for parallel analysis and source transformation are presented in light of their uses in GPU code generation, both in detecting parallelisable code and in exposing parallelism further. We conclude with results from performance evaluation of two examples, image blending and a 9-point erosion filter, hand-translated with our parallelising techniques. We show that our approach has potential, and explain some of the remaining challenges in building an effective tool.
Please contact our webadmin with any comments or changes.
|