University of Essex
Automatic Parallelisation of Programs onto CPU+GPU Hybrid Systems
Abstract
dc:description.abstractThe advent of Graphics Processing Units being used in addition to the more traditional Central Processing Units has introduced a world of complexity into software development: not only is the core programming model drastically different, but what may be efficient on a CPU may be inefficient on a GPU. Furthermore, any program that contains parallel elements must be substantially re-written in order to run on a GPU architecture. This research aims to produce a system that will allow programs to be run without specifying which set of devices they can be run on. This will allow programs to be more easily moved between different configurations of processors, but will also allow the system to automatically determine which processor best suits a particular piece of code, producing an efficient implementation without the developer's assistance. This system uses a custom programming language, PolyLISP, that can define individual kernels with special looping constructs, and a runtime system, PolyCube, that is able to divide up tasks and pass them off to the given processors. The target platform is CUDA graphics cards, and the target programming language is NVidia's PTX, an intermediary assembly language. Programs written in PolyLISP are compiled into kernels of PTX assembly that are connected using the dataflow architecture, which was originally designed for parallel processing.
Degree
thesis:*- Level dc:type.qualificationlevel
- masters
- Grantor dc:publisher.institution
- University of Essex
- Year dc:date.issued
- 2015
Author and committee
dc:creator, dc:contributor.*- Author dc:creator
-
- Benjamin, Sago
Subjects
dc:subject × 1Rights
- Language dc:language
- en