29
Themen für Projekt-, Bachelor- und Master-Arbeiten

Themen für Projekt-, Bachelor- und Master-Arbeiten · Themen für Projekt-, Bachelor- ... 3 a 6 a 2 a 9 a 5 a 1 a 7 a 8 cluster 2 cluster 1 a 4 a 3 a 6 a 2 a 9 a 5 a 1 a 7 a 8 cluster

  • Upload
    buitruc

  • View
    223

  • Download
    1

Embed Size (px)

Citation preview

Themen für Projekt-, Bachelor-und Master-Arbeiten

Implementation and Analysis of a Sequential Approximate Multiplier

During the design of embedded systems, many design decisions

app+

Cin

Cout

app+

Cin

Cout

Shift Reg Shift Reg Shift Reg

n2

n2

n2

n2 n

n

n2

n2

n2n2

n2n2

1 1n2

n2

a[n − 1 : n2 ] a[n

2 − 1 : 0] b[n − 1 : 0]

m[2n − 1 : n + n2 ] m[n + n

2 − 1 : n] m[n − 1 : 0]

have to be made to trade off between the conflicting objectivesof minimizing power consumption and maximizing performance.Approximate computing allows to optimize both objectives, for thesake of accuracy. This means that an error in computation maybe tolerated as long as it is small enough to maintain a feasibleoperation of the system.

In this thesis, the principle of approximate computing shall be ap-plied to the design of a high-performance approximate multiplierunit implemented in an FPGA. The trade off between accuracyand performance will be investigated, varying the amount of accurately and approximately evaluated bits. Differentexperiments to compare gains and overheads are going to be conducted. Thus, conventional arithmetic structureswill be modified to perform approximate operations, aiming to achieve said comparisons.

Prerequisites: Programming skills in VHDL (C and Matlab preferred but not essential)Type of Work: Theory (50%), Implementation (50%)Supervisor: Jorge Echavarria ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Genauigkeitsanalyse unscharfer Schleifen

Schleifen dominieren die Laufzeit der meisten Anwendungen in wich-tigen Domänen wie dem wissenschaftlen Rechnen und der Signal-verarbeitung, weshalb sie erhebliches Potential für Optimierungenbieten. Besonders eingebettete Systeme profitieren davon, weil siehäufig strengen Zeit- und Energieanforderungen unterliegen.Ein Werkzeug, die Erfüllung dieser Anforderungen zu erleichtern, istdas unscharfe Rechnen (engl. Approximate Computing). Unter un-scharfem Rechnen versteht man den Trade-Off zwischen Genauig-keit und Ausführungszeit (und somit auch Energie) – zum Beispielbricht man eine Division bereits nach wenigen Schritten vorzeitig ab.In dieser Arbeit soll unscharfes Rechnen in Schleifen untersucht wer-den. Ziel ist es, den Compiler der Programmiersprache X10 (IBM) umPragmas zu erweiten, die unscharfe Operationen kennzeichnen. Da-mit soll anschließend ein Modell entwickelt werden, das die Genauig-keit unscharfer Schleifen charakterisiert. Besonders zu beachten istdabei die Propagation von Fehlern zwischen Iterationen.

351 : 4 ≈ 80

for (var i:int=1;i<N; ++i)

{@Approximate(16)A(i)=A(i-1)/M;

}

Voraussetzungen: Java, Vorkenntnisse Compilerbau nützlichArt der Arbeit: Theorie (40%), Konzeption (30%), Implementierung (30%)Ansprechpartner: Michael Witterauf ([email protected])

Lehrstuhl für Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Software Product Line Compiling für Supercomputer

Um aus einer abstrakten Beschreibung einer Simulation hochperformantenC++-Code für Supercomputer zu generieren ist eine Vielzahl von Programm-Transformationen notwendig. Das ExaStencils-Projekt beschäftigt sich mit derautomatischen Erzeugung von speziell angepasstem Code anhand einer do-mänenspezifischen Sprache für Mehrgitter-Verfahren, mit denen sich bspw.Diffusionsprozesse simulieren lassen.

Um zu einem konkreten Simulations-Programm zu gelangen müssen währendder Übersetzung viele Informationen ermittelt und hinzugefügt werden. Diesgeschieht in einer Reihe von modularen Transformationen. Mittels Produktlinien-Technologie (SPL) istes möglich, Abhängigkeiten der Transformationen festzulegen bzw. zu erkennen und optimale Reihen-folgen zu bestimmen, um sowohl die Übersetzungszeit zu reduzieren als auch optimalen Code zu er-zeugen.

Ziele der Arbeit sind:

• Konzeption eines Frameworks für die Ablaufplanung von Programm-Transformationen mit Schnitt-stellen zu bestehenden SPL-Komponenten

• Implementierung und Evaluierung des entwickelten Konzepts

Voraussetzungen: Programmierkenntnisse in C++, Java oder ScalaArt der Arbeit: Theorie (20%), Konzeption (50%), Implementierung (30%)Ansprechpartner: Christian Schmitt ([email protected])

Lehrstuhl für Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Run-time Requirement Enforcement für ProzessorfelderEng gekoppelte Prozessorfelder (engl. tightly coupled processor arrays,TCPAs) sind massiv parallele Schleifenbeschleuniger, die aus einem Gittervon Prozessoren bestehen. Unser Compiler übersetzt Schleifenprogram-me dafür symbolisch, das heißt, die Anzahl von allozierenden Prozessorenmuss erst zur Laufzeit bekannt sein. So können Applikationen die Anzahldynamisch ihren Rechenbedürfnissen anpassen. .

..PE

.. PE .. PE .. PE .. PE

.

.

PE .

.

PE .

.

PE .

.

PE .

.

PE

.

.

PE .

.

PE .

.

PE .

.

PE .

.

PE

.

.

PE .

.

PE .

.

PE .

.

PE .

.

PE

Weiterhin müssen Schleifen oft nicht möglichst schnell bearbeitet werden, sondern es reicht, einegewisse Laufzeitschranke einzuhalten. Man spricht hier von Vorhersagbarkeit, die vor allem inEchtzeitsystemen (z. B. Automobil, Avionik, Robotik) kritisch ist.

Sei eine Laufzeitschranke in Sekunden und eine symbolische Formel für die Latenz in Taktengegeben. Wieviele Prozessoren müssen dann alloziert werden und wie hoch die Frequenz sein,um die Schranke einzuhalten? Macht es mehr Sinn, die Frequenz zu erhöhen und weniger Pro-zessoren zu allozieren oder anders herum? Wenn es mehrere mögliche Allokationsgrößen gibt,welche ist die sinnvollste?

Diese und weitere Fragen sollen in dieser Arbeit untersucht, sowie ein Code-Template erstelltwerden, das dieses Run-time Requirement Enforcement vornimmt.

Voraussetzungen: Programmierkenntnisse in CArt der Arbeit: Theorie (60%), Konzeption (30%), Implementierung (10%)Ansprechpartner: Michael Witterauf ([email protected]), Marcel Brand ([email protected])

Lehrstuhl für Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Code generation for OpenCL-enabled devices

Programming models such as Khronos’ OpenCL are low-level. For ex-ample, It is effectively an extended subset of C99, limited to the typeunsafe procedural abstraction that C has provided for more than 30years. However, the C++ programming language is known for its strongtype system, templates, and object-oriented abstraction features.

The project HighPerMeshes aims to offer an abstract specification as well as an efficient, parallel andscaling implementation of iterative algorithms specialized for unstructured grids, by means of its ownDomain Specific Language (DSL). It follows the path to target hetrogeneous architectures. So, an al-ternative for developers targeting OpenCL-enabled devices is to have a simpler and a more expressiveOpenCL code generator to generate OpenCL code from DSL.

This thesis task is the a) development of an OpenCL code generator by providing abstraction for bothhost and device components of an application, but without modification to the host compiler. b) imple-mentation of the time domain nodal discontinuous Galerkin (TD-DG) solvers with this OpenCL codegenerator to target OpenCL-enabled architectures. c) evaluation of results in term of productivity.

Required skills: Good knowledge in C/C++Nature of work: Theory (20%), Conception (20%), Implementation (60%)Contact: Ayesha Afzal ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Evaluation of SYCL Framworks

SYCL is a new programming standard by building on standard C++ withits so-called single-source approach: Programmers write standard C++code and expose parallelism using C++ 17 keywords. The applicationis then transformed into a concrete implementation by the SYCL fram-works. SYCL already provides a task graph model based from whichdata dependencies could be derived and resolved accordingly.

By encapsulating the OpenCL ecosystem, different SYCL implementations enable not only the program-ming of CPUs, but also of heterogeneous platforms such as GPUs or other devices.

The aims of this thesis are:

• Commertial ComputeCPP implementation by Codeplay, open-source triSYCL implementation andopen-source sycl-gtx implementation of SYCL

• Hybrid parallelism concept (MPI + SYCL)

• Evaluation on target CPU’s and GPU’s platforms for simulation of applications from linear algebra

Required skills: Good knowledge in C++Nature of work: Theory (20%), Conception (20%), Implementation (60%)Contact: Ayesha Afzal ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Beschleunigung von Entwurfsraumexplorationen durch ma-schinelles Lernen

Bei der Realisierung und Evaluierung von Hardwareimplementierun-

Training

Suchraum

Synthese

gen aus einer gegebenen Spezifikation, stellt haufig die Große desSuchraums ein Problem dar. Um die Vielzahl an Implementierungs-moglichkeiten zu beherrschen, wird deshalb auf eine Entwurfsraumex-ploration zuruckgegriffen. Hierbei wird der Suchraum traversiert, wobeiausgewahlte Implementierungen stetig verbessert werden. Diese Tra-versierung basiert auf dem Erzeugen und Evaluieren vieler Losungen,die stetig verbessert werden. Die Evaluierung benotigt eine Synthese,die wegen ihrer hohen Komplexitat zu sehr hohen Laufzeiten fuhrt.Im Zuge dieser Arbeit wird ein Ansatz untersucht, der diese Laufzeitreduziert, indem nur ein Teil der Losungen tatsachlich synthetisiert undevaluiert wird. Die Evaluierung der anderen Losungen wird durch eine Verfahren ersetzt, das durchmaschinelles Lernen Zusammenhange zwischen charakteristischen Eigenschaften der synthetisiertenLosungen und deren Evaluierungsergebnissen lernt. Dieses Wissen wird dann verwendet, um die Qua-litat anderer Losungen vorherzusagen.

Voraussetzungen: Programmierkenntnisse in C/C++ und JavaArt der Arbeit: Theorie (40%), Konzeption (40%), Implementierung (20%)Ansprechpartner: Peter Brand, Joachim Falk ({peter.brand, joachim.falk}@fau.de)

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Vergleich von simulierten und realen Kommunikationsmus-tern durch maschinelles Lernen

Bei der Entwicklung neuer Kommunikationsalgorithmen und -methoden,Mustererkennen Klassen

bildenModel

Trainieren

Vergleich

MaschinellesLernenReale

Datenströme

SimulierterDatenströme

sind belastbare Evaluierung notig. Eine Evaluation, sofern analytischnicht moglich, erfordert eine Bewertung einer Vielzahl von Testsze-narien, die moglichst alle Auspragungen real moglicher Kommunika-tion umfassen sollten. Da Szenarien in realen Systemen meist wedernachvollziehbar, noch wiederholbar sind und unerwartetes Verhaltenim schlimmsten Fall katastrophale Auswirkungen hat, werden bei derEntwicklung meist Simulationen eingesetzt, die relevantes, reales Sys-temverhalten nachbilden. Dadurch lassen sich nachvollziehbare und wiederholbare Testszenarien er-zeugen, die dynamisch auf das Verhalten des Kommunikationsalgorithmus reagieren. Die Aussagekrafteiner simulativen Evaluation hangt dabei hauptsachlich von der Wirklichkeitstreue des simulierten Ver-haltens ab.Im Zuge dieser Arbeit soll untersucht werden, wie sich die Wirklichkeitstreue vergleichen lasst. Dabeiwerden Methoden des maschinellen Lernens angewandt, um Verhaltensmuster in realen Kommunika-tionsstromen zu erkennen und anschließend mit simulierten Kommunikationsstromen zu vergleichen.

Voraussetzungen: Programmierkenntnisse in C/C++ und JavaArt der Arbeit: Theorie (45%), Konzeption (45%), Implementierung (10%)Ansprechpartner: Peter Brand, Joachim Falk ({peter.brand, joachim.falk}@fau.de)

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Automatischer Entwurf von Car-2-X-AnwendungenBei der Entwicklung moderner und autonomer Fahrzeuge spielt dieVernetzung des Fahrzeugs mit anderen Autos (Car-2-Car), Verkehrs-teilnehmern, Cloud Servern, und der stadtischen Infrastruktur, wie z.B.Ampeln, (Car-2-X) eine immer großere Rolle. Hierdurch konnen kom-plexere Anwendungen realisiert werden als im Fahrzeug allein, auf-grund dessen eingeschrankter Verfugbarkeit von Sensoren und Re-chenkapazitaten.Fur OEMs wie AUDI oder VW ergeben sich daher neue Herausfor-derungen beim automatisierten Entwurf der elektrisch-elektronischen(E/E) Architektur moderner Fahrzeuge, da nun nicht mehr nur die imFahrzeug verbaute Hardware, sondern auch die potentiell nutzbarenRessourcen außerhalb des Fahrzeugs berucksichtigt werden mussen.Das kombinatorische Problem der Suche energieeffizienter, zuverlassi-ger und echtzeitfahiger E/E-Architekturen wird also um neuartige Frei-heitsgrade erweitert.Im Rahmen dieser Masterarbeit soll untersucht werden, wie diese Freiheitsgrade in einem am Lehrstuhlvorhandenen Softwarewerkzeug fur die Automatisierung des Entwurfsprozesses von E/E-Systemen ab-gebildet werden konnen.

