Thesis Topics / Themen Abschlussarbeiten
Mixed-Darstellungen für ternäre CPU
Art der Arbeit:
Studien-/Bachelor-/Diplom-/Masterarbeit
Betreuer:
Fey, Dietmar
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Email: dietmar.fey@fau.de
Beschreibung der Arbeit:
Ein Kernproblem in der Digitalelektronik sind entstehende Überträge bei der Addition. Werden beispielsweise 11111 + 00001 addiert, so setzt der Übertrag von der letzten Stelle bis zur vordersten Stelle fort. Um dieses Problem zu umgehen, werden sogenannte redundante Zahlensysteme verwendet, mit denen sich eine Zahl durch mehrere Bitfolgen darstellen lässt. Am Lehrstuhl wurde deshalb ein neuer Prozessor auf RISC-V Basis entworfen, der solche redundanten Zahlendarstellungen nutzt und deswegen eine Beschleunigung erzielen kann.
Leider bieten genannte Zahlensysteme nicht nur Vorteile. Zur Abarbeitung von Sprüngen beispielsweise, kann die Nutzung o.g. Zahlendarstellung einen Zusatzaufwand bedeuten. Aus diesem Grund soll in dieser Arbeit ein hybrides Vorgehen analysiert werden. Rechenintensive Datenpfade sind mit redundanter Arithmetik zu analysieren, Kontrollpfade in klassischer Arithmetik. Die Architekturentwicklung erfolgt mittels abstrakter Beschreibungssprachen (C/C++/SystemC).
Konzeption: 40%
Architekturentwicklung: 40%
Simulation / Benchmarking: 20%
DL Beschleuniger mit ternären Datenpfaden
Art der Arbeit:
Studien-/Bachelor-/Diplom-/Masterarbeit
Betreuer:
Fey, Dietmar
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
E-Mail: dietmar.fey@fau.de
Holzinger, Philipp
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Email: philipp.holzinger@fau.de
Beschreibung der Arbeit:
Ein Kernproblem in der Digitalelektronik sind entstehende Überträge bei der Addition. Werden beispielsweise 11111 + 00001 addiert, so setzt der Übertrag von der letzten Stelle bis zur vordersten Stelle fort. Um dieses Problem zu umgehen, werden sogenannte redundante Zahlensysteme verwendet, mit denen sich eine Zahl durch mehrere Bitfolgen darstellen lässt. Am Lehrstuhl wurde deshalb ein neuer Prozessor auf RISC-V Basis entworfen, der solche redundanten Zahlendarstellungen nutzt und deswegen eine Beschleunigung erzielen kann.
Die genannten Konzepte lassen sich jedoch nicht nur auf komplette Prozessoren, sondern auch auf Beschleunigerkerne selbst, beispielsweise für die schnelle Inferenz neuronale Netze anwenden. In dieser Abschlussarbeit soll ein Beschleunigerkern in einer abstrakten Beschreibungssprache (SystemC) mit ternären Datenpfaden entworfen werden.
Konzeption: 30%
Programmierung: 50%
Evaluation: 20%
Untersuchung des NEC Aurora TSUBASA Vektorprozessors
Art der Arbeit:
Master Thesis
Betreuer:
Fey, Dietmar
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Email: dietmar.fey@fau.de
Beschreibung der Arbeit:
In der Arbeit soll das Performance- und Energieverhalten der neuen NEC Aurora TSUBASA Architektur (https://www.nec.com/en/global/solutions/hpc/sx/vector_engine.html) mit Hilfe verschiedener, zum Teil während der Arbeit entwickelter, Benchmarks untersucht werden.
Empfohlene Vorraussetzungen: Gute Linux- und C-Kenntnisse, Aufbau von Rechnerarchitekturen (z.B. VL GRa oder RA), Erfahrung mit Benchmarking (z.B. RA-RÜ, PTfS, SoCuPra)
Schlagwörter:
Performance, Modeling, NEC, TSUBASA
Peripheral Circuitry Design for ReRAM (Resistive Random Access Memory)
Type of work:
Master’s thesis
Supervisor:
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Email: johnreuben.prabahar@fau.de
Description of the thesis:
Resistive RAMs are a class of emerging Non-Volatile Memories (NVMs) which store data as resistance. Under voltage/current stress, the resistance can be switched between a Low Resistance State (LRS) and a High Resistance State (HRS) . The word ‘memristor’ is also used by researchers to refer to a ReRAM device since such a device is basically a ‘resistor’ with a ‘memory’. ReRAM devices are arranged in rows and columsn to form memory arrays and CMOS peripheral circuits are needed to read and write into them. ReRAM technology faces some challenges like variability i.e. the resistance to which the device is programmed varies from cycle-to-cycle. This complicates the WRITE and READ process. In this work, peripheral circuits need to be designed for the ReRAM array. This includes design of variability-aware READ and WRITE circuits. Another challenge is the area- the peripheral circuits occupy much area when compared to the area occupied by the memory arrray. Design of compact peripheral circuit (especially Sense amplifier) is a very much needed. Finally, the peripheral circuits must be energy efficient.
Work estimate:
30% Conception
40% Circuit design (Analog and Mixed signal)
40% Simulation in Cadence Virtuoso.
Reference:
- A. Levisse et al., „Write Termination Circuits for RRAM: A Holistic Approach From Technology to Application Considerations,“ in IEEE Access, vol. 8, pp. 109297-109308, 2020,
- X. Zhang, B.-K. An, and T. T.-H. Kim, “A robust time-based multi-level sensing circuit for resistive memory,” IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 70, no. 1, 340–352, 2023.
In-memory Computing in ReRAM (Resistive Random Access Memory)
Type of work: Master‘s thesis
Supervisor:
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Email: johnreuben.prabahar@fau.de
Description of the thesis:
Resistive RAMs are a class of emerging Non-Volatile Memories (NVMs) which store data as resistance. Under voltage/current stress, the resistance can be switched between a Low Resistance State (LRS) and a High Resistance State (HRS) . The word ‘memristor’ is also used by researchers to refer to a ReRAM device since such a device is basically a ‘resistor’ with a ‘memory’. The memory wall (von Neuman Bottleneck) faced by computer architects necessitated a paradigm shift in the way data is processed. At the moment, there is an increasing trend to move processing to the location of data i.e. in-memory computing. The term ‘in-memory computing’ is used to
refer to any effort to process data at the residence of data (i.e. in the ReRAM array) without moving them to a separate processing unit. Simple tasks like Addition and Matrix Vector multiplication have been performed in memory. In this project, we will try to implement new logic gates (e.g. XOR gate) completely in the memory or partially (a part in memory and a part in the the peripheral circuits of the memory array). Another challenge is that the peripheral circuits needed for Matrix vector multiplication like ADC/DAC occupy huge area when compared the the ReRAM array. Smart design techniques are needed to re-design the peripheral circuits to be suitable for in-memory computing.
Work estimate:
30% Conception
40% Circuit design (Analog and Mixed signal)
40% Simulation in Cadence Virtuoso.
Reference:
- A. Amirsoleimani, F. Alibart, V. Yon, J. Xu, M. R. Pazhouhandeh, S. Ecoffey, Y. Beilliard, R. Genov, and D. Drouin, “In-memory vector-matrix multiplication in monolithic complementary metal–oxide–semiconductor-memristor integrated circuits: Design choices, challenges, and perspectives,” Advanced Intelligent Systems, vol. 2, no. 11, p. 2000115, 2020.
- John Reuben and S. Pechmann, “Accelerated addition in resistive ram array using parallel-friendly majority gates,” IEEETransactions on Very Large Scale Integration (VLSI) Systems, vol. 29, no. 6, pp. 1108–1121, 2021
Implementierung einer Buffet-Speicherhierarchie für KI-Hardwarebeschleuniger
Art der Arbeit:
Bachelorarbeit
Betreuer:
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Email: thomas.schloegl@fau.de
Beschreibung der Arbeit:
Speicherhierarchien sind notwendig, um die Geschwindigkeitsdifferenz zwischen dem langsamen Hauptspeicher und den schnelleren Rechenkernen zu überbrücken und um dadurch eine akzeptable Performanz im Gesamtsystem zu erreichen. Für General-Purpose-Prozessoren gibt es hierfür das Konzept der Caches, welche implizit und ohne Steuerung des Programmierers Daten puffern. Bei modernen Deep-Learning-Beschleunigern ist, im Gegensatz zu GP-Prozessoren, vor Beginn der Verarbeitung schon bekannt, zu welchem Zeitpunkt Datenpakete an den jeweiligen Beschleunigungskernen benötigt werden, wodurch perfektes Pufferverhalten/Prefetching von Daten ermöglicht werden kann. Nvidia stellte in Zusammenarbeit mit dem MIT und der Universität von Illinois eine solche Pufferstruktur namens „Buffets“[1] vor, welche es dem Programmierer ermöglicht, explizit die in dem Zwischenpuffer enthaltenen Daten zu kontrollieren. In dieser Abschlussarbeit soll ein solcher „Buffet“-Zwischenpuffer mit AXI-Interfaces in VHDL implementiert, auf funktionale Korrektheit getestet und analysiert werden.
[1] Buffets: An Efficient and Composable Storage Idiom for Explicit Decoupled Data Orchestration.
Pellauer, Michael and Shao, Yakun Sophia and Clemons, Jason and Crago, Neal and Hegde, Kartik and Venkatesan, Rangharajan and Keckler, Stephen W and Fletcher, Christopher W and Emer, Joel. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. Pages 137-151. 2019. ACM.
20% Konzeption
60% Hardwareentwurf
20% Benchmarking
Implementierung von Posit-Arithmetik als neue Darstellung für Gleitkommazahlen in neuronalen Netzen
Art der Arbeit:
Bachelorarbeit
Betreuer:
Lehrstuhl für Informatik 3 (Rechnerarchitektur)
Email: thomas.schloegl@fau.de
Beschreibung der Arbeit:
Standard IEEE-754 Gleitkomma-Arithmetik hat Probleme bei der genauen Darstellung von Zahlen, vor allem bei kleineren Bitbreiten, und verfügt über einen großen Hardware-Aufwand.
Posits, eingeführt von John L. Gustafson im Jahr 2017, bauen auf dieser Darstellung auf und versuchen dadurch genauere Berechnungen bei verringertem Hardwareaufwand zu erreichen.
Insbesondere die Implementierung von Neuronalen Netzen scheint von dieser neuen Darstellung zu profitieren, da acht Bit-Posits schon eine gute Genauigkeit liefern und z.B. die Implementierung der Sigmoid-Funktion extrem vereinfacht wird (Höchstes Bit wird zuerst invertiert und die gesamte Darstellung wird dann um zwei Stellen nach rechts geschoben. Dies ist in einem Taktzyklus möglich, eine IEEE-754 Floating-Point Implementierung benötigt für die selbe Operation dutzende Takte.). Bis dato gibt es noch keine kommerziell verfügbare Hardwareimplementierung, welche Posits unterstützen. Bekannte Hardwarehersteller wie Intel haben aber Interesse an einer Adaption bekundet.
Ziel dieser Arbeit ist es, grundlegende Operationen in Posit-Arithmetik zu implementieren, diese in einen FPGA-Beschleuniger für neuronale Netze zu integrieren und zu evaluieren.
30% Konzeption
50% Implementierung
20% Benchmarking