Optimierte Auslagerung von OpenMP-Code auf FPGAs

Brandner J (2026)


Publication Language: German

Publication Type: Thesis

Publication year: 2026

URI: https://open.fau.de/handle/openfau/40967

DOI: 10.25593/open-fau-3328

Abstract

FPGAs werden seit Jahrzehnten für verschiedenste Aufgaben verwendet. So versprechen sie im Bereich des Hochleistungsrechnens als Beschleuniger um Größenordnungen bessere Leistung und Energieeffizienz als CPUs und GPUs. Tatsächlich werden Sie aber im Vergleich zu GPUs für Allzweckrechnungen nur verschwindend selten verwendet, da sowohl die Programmierung des FPGAs für die geforderte Aufgabe, als auch das Zusammenfügen mit einem Gastgeber zu einem heterogenen System Expertise im Bereich der FPGA- oder Hardwareentwicklung voraussetzt. Ein Ansatz, um die Verwendung von FPGAs zu vereinfachen und sie für eine breitere Nutzerschaft verwendbar zu machen, ist es, die Zielauslagerung des Programmiermodells OpenMP für sie zu erweitern. Diese aus OpenMP-Quelltexten generierten FPGA-Lösungen nutzen jedoch das Potenzial von FPGAs bei weitem nicht aus. Die erzeugten Schaltungen weisen ohne händische Optimierung zu wenig Nebenläufigkeit auf und werden gleichzeitig durch den niedrigen Speicherdurchsatz der FPGA-Hardware-Platformen ausgebremst. Für beide Probleme haben wir Lösungen entwickelt:
Im ersten Abschnitt dieser Arbeit stellen wir einen Ansatz vor, der es dem OpenMP-Entwickler ermöglicht, den Code für die Auslagerung auf ein FPGA zu optimieren, ohne dabei über spezielle Kenntnisse in diesem Bereich verfügen zu müssen: Ein Regressionsmodell kann schnell aus den von FPGA-Werkzeugen generierten Ausgaben die Effizienz der Lösung abschätzen. Gleichzeitig zeigen wir mit datenwissenschaftlichen Methoden, inwieweit und unter welchen Umständen der Ressourcenbedarf einer FPGA-Lösung durch die von den FPGA-Herstellern bereitgestellten Werkzeuge vorhergesagt werden kann.
Im zweiten Abschnitt dieser Arbeit stellen wir eine Technik vor, mit der sich Caches in FPGA-Architekturen einfügen lassen und die von uns speziell für aus OpenMP ausgelagerten Code entwickelt wurde.
Sie nutzt hochoptimierte Standard-Cache-Blöcke, welche von durch den OpenMP-Übersetzer eingefügten Code aktiv gesteuert werden. Der Ansatz funktioniert auf beliebigem Code, erfordert nur geringe Hardware-Ressourcen und erzielt bei Testfällen, welche Daten wiederverwenden, einen Speed-Up von durchschnittlich 1,75 gegenüber FPGA-Lösungen ohne einen Cache.
Abschließend vergleichen wir diese Technik mit anderen, in der Literatur bereits bekannten Cacheing-Techniken für FPGAs und kombiniere sie mit diesen, um in dieser Form neuartige mehrstufige Cache-Hierarchien zu erzeugen. Diese Hierarchien erzielen einen durchschnittlichen Speed-Up von 3,65 verglichen mit FPGA-Lösungen ohne einen Cache und es lässt sich zeigen, dass sie sich sehr robust gegenüber unterschiedlichen Problemgrößen und Zugriffsmustern verhalten.

Authors with CRIS profile

Related research project(s)

How to cite

APA:

Brandner, J. (2026). Optimierte Auslagerung von OpenMP-Code auf FPGAs (Dissertation).

MLA:

Brandner, Julian. Optimierte Auslagerung von OpenMP-Code auf FPGAs. Dissertation, 2026.

BibTeX: Download