Voraussetzungen: Programmierkenntnisse in Java, Interesse an OptimierungArt der Arbeit: Theorie (30%), Konzeption (40%), Implementierung (30%)Ansprechpartner: Fedor Smirnov ([email protected]), Stefan Wildermann (ste-

[email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Analytic Evaluation of Schedules via Max-Plus Algebra

The complexity of embedded systems also necessi-

Virtual prototyping

Performance estimation

Automatic design

space exploration

(Graph-based) Model of applications and architecture

Evaluate

candidate

implementations

Explore design space

a3a4

a6

a2

a9

a5

a1

a7

a8

cluster2

cluster1

a3a4

a6

a2

a9

a5

a1

a7

a8

cluster1

tates a rise in the level of abstraction of the design flow.To facilitate this, the design automation tool developedat the Chair for Hardware/Software Co-Design enablesautomatic system synthesis starting with an abstractmodel and resulting in different implementations. Here,automatic synthesis and optimization methods for digi-tal embedded hardware-software systems are applied.

In this thesis, you are introduced to clustering, an al-gorithm to improve scheduling efficiency for the gen-erated code. While the obtained scheduling efficiencygain can be measured by means of code generationand throughput measurement, this results in significant evaluation time due to the costly code gen-eration step and, thus, is unsuitable inside a Design Space Exploration (DSE) evaluation loop wherethousands of clusters have to be evaluated. The goal of this thesis is to efficiently evaluate clustersfound during DSE by means of a max-plus algebra-based analysis of these clusters.

Prerequisites: Programming Skills in C/C++ and Matlab/Simulink knowledge requiredType of Work: Theory (10%), Conception (30%), Implementation (60%)Supervisors: Martin Letras ([email protected]) and Joachim Falk ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Optimierung von HPC-Anwendungen auf Many-CoresZukunftige Mehr- und Vielkernplattformen werden es erlauben,eine Vielzahl von Anwendungen parallel auszufuhren. Ein aktuel-les Forschungsthema stellt hierbei das Invasive Rechnen dar, beidem Anwendungen ihre benotigten Ressourcen bzw. Rechen-kerne selbst dynamisch anfordern und wieder fur andere An-wendungen freigeben. Welche Ressourcen eine Anwendung zurLaufzeit anfordert und welche Qualitatsmerkmale (z.B. Durch-satz, Zuverlassigkeit) sich damit erzielen lassen, soll durch ei-ne sogenannte Entwurfsraumexploration zur Entwurfszeit abge-schatzt werden. Wahrend solche Ansatze im Bereich eingebet-teter Systeme bereits intensiv erforscht werden, gilt es nun zuuntersuchen, ob sich solche Ansatze auch auf andere Domanenwie Hochleistungsrechnen (HPC) ubertragen lassen.

In dieser Arbeit soll ein bestehendes Werkzeug zur automati-schen Entwurfsraumexploration mit Anwendungen aus dem HPC-Bereich gekoppelt werden. Hierbei giltes zunachst, die Anwendungen in ein geeignetes Modell automatisch zu uberfuhren. Danach mussendie Freiheitsgrade der Anwendungen durch Definition geeigneter Genotypen abgebildet werden. Ab-schließend soll jede gefundene Implementierung durch Ausfuhrung auf der Zielplattform hinsichtlichihrer Qualitatsmerkmale untersucht werden, wofur eine entsprechende Infrastruktur geschaffen werdenmuss.

Voraussetzungen: Programmierkenntnisse in Java von Vorteil, Interesse an Evolutionaren AlgorithmenArt der Arbeit: Theorie (30 %), Konzeption (30 %), Implementierung (40 %)Ansprechpartner: Tobias Schwarzer ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

DSE of Simulink Models for the Automotive Domain

Nowadays, embedded systems can reach tremendous complexity. Ty-pically, these systems have a heterogeneous architecture that is com-posed of different types of computing units like CPUs, DSPs, FPGAs,etc. as well as a diverse set of communication infrastructure rangingfrom field buses like CAN to commodity networks like Ethernet. Thus,the challenge is how to select an optimal distribution of the systemfunctionality to these units from the huge design space of the possibledistributions.On the other hand, Simulink has gained a lot of acceptance in the au-tomotive domain due to its intuitive block-based algorithm design, ea-sy simulation, and rapid prototyping capabilities. However, Simulink islacking integration with Desing Space Exploration (DSE) especially fordistributed target architectures.In order to address this issue, the goal of this thesis is the extensionof our Simulink-based DSE tool flow to also support distributed targetarchitectures like Ethernet TSN connected target architectures.

Prerequisites: Programming Skills in C/C++ and Matlab/Simulink knowledge requiredType of Work: Theory (10%), Conception (30%), Implementation (60%)Supervisors: Martin Letras ([email protected]) and Joachim Falk ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

DSL-based Optimization for Feature Extraction Algorithms

Discriminative features are essential for the accura-te representation of images, which is an importantprerequisite for many applications in computer visi-on and machine learning. Example feature extracti-on algorithms are: Corner detection, blob detection,scale-invariant feature transform. Such algorithmsare generally data-intensive, hence hardware acce-lerators such as GPUs are used to explore the data parallelism.

HIPAcc is a domain-specific acceleration framework for image processing. It enables efficient codegeneration for various backend targets (GPU, FPGA, etc.), from the same algorithm description. Thecompiler employs domain knowledge to automatically analyze and optimize the source code. One of theoptimization techniques is Kernel Fusion. It automatically analyzes, identifies the potential kernels thatcan be optimized in the algorithm, and fuses them during code generation.

The aims of this thesis are: a) select and implement one or more feature extraction algorithms usingHIPAcc to target GPUs, and b) apply optimization techniques such as kernel fusion, evaluate the outcomeand identify performance bottlenecks.

Required skills: Good knowledge of C/C++, and good knowledge of CUDA/OpenCLNature of work: Theory (40 %), Conception (10 %), Implementation (50 %)Contact: Bo Qiao ([email protected]), Oliver Reiche ([email protected]).

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Automatische Integration von Hardwarebeschleunigern beider Generierung von virtuellen PrototypenDie steigenden Komplexitatsanforderungen an heu-tige Eingebettete Systeme erfordern einen immerhoheren Abstraktionsgrad des Entwurfsprozesses.Mit SystemC existiert eine auf C++ basierende Sys-tembeschreibungssprache, die den Anspruchen aneine abstraktere Modellierung Rechnung tragt.

Durch Optimieren der HW-/SW-Partitionierung ei-nes Systems kann eine erhebliche Leistungssteige-rung erzielt werden. Sie werden ein mit SystemCbeschriebenes System (Fraktal-Viewer) mittels Ent-wurfsautomatisierung in einen virtuellen Prototypenmit einer optimierten HW-/SW-Partitionierung umwandeln.

