Automatic C-to-CUDA Code Generation for Affine Programs

Muthu Baskaran, J. Ramanujam, P. Sadayappan
The Ohio State University, USA
In Compiler Construction, Vol. 6011 (2010), pp. 244-263


   title={Automatic c-to-cuda code generation for affine programs},

   author={Baskaran, M. and Ramanujam, J. and Sadayappan, P.},

   booktitle={Compiler Construction},





Download Download (PDF)   View View   Source Source   



Graphics Processing Units (GPUs) offer tremendous computational power. CUDA (Compute Unified Device Architecture) provides a multi-threaded parallel programming model, facilitating high performance implementations of general-purpose computations. However, the explicitly managed memory hierarchy and multi-level parallel view make manual development of high-performance CUDA code rather complicated. Hence the automatic transformation of sequential input programs into efficient parallel CUDA programs is of considerable interest. This paper describes an automatic code transformation system that generates parallel CUDA code from input sequential C code, for regular (affine) programs. Using and adapting publicly available tools that have made polyhedral compiler optimization practically effective, we develop a C-to-CUDA transformation system that generates two-level parallel CUDA code that is optimized for efficient data access. The performance of automatically generated code is compared with manually optimized CUDA code for a number of benchmarks. The performance of the automatically generated CUDA code is quite close to hand-optimized CUDA code and considerably better than the benchmarks’ performance on a multicore CPU.
No votes yet.
Please wait...

* * *

* * *

HGPU group © 2010-2017 hgpu.org

All rights belong to the respective authors

Contact us: