Title |
CUDA-CHiLL: a programming language interface for GPGPU optimizations and code generation |
Publication Type |
thesis |
School or College |
College of Engineering |
Department |
Computing |
Author |
Rudy, Gabe |
Description |
The advent of the era of cheap and pervasive many-core and multicore parallel sys-tems has highlighted the disparity of the performance achieved between novice and expert developers targeting parallel architectures. This disparity is most notiable with software for running general purpose computations on grachics processing units (GPGPU programs). Current methods for implementing GPGPU programs require an expert level understanding of the memory hierarchy and execution model of the hardware to reach peak performance. Even for experts, rewriting a program to exploit these hardware features can be tedious and error prone. Compilers and their ability to make code transformations can assist in the implementation of GPGPU programs, handling many of the target specic details. This thesis presents CUDA-CHiLL, a source to source compiler transformation and code generation framework for the parallelization and optimization of computations expressed in sequential loop nests for running on many-core GPUs. This system uniquely uses a complete scripting language to describe composable compiler transformations that can be written, shared and reused by nonexpert application and library developers. CUDA-CHiLL is built on the polyhedral program transformation and code generation framework CHiLL, which is capable of robust composition of transformations while preserving the correctness of the program at each step. Through its use of powerful abstractions and a scripting interface, CUDA-CHiLL allows for a developer to focus on optimization strategies and ignore the error prone details and low level constructs of GPGPU programming. The high level framework can be used inside an orthogonal auto-tuning system that can quickly evaluate the space of possible implementations. Although specicl to CUDA at the moment, many of the abstractions would hold for any GPGPU framework, particularly Open CL. The contributions of this thesis include a programming language approach to providing transformation abstraction and composition, a unifying framework for general and GPU specicl transformations, and demonstration of the framework on standard benchmarks that show it capable of matching or outperforming hand-tuned GPU kernels. |
Publisher |
University of Utah |
Subject |
CUDA-CHiLL; Programming language interface; GPGPU; Code generation; Programming languages (Electronic computers) ; Graphics processing units ; Application program interfaces (Computer software) |
Subject LCSH |
Programming languages (Electronic computers); Graphics processing units; Application program interfaces (Computer software) |
Dissertation Institution |
University of Utah |
Dissertation Name |
Master of Science |
Language |
eng |
Rights Management |
(c) Gabe Rudy |
Format |
application/pdf |
Format Medium |
application/pdf |
Format Extent |
2,424,031,bytes |
Identifier |
etd2/id/128 |
Source |
Original in Marriott Library Special Collections, QA3.5 2010.R83 |
ARK |
ark:/87278/s6p27cmp |
Setname |
ir_etd |
ID |
192188 |
Reference URL |
https://collections.lib.utah.edu/ark:/87278/s6p27cmp |