Autor:innen:
Florian Pramme | Ostfalia Hochschule für angewandte Wissenschaften | Germany
Prof. Dr. Christian Siemers | TU Clausthal | Germany
Sprache:
Deutsch
Zielgruppe:
Beginner
Voraussetzungen:
Grundkenntnisse in der C/C++ Entwicklung wünschenswert
Überblick und Zusammenfassungen:
Dieses Seminar soll Forscher und Entwickler aus Wissenschaft und Industrie auf dem Gebiet der FPGAs zusammenbringen, um zukünftige Trends zu diskutieren. In letzter Zeit haben FPGAs nicht nur in Bezug auf die Energieeffizienz, sondern auch in Bezug auf Laufzeiten dank mehrerer Demonstrationen von Architekturen mit herausragender Leistung viel Aufmerksamkeit erregt. Die Anwendungsbereiche reichen von der Datenanalyse bis zum fortgeschrittenen maschinellen Lernen. Die "High-Level-Synthese" (HLS) von Programmiersprachen wie C/Cpp erlaubt die Implementierung von Algorithmen in Hardware und ermöglicht dadurch eine deutlich höhere Dynamik in der Softwareentwicklung im Vergleich zum traditionellen Entwurf mit VHDL oder Verilog. Ziel des Vortrags ist es, den Teilnehmern einen Überblick über die möglichen Software-Architekturen zu geben, die sich für den Einsatz von FPGAs gut eignen. Zum anderen sollen die Teilnehmer in der Lage sein, durch praktische Übungen die Softwareentwicklung mit rekonfigurierbaren Technologien zugänglich zu machen. Wir bieten eine Einführung in den Entwurf von IP-Cores für FPGAs mit C/Cpp-Code und HLS. Die Anforderungen von Softwareentwicklern und Applikationsingenieuren sind dabei besonders wichtig. Darüber hinaus richtet sich der Vortrag an alle, die das Gesamtbild und das Potenzial von Domain Specific Computing und softwaregesteuerter FPGA-Entwicklung verstehen wollen.
Art der Vermittlung:
Seminar und Workshop
Nutzen:
Dem Zuhörer wird eine Methode gezeigt, mit welcher es möglich ist „Hotspots“ in Software für die Echtzeitmodellierung und -simulation in einem FPGA automatisch zu identifizieren, zu extrahieren und zu synthetisieren, um die Software bei geringen Kosten erheblich zu beschleunigen. Die Hauptanwendungen dieser Methode liegen im Automobilbereich, sind jedoch nicht darauf beschränkt. Normalerweise erfordern FPGAs ein sorgfältiges handcodiertes Design in Verilog oder VHDL, da es für das vorgesehene Zeilsystem synthetisierter und effizient sein muss. Dies ist eine schwierige Aufgabe, die nur Experten ausführen können. High-Level-Synthese (HLS) ist eine relativ neue Technologie, um die Kluft zwischen Benutzeralgorithmen und FPGAs zu schließen. Interessant dürfte sein, dass sich die meisten HLS-Designs synthetisieren lassen und dessen Compiler es ermöglichen, vorhandene C/C++ oder SytemC Implementierungen in Verilog- oder VHDL-Quellcode transferieren lassen. Dies ergibt dann eine Darstellung in Register Transfer Logik (RTL). SystemC ist ein IEEE-Standard für Hardware-/Software-Co-Design und Co-Verifikation auf Systemebene und ist daher ideal für Anwendungen welche ohnehin auf C/C++ basieren - wie die meisten Applikationen im Automobilumfeld. Die Hier vorgestellte Methode implementiert eine halbautomatische Synthese von mehrfach interaktiven Schleifen in C/C++ Codes für ein FPGA. Eine mehrfach iterative Schleife ist ein Hotspot in einem numerischen Code, der viele Male wiederholt wird und in dem ein erheblicher Teil der Ausführzeit des Codes verbracht wird. Für viele dieser Codes reicht es aus, nur ihre Hotspots zu beschleunigen, nicht aber den großen Rest des numerischen Codes, um die Gesamtausführungszeiten zu verkürzen. Ein Merkmal der Methode ist, dass der Quellcode verfügbar sein muss, was sie für Open Source-Projekte und Codeentwickler nützlich macht. Als Ergebnis dieser Methode lassen sich numerische Codes signifikant schneller ausführen als mit einem herkömmlichen Prozessorkern von Intel, AMD, IBM oder ARM.