Abgeschlossene Arbeiten 2019

  • Automatische Detektion des längsten Pfades beliebiger CGRAs
    Kategorie: Master-Arbeit
    Bearbeiter: Christoph Spang
    Betreuer: Dennis Wolf

    Ein Coarse Grained Reconfigurable Array (CGRA) ist ein Hardwarebeschleuniger, in dem einzelne Rechenzellen entsprechend eines im voraus definierten Operationsplans (Scheduling) Daten massiv parallel verarbeiten. Die individuelle Auslegung eines CGRAs (u.a. die Selektion der Operationen der einzelnen Rechenzellen, deren Anzahl und Verbindung untereinander) ist generisch und im Einzelfall entscheidend für die Laufzeit einzelner Applikationen.

    Entsprechend mehrerer Beispielapplikationen kann die Komposition eines CGRAs für eine Anwendungsdomäne optimiert werden. Die Erzeugung einer nachweislich optimalen Komposition ist dabei aufgrund der Komplexität nicht mehr möglich. In solchen Fällen werden heuristische Optimierungsverfahren genutzt. Für diese Verfahren liegen zwei der drei relevanten Qualitätsmaße in der möglichen Taktfrequenz und den benötigten Ressourcen einer CGRA Instanz. Da ein Syntheselauf zu deren Bestimmung im Stundenbereich liegen kann, muss eine Schätzung genutzt werden.

    Im Rahmen dieser Arbeit soll ein Verfahren implementiert werden, das automatisch den längsten Pfad beliebiger CGRAs schätzt. Wird der längste Pfad richtig bestimmt, kann mit diesen Informationen die Genauigkeit bereits bestehender Schätzfunktionen des längsten Pfades verbessert werden.

  • Optimierung der CGRA Operatorbilbliothek
    Kategorie: Master-Arbeit
    Bearbeiter: Aljoscha Mazur
    Betreuer: Dennis Wolf

    Ein Coarse Grained Reconfigurable Array (CGRA) ist ein Hardwarebeschleuniger, in dem einzelne Rechenzellen entsprechend eines im voraus definierten Operationsplans (Scheduling) Daten massiv parallel verarbeiten. Auf Hardwareebene ist für die Performance des CGRAs neben der strukturellen Auslegung der Rechenzellen, vor allem die genutzte Operatorbibliothek entscheidend. Diese ist das Herzstück zur Generierung der ALUs aller Rechenzellen in Verilog.

    Der Generator sieht vor, dass jede Operation als eigenständiges Modul instantiiert wird. Dies hat Vorteile bei der Parallelisierung von Anwendungen, benötigt aber unverhältnismäßig viel Ressourcen. Operationen wie Addition und Subtraktion oder Division und Modulo können zusammengeführt werden und reduzieren folglich die benötigten Hardware-Ressourcen auf fast die Hälfte. Außerdem soll die Operation MAC implementiert werden.

    Ziel dieser Arbeit ist Optimierung der Bibliothek durch das Zusammenführen von Operationen. Dabei gilt es, sinnvolle Zusammenführung zu finden, diese umzusetzen und in das Backend ein zu pflegen. Abschließend soll eine ausführliche Evaluation durchgeführt werden.

  • Implementierung eines Graphgenerators für die AMIDAR Instruction Set Architecture
    Kategorie: Master-Arbeit
    Bearbeiter: Hendrik Schöffmann
    Betreuer: Alexander Schwarz

    Derzeit wird am Fachgebiet Rechnersysteme ein Java-Prozessor auf Basis des AMIDAR-Modells implementiert, der aus mehreren unabhängigen Funktionseinheiten (FUs) besteht und verschiedene Möglichkeiten der dynamischen Anpassung an die Software bereitstellt. Zu diesen Möglichkeiten zählt insbesondere das integrierte Coarse Grained Reconfigurable Array (CGRA) als automatisch genutzter Hardwarebeschleuniger. Der Prozessor führt bisher Java Bytecode in fast unveränderter Form in Hardware aus. Allerdings ist Java Bytecode nicht für die Ausführung in Hardware konzipiert, weshalb das Potenzial des AMIDAR-Modells damit nur schwer voll auszuschöpfen ist.

    Ein vielversprechender Ansatz für eine neue Instruction Set Architecture (ISA), die speziell auf das AMIDAR-Konzept zugschnitten ist, greift Ideen von Datenflussmaschinen auf. Der Ansatz erlaubt es, Datenübertragungen zwischen Operationen direkt in den Instruktionen zu definieren. Um das CGRA weiter nutzen zu können, ist daher eine Anpassung des Syntheseverfahrens an die neue ISA notwendig.

    Im Rahmen dieser Arbeit soll ein Graphgenerator entwickelt werden, der als Eingabe Code der neuen ISA nutzt. Die erzeugten Graphen dienen als Eingabe für den vorhandenen CGRA Scheduler. Dadurch kann die Hardware-Synthese auch mit der neuen ISA genutzt werden.

  • Untersuchung alternativer FU-Synchronisationsmechanismen
    Kategorie: Bachelor-Arbeit
    Bearbeiter: Philipp Müller
    Betreuer: Alexander Schwarz

    Derzeit wird am Fachgebiet Rechnersysteme an AMIDAR-Prozessoren geforscht, die aus mehreren unabhängigen Funktionseinheiten aufgebaut sind und verschiedene Möglichkeiten der Rekonfiguration bereitstellen. Bisher lag der Fokus auf Ausführung von Java Bytecode, jedoch eignet sich das Grundprinzip für verschiedenste Instruktionssätze. Zudem werden bisher Tags für die Zuordnung der Daten zu den Operationen der Funktionseinheiten benutzt. Über diese Zuordnung erfolgt die Synchronisation zwischen den Funktionseinheiten.

    Zurzeit wird die Idee verfolgt, einen speziell auf das AMIDAR-Konzept zugeschnittenen Instruktionssatz zu entwickeln, der einige Gedanken von Datenflussarchitekturen aufgreift. Ein neuer Instruktionssatz eröffnet die Möglichkeit, andere Mechanismen zu verwenden, um die Daten den Operationen der Funktionseinheiten zuzuordnen. Hierzu gibt es bereits zwei Ideen.

    In dieser Arbeit soll die Anwendbarkeit der Mechanismen untersucht werden. Hierzu sollen aus Java-Methoden generierte Graphen hinsichtlich bestimmter Muster analysiert werden, die eine solche Synchronisation überhaupt nötig machen. Darüber hinaus sollen offene Fragen zu den Mechanismen durch weitergehende Analyse der Graphen geklärt werden.

  • Anpassung eines CGRAs an machine-learning Anwendungen
    Kategorie: Master-Arbeit
    Bearbeiter: Marek Völker
    Betreuer: Changgong Li

    Coarse Grained Reconfigurable Arrays (CGRA) sind Schaltungen, die zumeist als Hardwarebeschleuniger eingesetzt werden. Einzelne Rechenzellen verarbeiten entsprechend eines im voraus definierten Operationsplans (Scheduling) Daten massiv parallel.

    Ziel der Arbeit ist die Anpassung der bestehenden CGRA-Architektur an machine-learning Anwendungen. Bei diesen Anwendungen genügen häufig Festkommadarstellungen mit 32 oder 16 Bit Genauigkeit für die Berechnung. Daher ist es erforderlich entsprechende Rechenwerke bereitzustellen und gegebenenfalls zwei 16-bit Operationen zu einer kombinierten Operation zusammenzufassen. Je nach Ausgangsproblem kann es nötig werden swap-Operationen bereitzustellen.

Drucken | Impressum | Datenschutzerklärung | Sitemap | Suche | Kontakt
Zum SeitenanfangZum Seitenanfang