Graduation Semester and Year
2014
Language
English
Document Type
Dissertation
Degree Name
Doctor of Philosophy in Computer Science
Department
Computer Science and Engineering
First Advisor
Ishfaq Ahmad
Abstract
Powerful Graphics Processing Units (commonly called GPUs) are proliferatingrapidly and are becoming a viable choice for a wide range of user applications. Forperforming computationally intensive tasks on these processors, it is highly desirable to have software tools that can facilitate writing effective programming codewhile taking advantage of the full potential offered by these processors. Multi-levelmemory hierarchy, extensive data transfer, and the utilization of a large number ofprocessing cores are daunting challenges in writing code for data-parallel computingtasks. The programming experience becomes more cumbersome due to the significantrestrictions imposed by the OpenCL specification including the inability to allocatememory dynamically. The contribution of this dissertation is developing a methodicalframework that can assist the programmer in writing efficient code using a modern,expressive programming language combined with creative uses of static and dynamicprogram analysis that can alleviate some of the challenges mentioned above. Ourmethodology allows writing codes with object-oriented programming style that cantake advantage of the GPU capabilities. Our framework addresses the problem ofdynamic memory allocation and proposes a memory usage analysis that gives programmers the advantage of dynamic memory allocation while operating within theconstraints of OpenCL devices. We have also developed a sofware tool that performsstatic analysis on GPU kernels written in the Scala programming language using theFirepile GPU programming library. The tool computes an upper bound on memoryusage and utilizes this bound to pre-allocate memory needed to successfully executethe kernel on the GPU. Addressing the problem of dynamic memory allocation, we present a memory usage analysis that gives programmers the illusion of dynamic memory allocation while operating within the constraints of OpenCL devices. Static analysis is performed on GPU kernels written in the Scala programming language using the Firepile GPU programming library. An upper bound on memory usage of the kernel is computed. This bound is used to pre-allocate memory needed to successfully execute the kernel on the GPU. Our experiments show that the analysis finds a conservative upper bound with respect to actual memory allocated by execution of the program on the JVM.
Disciplines
Computer Sciences | Physical Sciences and Mathematics
License
This work is licensed under a Creative Commons Attribution-NonCommercial-Share Alike 4.0 International License.
Recommended Citation
White, Derek, "Run-time Compilation And Dynamic Memory Use Analysis For GPUs" (2014). Computer Science and Engineering Dissertations. 20.
https://mavmatrix.uta.edu/cse_dissertations/20
Comments
Degree granted by The University of Texas at Arlington