Bookshelf
Operating System Facilities for FPGA Accelerator DesignsMasterarbeit von Lukas Wenzel Hasso-Plattner-Institut an der Universität Potsdam | 27. Juni 2019 After decades of rapidly increasing computational performance of CPU-centered platforms, this development has recently reached its saturation. Consequently there is a trend towards alternatives like heterogeneous platforms, which besides CPUs incorporate accelerators such as FPGAs. Nevertheless, FPGA accelerators are only reluctantly targeted by application developers. This thesis identifies a lack of convenient and portable runtime environments as a significant obstacle to their widespread adoption. On traditional platforms the role of runtime environment is played by an operating system which provides resource abstraction and management services. In contrast, on heterogeneous platforms, the operating system development is not as far advanced. Therefore this work proposes a framework to alleviate this need. The framework is focused on flexibility as well as a lightweight implementation and offers application developers a set of data stream based abstraction components. As a hardware software codesign it leverages an existing CPU operating system to minimize the hardware implementation overhead. The entire source code is freely available in a Github repository [38]. This work analyzes the efficiency of the framework components in terms of FPGA resource consumption and performance. Furthermore, the usability of the framework for practical applications is explored by implementing an example accelerator design for tablescan operations. Nach Jahrzehnten rasant wachsender Rechenleistung CPU-basierter Plattformen, stagniert diese Entwicklung seit einigen Jahren. In Reaktion darauf ist das Interesse an Alternativen wie heterogenen Plattformen gestiegen, welche neben CPUs außerdem Beschleuniger wie FPGAs integrieren. Trotzdem werden FPGA Beschleuniger von Anwendungsentwicklern nur langsam angenommen. Diese Arbeit identifiziert das Fehlen komfortabler und portabler Laufzeitumgebungen als ein zentrales Hindernis für deren weite Verbreitung. Auf konventionellen Plattformen wird die Rolle der Laufzeitumgebung durch ein Betriebssystem übernommen, welches Dienste wie Ressourcenabstraktion und -management anbietet. Im Gegensatz dazu ist die Betriebssystementwicklung auf heterogenen Plattformen deutlich weniger fortgeschritten. Daher schlägt diese Arbeit ein Framework vor, um diese Rolle zu ersetzen. Zentrale Designkriterien dieses Frameworks sind Flexibilität in der Anwendung und folglich eine leichtgewichtige und modulare Struktur der angebotenen Ressourcenabstraktionskomponenten. Diese basieren zu großen Teilen auf der Datenstrom Metapher. Als ein Hardware-Software-Kodesign stellt das Framework einen großen Teil der nötigen Funktionalität durch ein bestehendes Betriebssystem auf der CPU bereit, sodass der Implementierungsaufwand in Hardware gering bleibt. Alle Quellen sind in einem Github-Repository frei verfügbar [38]. Die Effizienz der angebotenen Komponenten wird anhand ihrer Nutzung von FPGA Ressourcen sowie ihrer Leistungsfähigkeit analysiert. Desweiteren wird die paraktische Anwendbarkeit des Frameworks durch Implementierung eines beispielhaften Beschleunigerdesigns nachvollzogen. |
||||||||||||||||
|
||||||||||||||||
|