BMBF Project:
EU Seventh Framework Programme
Finished Projects:
Adaptive Rechensysteme und ihre Entwurfswerkzeuge
Adaptive Rechensysteme kombinieren konventionelle software-programmierbare
Prozessoren mit anwendungsspezifischen Hardware-Beschleunigern, die mit Hilfe
von rekonfigurierbaren Logikbausteinen für jedes Anwendungsprogramm passend
synthetisiert werden. Die rechenintensiven Teile eines Programms werden dabei
erkannt und auf maßgeschneiderte Beschleuniger ausgelagert, wodurch die
Rechenleistung erhöht und Energie gespart werden kann.
Die Erforschung von Methoden und Werkzeugen, um aus nur einer Hochsprache
heraus konventionelle Prozessoren zu programmieren und adaptierte
Rechenbeschleuniger zu synthetisieren und zu betreiben, stellt sich daher als
aktuelles Forschungsgebiet dar. Ziel ist ein praktisch verwendbarer Compiler,
der die Sprache C nicht als Hilfsmittel für Hardware-Beschreibungen
einsetzt, sondern die Semantik eines auch komplexeren C-Programmes mit
verschachtelten Schleifen nach Analyse ihres Laufzeitverhaltens in eine
feingranulare Hardware-Software-Anwendung aufteilt.
Im Vorgängerprojekt der Antragsteller wurde mit dem Compiler COMRADE ein
Werkzeugfluss erarbeitet, der C-Programme automatisch auf beide Arten von
Recheneinheiten aufteilt und entsprechende Rechenbeschleuniger erzeugt. In
diesem Nachfolgeprojekt soll der Schwerpunkt nun auf der Optimierung der
erzeugten Beschleuniger liegen.
Dabei sollen sowohl klassische Compiler-Optimierungsverfahren mit einer
besonderen Eignung für die Generierung von Hardware-Beschleunigern untersucht
werden als auch neue Techniken zum Einsatz kommen. Diese haben als Ziel eine
Verbesserung des Grades an Parallelausführung auf Instruktionsebene sowie eine
Erhöhung der Tiefe spekulativer Ausführung, die nur bei anwendungsspezifischen
Hardware-Beschleunigern praktikabel ist.
Automatische Erzeugung von Hardware-Rechenbeschleunigern und Optimierung für Algorithmenbeschreibungen in geometrischer Algebra
Sehr viele Fragestellungen aus Naturwissenschaft und Technik haben
einen geometrischen Hintergrund. Hat man eine geometrische Lösung
eines Problems gefunden, muss man üblicherweise unterschiedlichste
mathematische Vorgehensweisen zu Rate ziehen, um die einzelnen
Schritte in mathematische Formeln zu fassen. Mit der geometrischen
Algebra (GA) steht nun eine übergreifende Mathematik zur Verfügung, die es
erlaubt, sehr direkt aus der geometrischen Anschauung heraus zu
rechnen. So kann in geometrischer Algebra beispielsweise mit
geometrischen Objekten wie Kugeln, Ebenen und Kreisen sowie mit
geometrischen Operationen wie Schnitten von verschiedenen Objekten
oder Transformationen sehr einfach gerechnet werden.
Allerdings ist die eigentliche Auswertung (also die Berechnung mit
Hilfe der Basisoperationen) von durch geometrische Algebra
beschriebenen Algorithmen sehr rechenaufwendig. Diese Eigenschaft
hat in der Vergangenheit dazu geführt, dass die GA praktisch nicht
einsetzbar war, da eine konventionelle Beschreibung zwar komplexer,
aber schneller zu evaluieren war. Nachdem nun die
Proof-of-Concept-Implementierung eines Hardware-Beschleunigers für
einen speziellen GA-Algorithmus eine Geschwindigkeitssteigerung um
den Faktor 185x gegenüber einem aktuellen konventionellen Prozessor
ergeben hat, soll im Rahmen des beantragten Projekts eine
weitergehende Verfeinerung der Vorgehensweise nun die
automatische Erzeugung solch optimierter Recheneinheiten für
beliebige GA-Algorithmen auf Basis rekonfigurierbarer Schaltungen
(FPGAs) ermöglichen.