Tool Support for Efficient Programming of Graphics Processing Units

Graphics Processing Units (GPU) have established themselves as effective platforms for high-performance computing. Utilizing the power of these devices usually requires significant changes to existing codes or the development of a completely new solution. In this paper, we survey approaches that we believe are the most promising in reducing the complexity of programming or porting codes to GPUs. We also focus our presentation on our refactoring tool developed for this purpose, called ExtractKernel, which transforms existing C loops into code that can execute on the GPU.

[1]  Mikko H. Lipasti,et al.  Profiling Heterogeneous Multi-GPU Systems to Accelerate Cortically Inspired Learning Algorithms , 2011, 2011 IEEE International Parallel & Distributed Processing Symposium.

[2]  Sangjin Han,et al.  PacketShader: a GPU-accelerated software router , 2010, SIGCOMM '10.

[3]  Michael L. Van de Vanter,et al.  Scientific Computing's Productivity Gridlock: How Software Engineering Can Help , 2009, Computing in Science & Engineering.

[4]  Jeffrey C. Carver,et al.  Software Development Environments for Scientific and Engineering Software: A Series of Case Studies , 2007, 29th International Conference on Software Engineering (ICSE'07).

[5]  Kostadin Damevski,et al.  A refactoring tool to extract GPU kernels , 2011, WRT '11.