Automatically translating a general purpose C++ image processing library for GPUs
Department of Computing, Imperial College London, United Kingdom
20th International Parallel and Distributed Processing Symposium, 2006. IPDPS 2006.
@conference{cornwall2006automatically,
title={Automatically translating a general purpose C++ image processing library for GPUs},
author={Cornwall, J.L.T. and Beckmann, O. and Kelly, P.H.J.},
booktitle={Parallel and Distributed Processing Symposium, 2006. IPDPS 2006. 20th International},
pages={8},
isbn={1424400546},
year={2006},
organization={IEEE}
}
This paper presents work-in-progress towards a C++ source-to-source translator that automatically seeks parallelizable 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 parallelization techniques. We show that our approach has potential and explain some of the remaining challenges in building an effective tool.
February 6, 2011 by hgpu