• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Lehrstuhl für Programmiersysteme
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
    1. Friedrich-Alexander-Universität
    2. Technische Fakultät
    3. Department Informatik

    Lehrstuhl für Programmiersysteme

    Menu Menu schließen
    • Lehrstuhl
      • Mitarbeitende
      • Stellenangebote
      ↓ Lehrstuhl
    • Forschung
      • Forschungsprojekte
      • Publikationen
      • Jahresberichte
      ↓ Forschung
    • Lehre
      • Lehrveranstaltungen
      • Organisatorisches
      • Examensarbeiten
      ↓ Lehre
    1. Startseite
    2. Forschung
    3. Forschungsprojekte
    4. ORKA

    ORKA

    Bereichsnavigation: Forschung
    • Forschungsprojekte
      • AutoCompTest
      • ORKA
      • SoftWater
      • V&ViP
    • Publikationen
    • Jahresberichte

    ORKA



    Drittmittelfinanzierte Gruppenförderung – Teilprojekt
    Mittelgeber: Bundesministerium für Bildung und Forschung (BMBF)
    Projektleitung: Michael Philippsen
    Projektstart: 01.11.2017

    Links:

    • Gesamtprojekt

    Florian Mayer

    Florian Mayer, M. Sc.

    Wissenschaftler von 2017 bis 2024

    Department Informatik (INF)
    Lehrstuhl für Informatik 2 (Programmiersysteme)

    • E-Mail: florian.andrefranc.mayer@fau.de
    • Webseite: https://www.ps.tf.fau.de/person/mayer/
    • ORCID: Seite von Florian Mayer

    Julian Brandner

    Julian Brandner, M. Sc.

    Department Informatik (INF)
    Lehrstuhl für Informatik 2 (Programmiersysteme)

    Raum: Raum 05.156
    Martensstr. 3
    91058 Erlangen
    • Telefon: +49 9131 85-27923
    • E-Mail: julian.brandner@fau.de
    • Webseite: https://www.ps.tf.fau.de/person/brandner/
    • ORCID: Seite von Julian Brandner

    Sprechzeiten

    n.V. per E-Mail

    OpenMP für rekonfigurierbare heterogene Architekturen

    High-Performance Computing (HPC) ist ein wichtiger Bestandteil für die europäische Innovationskapazität und wird auch als ein Baustein bei der Digitalisierung der europäischen Industrie gesehen. Rekonfigurierbare Technologien wie Field Programmable Gate  Array (FPGA) Module gewinnen hier wegen ihrer Energieeffizienz, Performance und ihrer Flexibilität immer größere Bedeutung.
    Es wird außerdem zunehmend auf HPC-Systeme mit heterogenen Architekturen gesetzt, auch auf solche mit FPGA-Beschleunigern. Die große Flexibilität dieser FPGAs ermöglicht es, dass eine große Klasse von HPC-Applikationen mit FPGAs realisiert werden kann. Allerdings ist deren Programmierung bisher vorwiegend Spezialisten vorbehalten und sehr zeitaufwendig, wodurch deren Verwendung in Bereichen des wissenschaftlichen Höchstleistungsrechnens derzeit noch selten ist.
    Im HPC-Umfeld gibt es verschiedenste Programmiermodelle für heterogene Rechnersysteme mit einigen Typen von Beschleunigern. Gängige Programmiermodelle sind zum Beispiel OpenCL (opencl.org), OpenACC (openacc.org) und OpenMP (OpenMP.org). Eine produktive Verwendbarkeit dieser Standards für FPGAs ist heute jedoch noch nicht gegeben.

    Ziele des ORKA Projektes sind:

    1. Nutzung des OpenMP-4.0-Standards als Programmiermodell, um ohne Spezialkenntnisse heterogene Rechnerplattformen mit FPGAs als rekonfigurierbare Architekturen durch portable Implementierungen eine breitere Community im HPC-Umfeld zu erschließen.
    2. Entwurf und Implementierung eines Source-to-Source-Frameworks, welches C/C++-Code mit OpenMP-4.0-Direktiven in ein ausführbares Programm transformiert, das die Host-CPUs und FPGAs nutzt.
    3. Nutzung und Erweiterung existierender Lösungen von Teilproblemen für die optimale Abbildung von Algorithmen auf heterogene Systeme und FPGA-Hardware.
    4. Erforschung neuer (ggf. heuristischer) Methoden zur Optimierung von Programmen für inhärent parallele Architekturen.

    Im Jahr 2018 wurden folgende wesentlichen Beiträge geleistet:
    • Entwicklung eines source-to-source Übersetzerprototypen für die Umschreibung von OpenMP-C-Quellcode (vgl. Ziel 2).
    • Entwicklung eines HLS-Übersetzerprototypen, der in der Lage ist, C-Code in Hardware zu übersetzen. Dieser Prototyp bildet die Basis für die Ziele 3 und 4.
    • Entwicklung mehrerer experimenteller FPGA-Infrastrukturen für die Ausführung von Beschleunigerkernen (nötig für die Ziele 1 und 2).
    Im Jahr 2019 wurden folgende wesentlichen Beiträge geleistet:
    • Veröffentlichung zweier Papiere: "OpenMP on FPGAs - A Survey" und "OpenMP to FPGA Offloading Prototype using OpenCL SDK".
    • Erweiterung des source-to-source Übersetzerprototypen um OpenMP-Target-Outlining (incl. Smoke-Tests).
    • Fertigstellung des technischen Durchstichs für den ORKA-HPC-Prototypen (OpenMP-zu-FPGA-Übersetzer).
    • Benchmark-Suite für die quantitative Leistungsanalyse von ORKA-HPC.
    • Erweiterung des source-to-source Übersetzerprototypen um das Genom für die genetische Optimierung der High-Level-Synthese durch Einstellen von HLS-Pragmas.
    • Prototypische Erweiterung des TaPaSCo-Composers um ein (optionales) automatisches Einfügen von Hardware-Synchronisationsprimitiven in TaPaSCo-Systeme.
    Im Jahr 2020 wurden folgende wesentlichen Beiträge geleistet:
    • Weiterentwicklung der Genetischen Optimierung.
    • Aufbau eines Docker-Containers für zuverlässige Reproduzierbarkeit der Ergebnisse.
    • Integration der Softwarekomponenten der Projektpartner.
    • Plugin-Architektur für Low-Level-Platformen.
    • Implementation und Integration zweier LLP-Plugin-Komponenten.
    • Erweiterung des akzeptierten OpenMP-Sprachstandards.
    • Erweiterung der Test-Suite.
    Im Jahr 2021 wurden folgende wesentlichen Beiträge geleistet:
    • Erweiterung der Benchmark-Suite.
    • Erweiterung der Test-Infrastruktur.
    • Erfolgreicher Projektabschluss mit Live-Demo für den Projektträger.
    • Evaluation des Projekts.
    • Veröffentlichung der Publikation "ORKA-HPC - Practical OpenMP for FPGAs".
    • Veröffentlichung des Quell-Codes und der Disseminationsumgebung auf Github.
    • Erweiterung des akzeptierten OpenMP-Sprachstandards um neue OpenMP-Klauseln für die Steuerung der FPGA-bezogenen Transformationen.
    • Weiterentwicklung der Genetischen Optimierung.
    • Untersuchung des Verhältnisses von HLS-Leistungsschätzwerten und tatsächlichen Leistungskennzahlen.
    • Aufbau eines linearen Regressionsmodells für die Vorhersage der tatsächlichen Leistungskennzahlen auf Basis der HLS-Schätzwerte.
    • Entwicklung von Infrastruktur für die Übersetzung von OpenMP-Reduktionsklauseln.
    • Erweiterung um die Übersetzung vom OpenMP-Pragma `parallel for` in ein paralleles FPGA-System.
    Im Jahr 2022 wurden folgende wesentlichen Beiträge geleistet:
    • Generierung und Veröffentlichung eines Datensatzes zur Untersuchung des Verhältnisses von HLS-Ressourcenschätzwerten und tatsächlichen Leistungskennzahlen.
    • Erstellung und vergleichende Evaluierung verschiedener Regressionsmodelle zur Vorhersage der tatsächlichen Systemperformanz aus frühen Schätzwerten.
    • Analyse und Bewertung der durch die HLS generierten Ressourcenabschätzungen.
    • Veröffentlichung der Publikation “Reducing OpenMP to FPGA Round-trip Times with Predictive Modelling”.
    • Entwicklung eines auf dem Polyeder-Modell beruhenden Verfahrens zur Detektion und Entfernung von redundanten Lese-Operationen in FPGA-Stencil-Codes.
    • Implementierung dieses Verfahrens in ORKA-HPC.
    • Quantitative Evaluation der Stärken dieses Verfahrens und Ermittlung der Voraussetzungen, unter denen das Verfahren anwendbar ist.
    • Veröffentlichung der Publikation “Employing Polyhedral Methods to Reduce Data Movement in FPGA Stencil Codes”.
    Im Jahr 2023 wurden folgende wesentlichen Beiträge geleistet:
    • Entwicklung und Implementierung eines Optimierungsverfahrens von kanonischen Schleifenschachteln (z.B. aus OpenMP-Target-Regionen) für die FPGA-Hardware-Erzeugung mittels HLS. Der Kern des Verfahrens ist eine auf dem Polyeder-Modell basierende Schleifenrestrukturierung, welche mithilfe von Schleifen-Kachelungen, Fließbandverarbeitung, und Port-Verbreiterung unnötige Datentransfers vom/zum FPGA-Board-RAM vermeidet, die Anzahl der parallel aktiven Schaltkreise erhöht, den Datendurchsatz zum FPGA-Board-RAM maximiert und Schreib/Lese-Latenzen versteckt.
    • Quantitative Evaluation der Stärken und Anwendungsfelder dieses Optimierungsverfahrens mithilfe von ORKA-HPC.
    • Veröffentlichung des Verfahrens im Konferenz-Papier “Employing polyhedral methods to optimize stencils on FPGAs with stencil-specific caches, data reuse, and wide data bursts”.
    • Veröffentlichung eines Reproduktionspakets für das Optimierungsverfahrens.
    • Vorstellung des Verfahrens auf der Tagung “14th International Workshop on Polyhedral Compilation Techniques” im Rahmen eines halbstündigen Vortrags.
    • Entwicklung eines Verfahrens für die vollautomatische Integration von Multi-Purpose-Caches in aus OpenMP generierte FPGA-Lösungen.
    • Evaluation von Multi-Purpose-Caches in Kombination mit HLS-generierten Hardwareblöcken.
    • Veröffentlichung der Publikation “Multipurpose Cacheing to Accelerate OpenMP Target Regions on FPGAs” (Best Paper Award).
    Im Jahr 2024 wurden folgende wesentlichen Beiträge geleistet:
    • Anpassung mehrerer bereits publizierter Cacheing-Ansätze auf ausgelagerte OpenMP-Codes und Einbau der Verfahren in ORKA-HPC
    • Entwicklung und Evaluation neuartiger mehrstufiger Caches für HLS-Kernel 
    • Veröffentlichung der Ergebnisse in der Publikation "Multilayer Multipurpose Caches for OpenMP Target Regions on FPGAs" und Vorstellung der Arbeit bei der IWOMP 2024 in Perth
    •  

    Publikationen

    • Mayer F., Knaust M., Philippsen M.:
      OpenMP on FPGAs - A Survey
      15th International Workshop on OpenMP (IWOMP 2019) (Auckland, 11.09.2019 - 13.09.2019)
      In: Xing Fan, Bronis R. de Supinski, Oliver Sinnen, Nasser Giacaman (Hrsg.): OpenMP: Conquering the Full Hardware Spectrum - Proceedings of the 15th International Workshop on OpenMP (IWOMP 2019), Cham: 2019
      DOI: 10.1007/978-3-030-28596-8_7
      URL: https://link.springer.com/content/pdf/10.1007/978-3-030-28596-8_7.pdf
      BibTeX: Download
    • Knaust M., Mayer F., Steinke T.:
      OpenMP to FPGA Offloading Prototype using OpenCL SDK
      IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) (Rio de Janeiro, Brazil, 20.05.2019 - 24.05.2019)
      In: IEEE (Hrsg.): 2019 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW) 2019
      DOI: 10.1109/IPDPSW.2019.00072
      URL: https://ieeexplore.ieee.org/abstract/document/8778393
      BibTeX: Download
    • Mayer F., Brandner J., Hellmann M., Schwarzer J., Philippsen M.:
      The ORKA-HPC Compiler — Practical OpenMP for FPGAs
      34th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2021) (Newark, DE, 13.10.2021 - 14.10.2021)
      In: Xiaoming Li, Sunita Chandrasekaran (Hrsg.): Proceedings of the 34th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2021), Cham: 2022
      DOI: 10.1007/978-3-030-99372-6
      URL: https://lcpc2021.github.io/pre_workshop_papers/Mayer_lcpc21.pdf
      BibTeX: Download
    • Brandner J., Mayer F., Philippsen M.:
      Reducing OpenMP to FPGA Round-trip Times with Predictive Modelling [Data set]
      Zenodo (2022)
      DOI: 10.5281/zenodo.7534795
      BibTeX: Download
    • Mayer F., Brandner J., Philippsen M.:
      Employing Polyhedral Methods to Reduce Data Movement in FPGA Stencil Codes
      Languages and Compilers for Parallel Computing (LCPC 2022) (Chicago, IL, 12.10.2022 - 14.10.2022)
      In: Charith Mendis, Lawrence Rauchwerger (Hrsg.): Proc. of the 35rd Intl. Workshop on Languages and Compilers for Parallel Computing (LCPC 2022), Cham: 2023
      DOI: 10.1007/978-3-031-31445-2_4
      BibTeX: Download

    Department Informatik
    Lehrstuhl für Programmiersysteme (Informatik 2)

    Martensstraße 3
    91058 Erlangen
    • Interna
    • Impressum
    • Datenschutz
    • Barrierefreiheit
    • Facebook
    • RSS Feed
    • Twitter
    • Xing
    Nach oben