Ziel dieser Arbeit ist, das am Lehrstuhl entwickelte Framework zur Entwurfsautomatisierung um dieautomatische Integration von Hardwarebeschleunigern bei der Generierung von virtuellen Prototypenzu erweitern. Um sich mit der Problemstellung vertraut zu machen, werden Sie zuerst eine manuelleIntegration eines Hardwarebeschleunigers in den generierten Prototypen vornehmen.

Voraussetzungen: Grundkenntnisse in C++Art der Arbeit: Theorie (10%), Konzeption (30%), Implementierung (60%)Ansprechpartner: Joachim Falk ([email protected]), Tobias Schwarzer ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

FPGA-based Image Processing Acceleration fromMatlab/Simulink

HIPAcc is a Domain-Specific Language that ge- C++Embedded DSL

Source-to-SourceCompiler

Clang LLVM

Domainknowledge

Architectureknowledge

CUDA(GPU)

OpenCL(x86/GPU)

C/C++(x86)

Renderscript(x86/ARM/GPU)

CUDA/OpenCL/Renderscript Runtime Library

SIMULINK

Optimized HIPAcc

Simulink library

Simulink model

Vivado HLS C/C++ (x86)

Synthesis Compilation

CommunicationInterfaces

nerates low-level target code for multiple plat-forms (i. e., FPGAs, GPUs) from simple abstrac-tions. On the other hand, Matlab/Simulink hasa lot of acceptance in industry due to its intuitiveblock-based algorithm design, easy simulation,and rapid prototyping capabilities. The goal ofthis thesis is to integrate Hippacc into an exis-ting tool-flow using Matlab/Simulink for generating System-on-a-Chip implementations. The main taskswithin this thesis are:

• Evaluation and implementation of a Simulink library for HIPAcc kernels

• Integration into an existing tool-flow for automatic synthesizable code generation for FPGAs

• Implementing complicated image processing algorithms for validating the functionality.

Prerequisites: Programming Skills in C/C++, FPGA design knowledge, and familiarity with Matlab/Simulink

Type of Work: Theory (10%), Conception (20%), Implementation (70%)

Supervisors: Martin Letras ([email protected]), Franz-Josef Streit ([email protected]) and M. Akif Oez-kan ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Objekterkennung fur Fahrerassistenzsysteme

Die Zahl der Fahrerassistenzsysteme hat in den letztenJahren stetig zugenommen. Zukunftig werden solcheAssistenzsysteme immer mehr Aufgaben des Fahrersubernehmen. So konnte es in einigen Jahren schonmoglich sein, dass Autos vollstandig autonom fahren.Damit dies Realitat wird, ist es notwendig die Objektein der Umgebung zu detektieren. Dabei mussen neu-en Messdaten von Sensoren, wie beispielsweise voneinem Laserscanner, mit den bereits erkannten Objek-ten in Verbindung gebracht werden.

Im Rahmen dieser Arbeit sollen unterschiedliche Algorithmen zur Assoziierung (wie beispielsweise JointProbability oder Global Nearest Neighbour) von Messdaten prototypisch untersucht, implementiert undmit CUDA parallelisiert werden. Als Zielplattform soll ein mobiler Chip (MPSoC) mit einem eingebet-teten Grafikprozessor, wie beispielsweise dem NVIDIA Tegra K1, verwendet werden. Ebenso soll eineAufwandsabschatzung der implementierten Algorithmen stattfinden.

Voraussetzungen: Programmierkenntnisse in C/C++, CUDA-Kenntnisse von VorteilArt der Arbeit: Theorie (30%), Konzeption(20%), Implementierung (50%)Ansprechpartner: J. Fickenscher ([email protected]), O. Reiche ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Evaluierung verschiedener Machine Learning Frameworksfur eingebettete Systeme

Die Anzahl der KI-Anwendungen fur mobile Gerate wachsen stetig. Da-bei werden die Berechnungen zunehmend auf den Endgeraten selbstausgefuhrt. Dafur werden Prozessoren entwickelt die speziell auf dieBerechnung von Neuronalen Netzen ausgelegt sind.

Um diese Hardware fur Anwendungen zu nutzen, stellen Deep Lear-ning Frameworks (z.B. Tensorflow Lite, Caffe2) spezielle Entwicklungs-umgebungen fur mobile Endgerate bereit (siehe Bild). Diese Frame-works bieten Techniken (Quantisierung, spezielles Modell- und Datei-format, Interpreter), um den notwendigen Speicher und dieAusfuhrungszeit fur die Anwendungen zu reduzieren.

In dieser Bachelorarbeit soll auf einem Tegra SoC (System-on-a-Chip) fur verschiedene Neuronale Net-ze (NNs) die Ausfuhrungszeit und der Energieverbrauch evaluiert werden. Außerdem sollen dabei diezwei gangisten Frameworks, namentlich Tensorflow Lite und Caffe2 verglichen werden.

Voraussetzungen: Programmierkenntnisse in Python und C/C++, Grundkenntnisse uber NNsArt der Arbeit: Theorie (20%), Konzeption (40%), Implementierung (40%)Ansprechpartner: Christian Heidorn ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

DSL-based Optimizations for Algorithms on Unstructured Grids

