Softwareprojekt: GPU Offloading and Compiler Optimization S24
to Whiteboard Site

Description

Pony [1] ist eine Programmiersprache, die dafür designed wird, hoch
performant zu sein.
Sie basiert auf dem Akteur-Modell [2]: Akteure beinhalten
sequentielle Code-Abschnitte, verschiedene Akteure werden
nebenläufig und unabhängig voneinander ausgeführt.
Die Nebenläufigkeit auf der Ebene von Akteuren [3] siedelt
Beschleunigung direkt im Design der Sprache an.
Es gibt jedoch auch andere Formen von Parallelismus auf anderen Ebenen,
welche dazu genutzt werden könnten, Pony noch performanter zu machen.
Auf Ebene der Daten gibt es sogenannten Datenparallelismus [4].
Er kann beispielsweise in Schleifennestern gefunden werden,
die viele Male ausgeführt werden und auf unabhängigen aber
gleich strukturierten Daten arbeiten.

Grafische Prozessoren (GPUs) spezialisieren sich darauf
datenparallele Probleme zu berechnen. [5]
In einem System, in dem sowohl eine GPU als auch eine CPU vorhanden
sind, kann die GPU die Berechnungen der CPU unterstützen,
indem datenparallele Probleme von ihr übernommen werden.
Der Fachbegriff dazu heißt GPU Offloading.
Die GPU berechnet aufgrund ihrer internen Struktur und Ressourcen
datenparallele Probleme effizienter und schneller als die CPU und
beschleunigt dadurch die Gesamtausführung eines Programms.

In diesem Softwareprojekt wollen wir gemeinsam herausfinden,
ob sich GPU Offloading in Pony integrieren lässt.
Dazu experimentieren wir mit Ponys Compiler und schreiben Teile
dieses Compilers um.

Das SWP bietet die Möglichkeit, einmal genauer in den internen
Aufbau eines Compilers zu blicken und sich anzusehen, wie genau
GPUs dazu verwendet werden können, ein Programm zu beschleunigen.
Darüber hinaus werden wir die Compiler Infrastruktur LLVM [6]
kennenlernen, denn der Pony Compiler ist ein Compiler Frontend
zu LLVM.
Falls Ihnen der Name LLVM nichts sagt, ist es vielleicht interessant
für Sie zu wissen, dass sowohl der Rust, als auch der Clang Compiler
Frontends zu LLVM sind.

Das Softwareprojekt zielt darauf ab im Bereich GPU Offloading zu forschen,
möglicherweise mit der Option später die Ergebnisse der Experimente
zu veröffentlichen und zu den beiden genannten Open-Source-Projekten
Pony und LLVM beizutragen.

 

Ablauf

Während der Vorlesungszeit wird die Aufgabenstellung mit reduziertem Anwesenheits- und Arbeitsaufwand spezifiziert. Die eigentliche Bearbeitung der Aufgabenstellung erfolgt dann in der vorlesungsfreien Zeit.

 

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/)

 

 


Zusätzliche Informationen

Zielgruppe

BA und MA Informatik

Webseite

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

Dozent & Ansprechpartner

Barry Linnert führt die Veranstaltung durch.

Basic Course Info

Course No Course Type Hours
19322512 Projektseminar 2

Time Span 24.04.2024 - 30.09.2024
Instructors
Bernadette Keßler
Barry Linnert

Study Regulation

0086c_k150 2014, BSc Informatik (Mono), 150 LPs
0086d_k135 2014, BSc Informatik (Mono), 135 LPs
0087d_k90 2015, BSc Informatik (Kombi), 90 LPs
0088d_m60 2015, MSc Informatik (Kombi), 60 LPs
0089b_MA120 2008, MSc Informatik (Mono), 120 LPs
0089c_MA120 2014, MSc Informatik (Mono), 120 LPs
0159c_m30 2014, ABV Informatik, 30 LPs
0159d_m30 2023, ABV Informatik, 30LPs
0207b_m37 2015, MSc Informatik (Lehramt), 37 LPs
0208b_m42 2015, MSc Informatik (Lehramt), 42 LPs
0458a_m37 2015, MSc Informatik (Lehramt), 37 LPs
0471a_m42 2015, MSc Informatik (Lehramt), 42 LPs
0511a_m72 2016, MSc Informatik (Lehramt), 72 LPs
0511b_m72 2019, M-Ed Fach 2 Informatik (Lehramt an Gymnasien - Quereinstieg), 72 LP
0556a_m37 2018, M-Ed Fach 1 Informatik (Lehramt an Integrierten Sekundarschulen und Gymnasien), 37 LPs
0556b_m37 2023, M-Ed Informatik Fach 1 (Lehramt an Integrierten Sekundarschulen und Gymnasien), 37 LP
0557a_m42 2018, M-Ed Fach 2 Informatik (Lehramt an Integrierten Sekundarschulen und Gymnasien), 42 LPs
0557b_m42 2023, M-Ed Informatik Fach 2 Informatik (Lehramt an Integrierten Sekundarschulen und Gymnasien), 42 LPs

Softwareprojekt: GPU Offloading and Compiler Optimization S24
to Whiteboard Site

Main Events

Day Time Location Details
Wednesday 12-14 T9/046 Seminarraum 2024-04-24 - 2024-09-25

Accompanying Events

Day Time Location Details
?? ? - ? Parsing OpenMP Directives
?? ? - ? Analysis and Integrating the Clang Compiler Driver GPU Offload process into the Pony Compiler 1
?? ? - ? Extending OpenMP LLVM IR Code Generation in the Pony Compiler
?? ? - ? Analysis and Integrating the Clang Compiler Driver GPU Offload process into the Pony Compiler 2

Softwareprojekt: GPU Offloading and Compiler Optimization S24
to Whiteboard Site

Most Recent Announcement

:  

Currently there are no public announcements for this course.


Older announcements

Softwareprojekt: GPU Offloading and Compiler Optimization S24
to Whiteboard Site

Currently there are no resources for this course available.
Or at least none which you're allowed to see with your current set of permissions.
Maybe you have to log in first.