AAU Student Projects - visit Aalborg University's student projects portal
A master thesis from Aalborg University

FuGL - Functional GPU Language

Author(s)

Term

4. term

Education

Publication year

2018

Submitted on

2018-06-06

Pages

106 pages

Abstract

Developing software that utilizes the GPU often requires using low-level languages, and the developer must be aware of the underlying architecture and execution model, to fully utilize the available resources found on a GPU. This may require the developer to tweak and tune many details in an implementation in order to gain full performance, also requiring a lot of knowledge on the topic. In this project we introduce FuGL, a statically typed functional GPU programming language. FuGL features high level abstractions, requiring only a few keywords to parallelize an implementation. FuGL uses LLVM as backend, as it features architectural support for both CPUs and GPUs. The FuGL compiler is developed using .Net Core with C#, to support both Windows, macOS and Linux. The compiler implements the LLVM C API using LLVMSharp, to emit LLVM Assembly. FuGL features a simple syntax with only a few constructs, as with Lisp. With only the keywords mutable and gpu, the developer is able to decide how and when data is allocated and copied to the GPU, to remove unwanted memory copying. Kernels are specified using only the gpu keyword. FuGL has been tested on three developers to determine the programmability, which is satisfying for the current version. Furthermore FuGL is performance tested, showing that the performance is comparable to other high level languages. The performance tests are performed by implementing three algorithms in FuGL and comparing the performance with other languages for GPU development.

Keywords

Documents


Colophon: This page is part of the AAU Student Projects portal, which is run by Aalborg University. Here, you can find and download publicly available bachelor's theses and master's projects from across the university dating from 2008 onwards. Student projects from before 2008 are available in printed form at Aalborg University Library.

If you have any questions about AAU Student Projects or the research registration, dissemination and analysis at Aalborg University, please feel free to contact the VBN team. You can also find more information in the AAU Student Projects FAQs.