In scientific computing, unstructured meshes are a crucial foundation for thesimulation of real-world physical phenomena. Compared to regular grids, theyallow resembling the computational domain with a much higher accuracy, whichin turn leads to more efficient computations. However, implementing unstructu-red mesh algorithms (e.g. TD-FEM, TD-DG) in a performance-portable fashion,i.e., being efficient on many different hardware architectures, is cumbersome.

The project HighPerMeshes aims to offer an abstract specification as well as anefficient, parallel and scaling implementation of iterative algorithms specializedfor unstructured grids, given by the means of its own Domain Specific Language (DSL). Since not allheterogeneous target architectures would benefit from the same optimizations, it would be desirable todetermine various modular programming optimizations of the program for each target architecture.

The goals of this thesis are, a) implementation of the time domain nodal discontinuous Galerkin (TD-DG)solvers in DSL to target CPU’s and GPU’s architectures , b) the draft of a language concept frameworkfor the specification of applied optimizations techniques per device and c) evaluation of the developedconcepts in term of performance and implementation effort via software complexity metrics.

Required skills: Good knowledge in C/C++Nature of work: Theory (20%), Conception (30%), Implementation (50%)Contact: Ayesha Afzal ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Abbildung von Signalverarbeitungsalgorithmen auf TCPAsDurch stetige Miniaturisierung ist es inzwischen moglich,

v v

PE

PE

PE

PE

PE

PE

TC

PA PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

PE

sehr viele Prozessoren und Hardware-Beschleuniger aufeinem einzigen Chip zu integrieren. Ein Beispiel solcherHardware-Beschleuniger sind eng gekoppelte Prozessor-felder (tightly coupled processor arrays, TCPAs), welcheaus einer Menge von einfachen Prozessorelementen be-stehen. TCPAs werden etwa verwendet, um digitale Bild-und Signalverarbeitungsalgorithmen zu beschleunigen, dasie einen hohen Grad an Datenparallelitat aufweisen. Indieser Arbeit sollen Signalverarbeitsalgorithmen auf TCPAsuntersucht und implementiert werden. Zum Beispiel wer-den in modernen Autos Algorithmen fur zahlreiche Aufga-ben (z. B. Spurwechsel-Assistent, automatische Abstandsregler, vollautomatische Einparkhilfe) einge-setzt. Im Allgemeinen werden hierbei Distanzen und Geschwindigkeit von Objekten analysiert und Um-feldmodelle erstellt.

Ziel dieser Arbeit ist es, einen deartige Signalverarbeitungsalgorithen fur verschiedene Ressourcenvertei-lungen auf einem TCPA abzubilden und zu bewerten.

Voraussetzungen: Programmierkenntnisse in C/C++Art der Arbeit: Theorie (30%), Konzeption (20%), Implementierung (50%)Ansprechpartner: Alex Tanase, Michael Witterauf ({alexandru-petru.tanase, michael.witterauf}@fau.de)

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Bildverarbeitungsketten auf Prozessorfeldern

Bildverarbeitung ist allgegenwärtig, insbesondere in eingebettetenSystemen – von der Hinderniserkennung in Radarsystemen bis zurTumorerkennung in 3D-Bildern eines Tomographen. Prozessorfelderwie Tightly Coupled Processor Arrays (TCPAs) eignen sich beson-ders für deren Beschleunigung, weil sie nicht nur viel Parallelität bie-ten, sondern auch sehr energieeffizient sind.Bildverarbeitung bedeutet oft die Hintereinanderschaltung verschie-dener Filter; man spricht dann von einer Bildverarbeitungskette. Bild-verarbeitungsketten lassen sich etwa durch einen Filtergraphen wiein nebenstehender Abbildung darstellen.In dieser Arbeit soll ein domänenspezifischer Compiler entwickeltwerden, der aus der formalen Beschreibung einer Bildverarbei-tungskette parallelisierten Assembler-Code für TCPAs erzeugt. DieSchwierigkeit: Wie lassen sich die Filter parallelisieren und die Pro-zessorelemente allozieren angesichts der notwendigen Kommunika-tion zwischen den Filtern?

PE PE PE PE PE

PE PE PE PE PE

PE PE PE PE PE

PE PE PE PE PE

Schwellwert

Kanten X Kanten Y

Ecken

Voraussetzungen: Gute Kenntnisse von C++ und AssemblerArt der Arbeit: Theorie (20%), Konzeption (40%), Implementierung (40%)Ansprechpartner: Michael Witterauf ([email protected])

Lehrstuhl für Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Neuronale Netze auf Prozessorfeldern

In jüngster Zeit konnten neuronale Netze, insbesondere Convolutio-nal Neural Networks (ConvNets), viele Erfolge erzielen – etwa daserstmalige Bezwingen des Go-Weltmeisters durch einen Computer.Üblicherweise werden ConvNets mittels rechenstarker, aber energie-hungriger Hardware wie GPUs beschleunigt; in eingebetteten Sys-tem wie Smartphones ist jedoch auch die Energieeffizienz wichtig.In dieser Arbeit soll deshalb untersucht werden, wie ConvNets aufenergieeffizienten Prozessorfeldern beschleunigt werden können.Wie kann man, ausgehend von der formalen Beschreibung einesConvNets, parallelisierte Assembler-Programme für ein Prozessor-feld erzeugen? Die Schwierigkeit dabei liegt vor allem in deren hohenAnzahl an Neuronen sowie im Planen der Datenübertragungen. Alskonkretes Beispiel dient zum Beispiel die Schrifterkennung.Je nach geplantem Umfang der Arbeit soll auch untersucht werden,inwieweit Standard-APIs wie TensorFlow Lite (Google) von Prozes-sorfeldern profitieren könnten.

