When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
CUDA-Lite: Reducing GPU Programming Complexity
Languages and Compilers for Parallel Computing
OpenMP to GPGPU: a compiler framework for automatic translation and optimization
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
CuPP - A framework for easy CUDA integration
IPDPS '09 Proceedings of the 2009 IEEE International Symposium on Parallel&Distributed Processing
Relooper: refactoring for loop parallelism in Java
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
hiCUDA: High-Level GPGPU Programming
IEEE Transactions on Parallel and Distributed Systems
A refactoring tool to extract GPU kernels
Proceedings of the 4th Workshop on Refactoring Tools
Hi-index | 0.00 |
Graphical Processing Units (GPUs) provide an excellent execution platform for several classes of computation intensive problems. Even though there are vendor-specific Application Programming Interfaces (APIs) for GPU programming, they all share a high-level of similarity. In this extended abstract, we introduce a transformation frame-work through which sequential programs from legacy systems can be executed in any of the two common GPU programming APIs: OpenCL and CUDA. Our study shows that blocks of independent sequential code can be converted automatically to an equivalent representation in OpenCL and CUDA. In some cases, the transformation requires additional information from the programmer regarding the specific computation and the GPU configuration. Our approach provides the design decisions for a Domain-Specific Language (DSL) to specify the additional information.