19322512 Projektseminar

Softwareprojekt: GPU Offloading and Compiler Optimization

Barry Linnert

Zusätzl. Angaben / Voraussetzungen

Zielgruppe

BA und MA Informatik

Webseite

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

Dozent & Ansprechpartner

Barry Linnert führt die Veranstaltung durch.

Schließen

Kommentar

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

 

 

Schließen

15 Termine

Regelmäßige Termine der Lehrveranstaltung

Mi, 24.04.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 22.05.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 29.05.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 26.06.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 03.07.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 24.07.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 31.07.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 07.08.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 14.08.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 21.08.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 28.08.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 04.09.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 11.09.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 18.09.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Mi, 25.09.2024 12:00 - 14:00
Softwareprojekt: GPU Offloading and Compiler Optimization

Dozenten:
Barry Linnert

Räume:
T9/046 Seminarraum (Takustr. 9)

Studienfächer A-Z