PE PE PE PE PE

PE PE PE PE PE

PE PE PE PE PE

PE PE PE PE PE

Voraussetzungen: Gute Kenntnisse von C++ und Assembler, lineare AlgebraArt der Arbeit: Theorie (20%), Konzeption (40%), Implementierung (40%)Ansprechpartner: Michael Witterauf ([email protected])

Lehrstuhl für Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

RTL Code Generation for Image Processing Pipelines

Field Programmable Gate Arrays (FPGAs) are pro-ved to be among the most suitable architecturesfor image processing applications. Yet, describingan application-specific hardware via Verilog HDL orVHDL is time-consuming and error-prone. We canautomate the hardware design by developing acode generator that focuses on image processingapplications.

This thesis will focus on generating VHDL or Verilog codes for the memory architectures of local operators(such as convolution), point operators (e. g., image scale) and simple global operators (e. g., findingmaximum). A scheduler for the synthesis of arithmetic operations will be provided.

The main tasks within this thesis are:a) developing small code generators for building blocks of image processing applicationsb) employing a scheduler and arithmetic circuit synthesizer for this purposec) delivering an RTL code generator and its evaluations for sample applications

Required skills: Good knowledge of C/C++, and good knowledge of FPGA developmentNature of work: Theory (30 %), Conception (30 %), Implementation (40 %)Contact: M. Akif Oezkan ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

DSL-Based Optimization of FPGA Implementations

FPGAs have proven to be among the most suitabledevices for algorithms that can be processed in astreaming pipeline. Yet, designing imaging systemsfor FPGAs remains a time-consuming task even foran expert. Furthermore, a designer faces variouschoices while accelerating a particular algorithm, allof which lead to different implementations in termsof performance, area, and power. This hinders por-tability of the hardware design across different FPGA devices, which have different constraints e.g. area,on-chip memory, and speed.

How to optimize an implementation under certain design objectives and keep portability? A solu-tion could be to use a domain-specific language (DSL), e.g. HIPAcc, to describe an algorithm and let acompiler generate optimized solutions for the specified device and certain constraints. The aims of thesisare: a) building up a tool set for image processing applications to apply state-of-the-art design techniquesfor FPGAs using Vivado HLS, such as strength reduction, kernel fusion, data-path compression. b) inte-grating the developed tool set into HIPAcc, and c) developing a design space exploration mechanism.

Required skills: Good knowledge of C/C++, and basic knowledge of FPGA developmentNature of work: Theory (30 %), Conception (30 %), Implementation (40 %)Contact: M. Akif Oezkan ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Selektion domanenspezifischer Optimierungen furmedizinische Bildverarbeitungsketten

Medizinische Bildverabeitungsketten beinhalten verschiedeneAlgorithmen, wie die Unterdruckung von Bildrauschen, dasErkennen von Kanten (z. B. Adern/Venen) und die Anpassungdes Kontrastes. Oft werden mehrere dieser Algorithmen zusogenannten Bildverarbeitungsketten zusammengefasst. Dadiese Algorithmen sehr rechenintensiv sind und einen hohenGrad an Datenparallelitat aufweisen ist es sinnvoll diese auf Graphikprozessoren (GPUs) auszulagern.

Hipacc ist eine domanenspezifische Sprache (DSL) und ein Compiler, mit dessen Hilfe Bildverarbeitungsket-ten fur GPUs automatisch erzeugt und evaluiert werden konnen. Hierbei werden ausgewahlte Optimierungenauf alle Algorithmen einer Bildverarbeitungskette angewandt. Da nicht alle Algorithmen von den gleichen Opti-mierungen profitieren ware es wunschenswert unterschiedliche Optimierungen fur jeden einzelnen Algorithmusbestimmen zu konnen.

Die Ziele dieser Arbeit sind, a) die Einarbeitung in die domanenspezifische Sprache Hipacc, b) der Entwurfeines Sprachkonzepts zur Spezifizierung von Optimierungen pro Algorithmus und c) die Implementierungdieses Konzepts in den Hipacc-Compiler.

Voraussetzungen: Programmierkenntnisse in C/C++, Grundkenntnisse in CUDA oder OpenCL

Art der Arbeit: Theorie (30 %), Konzeption (20 %), Implementierung (50 %)

Ansprechpartner: Oliver Reiche und Bo Qiao ({oliver.reiche, bo.qiao}@fau.de)

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Loose Enforcement of Timing and Energy Trade-Offs

Applications running on a many-core platform may have a set of up-per/lower bounds on their non-functional properties, e.g., latency, whichmust be met. Run-Time Requirement Enforcement (RRE) specifiestechniques that monitor the application execution and control someplatform parameters, e.g., the operating frequency of the cores, to sa-tisfy the requirements. For example, in the figure, the application hastwo sets of requirements, namely, latency and power consumption.

