19322512 Project Seminar

Software Project: GPU Offloading and Compiler Optimization

Barry Linnert

Additional information / Pre-requisites

Target group

Bachelor and Master of Computer Science

Homepage

https://www.mi.fu-berlin.de/w/SE/SoftwareprojektCompilerOptimization2024

Lecturer & Contact Person

Barry Linnert

close

Comments

Pony [1] is a programming language designed to be high performant.
It makes use of the actor paradigm [2]:
every sequential piece of code should be written as an actor
but the actors themselves run concurrently and independent from
each other.
Concurrency on the level of tasks [3] (in this case a task is an actor)
provides speed up by design.
However, there are other forms of parallelism on other levels
that could be exploited to make Pony even more performant.
Parallelism on data level [4] can for example be found in a loop nest
that executes many times on independent but equally structured data.

Graphic processing units (GPUs) specialize in computing data-level
parallel problems.[5]
In a system where a GPU complements a CPU data-level parallel portions
of code can be offloaded to the GPU.
The GPU takes care of calculating the data-level parallel problem
and uses its ressources to do this very fast.
This way a speed up of the overall program can be achieved.

In this software project we want to explore if GPU Offloading can be
integrated in the Pony Programming language.
In order to do that we take a look at the Pony compiler and experiment
with it and rewrite parts of it.

You can learn about the internal workings of a compiler
and how GPUs can be leveraged to achieve the speed up of a program.
Further, we will get to know more about
the compiler infrastructure LLVM [6] that the Pony compiler is a frontend of.
If you have never heard of LLVM before then maybe it is interesting for you to know
that the Rust and Clang compiler are other frontends to LLVM.

In its core this software project is a research project --
possibly with the option to later publish the results of our experiments
and contribute to the open source projects Pony and LLVM.

 

Links:

[1]: [Pony](https://www.ponylang.io/discover/#what-is-pony)
[2]: [Actor Model](https://en.wikipedia.org/wiki/Actor_model)
[3]: [Task-level parallelism](https://en.wikipedia.org/wiki/Task_parallelism)
[4]: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware Software Interface [RISC-V Edition]. 2nd. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, 2021. ISBN: 9780128203316. Page 528.
[5]: David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware Software Interface [RISC-V Edition]. 2nd. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, 2021. ISBN: 9780128203316. Appendix B.
[6]: [LLVM](https://llvm.org/)

 

close

15 Class schedule

Regular appointments

Wed, 2024-04-24 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-05-22 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-05-29 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-06-26 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-07-03 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-07-24 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-07-31 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-08-07 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-08-14 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-08-21 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-08-28 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-09-04 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-09-11 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-09-18 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Wed, 2024-09-25 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Lecturers:
Barry Linnert

Location:
T9/046 Seminarraum (Takustr. 9)

Subjects A - Z