Synthesizing Software from a ForSyDe Model Targeting GPGPUs
Independent thesis Advanced level (professional degree), 20 credits / 30 HE creditsStudent thesis
Today, a plethora of parallel execution platforms are available. One platform in particular is the GPGPU – a massively parallel architecture designed for exploiting data parallelism. However, GPGPUS are notoriously difficult to program due to the way data is accessed and processed, and many interconnected factors affect the performance. This makes it an exceptionally challengingtask to write correct and high-performing applications for GPGPUS.
This thesis project aims to address this problem by investigating how ForSyDe models – a software engineering methodology where applications are modeled at a very high level of abstraction – can be synthesized into CUDA C code for execution on NVIDIA CUDA-enabled graphics cards. The report proposes a software synthesis process which discovers one type of potential data parallelism in a model and generates either pure C or CUDA C code. A prototype of the software synthesis component has also been implemented and tested on models derived from two applications – a Mandelbrot generator and an industrial-scale image processor. The synthesized CUDA code produced in the tests was shown to be both correct and efficient, provided there was enough computation complexity in the processes to amortize the overhead cost of using the GPGPU.
Place, publisher, year, edition, pages
2012. , 147 p.
ForSyDe, abstract program models, software synthesis, gpgpu, cuda, C
Engineering and Technology
IdentifiersURN: urn:nbn:se:kth:diva-90332OAI: oai:DiVA.org:kth-90332DiVA: diva2:504941
Subject / course
Electronic- and Computer Systems
Master of Science in Engineering - Computer Science and Technology
Sander, Ingo, Univ. lektor