The goal of this thesis is to investigate the approaches from control en-gineering to implement RREs for timing and energy requirements. He-re, the following topics must be investigated: 1) Investigate algorithmsborrowed from control theory on their capability of controlling timingand energy consumption in tile-based invasive multi-core architectures, 2) Selection of control points, 3)Stability considerations, and 4) Simulative evaluation of energy savings for object detection application.

Prerequisites: Familiarity with control theory and many-core systems, Programming skills in javaType of work: Theory (40%), Conception (20%), Implementation (40%)Contact: Jurgen Teich ([email protected])

Behnaz Pourmohseni ([email protected])Stefan Wildermann ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Operating Point Clustering for Run-Time Mapping Transitionin Many-Core Systems

In the paradigm of application mapping on manycore architectures, pro-

Ener

gy

Latency

A

B

C

D

E

E

D C

AB

per resource management at run-time has a significant impact on thecapability of the system to handle dynamic workload scenarios. In oneapproach, for each application, the run-time manager is provided witha set of mapping alternatives, operating points, which differ in resourcerequirements and performance properties e.g. latency and energy.

This project investigates run-time transition between operating points.For this purpose, operating points are to be clustered in such a way thattransitions between the points within a cluster involve—exclusively—either expanding or shrinking of the claimed resources.

Your task will be to explore, implement, evaluate, and compare approa-ches from the literature that address: 1) calculation of the cost of tran-sition between operating points, 2) efficient- and effective clustering of operating points, 3) selection ofcandidate clusters to be handed over to the run-time manager.

Prerequisites: Programming knowledge in Java, Familiarity with embedded (manycore) systemsType of work: Theory (30%), Conception (20%), Implementation (50%)Contact: Behnaz Pourmohseni ([email protected])

Lehrstuhl fur Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Highlevel-Synthese von LPGS-SchleifenbeschleunigernPARO ist ein am Lehrstuhl entwickeltes Highlevel-Synthese-Werkzeug, das ausgehend von einer Schleifenbeschreibung – etwaeines Bildverarbeitungsalgorithmus – anwendungsspezifische Hard-warebeschleuniger generiert, die aus einem N×M-Feld aus Prozes-sorelementen bestehen.

Dazu müssen die Iterationen einer Schleife räumlich (auf welchemProzessorelement?) als auch zeitlich (wann starten?) abgebildet wer-den. Bei LPGS (locally parallel, globally sequential) werden die Itera-tionen in kongruente Kacheln aufgeteilt, wobei Iterationen innerhalbeiner Kachel parallel, die Kacheln aber sequentiell ausgeführt wer-den.

..................................................................................................

FPGA

In dieser Arbeit soll PARO um die Funktionalität erweitert werden, VHDL-Code für LPGS-Schlei-fenbeschleuniger zu generieren, die unabhängig von der Anzahl der Iterationen sind. Dazu mussdie Abbildung via LPGS symbolisch erfolgen, was zusätzlich erfordert, PARO um die Verarbei-tung symbolischer Ausdrücke zu erweitern.

Voraussetzungen: Programmierkenntnisse in C++ und VHDLArt der Arbeit: Theorie (30%), Konzeption (20%), Implementierung (50%)Ansprechpartner: Michael Witterauf, Alexandru Tanase {witterauf, tanase}@cs.fau.de

Lehrstuhl für Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen

Generierung von ProzessorfeldernEng gekoppelte Prozessorfelder (engl. tightly coupled processor arrays,TCPAs) sind eine massiv parallele und hochgradig konfigurierbare Klas-se von Architekturen. Bereits bei der Synthese lassen sich viele Parametervariieren – zum Beispiel die Anzahl an Prozessorelementen, deren funktio-nale Einheiten, die Anbindung zum Speicher, usw. Diese Parameter sind ineiner XML-Architekturbeschreibung festzulegen.

IM GC

AG

IM

GC

AG

IMGC

AG

IM

GC

AG

Co

nfi

gura

tio

n M

anag

er

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

PE

iCtrl

I/O

Bu

ffe

rs

I/O

Bu

ffe

rs

I/O Buffers

I/O Buffers

Um diese Fülle an Kombinationen effizient zu verwalten, soll in dieser Bachelor-Arbeit eineC++-Bibliothek entworfen werden, die aus einer Architekturbeschreibung eine synthetisierbareHardwarebeschreibung des TCPAs generiert. Dies umfasst sowohl die Vereinheitlichung derHardware-Quelltexten als auch der Architekturbeschreibung selbst. Techniken des Software-Engineerings sollen die Erzeugung flexibel, wartbar und transparent für Hardwareentwickler und-entwicklerinnen gestalten.

..VHDL

..

SystemVerilog

.XML

..

TCPA-Generator

..VHDL

..

SystemVerilog

.

+

Voraussetzungen: C++ (sehr gut); VHDL/SystemVerilog (gut); Kenntnisse RechnerarchitekturArt der Arbeit: Theorie (20%), Konzeption (30%), Implementierung (50%)Ansprechpartner: Michael Witterauf ([email protected]), Marcel Brand ([email protected])

Lehrstuhl für Informatik 12Hardware-Software-Co-Design

Cauerstraße 1191058 Erlangen