Bachelor-, Masterthesis FPGA-Technology

 

"Machine-Vision / Machine-Learning mittels Neuronaler Netze im FPGA"

Google und Facebook setzen sie ein, aber auch Amazon ALEXA und viele andere: Moderne Neuronale Netze, in Form von Deep-Learning / Machine-Learning, versprechen erheblich bessere Ergebnisse z. B. bei der Bild- und/oder Spracherkennung als klassische Algorithmen.

Allerdings benötigen diese Neuronalen Netze auch erheblich mehr Rechenleistung, so dass typischerweise GPU und mittlerweile auch FPGA als Beschleuniger eingesetzt werden. Gemäß Stand der Forschung haben FPGA dabei nicht nur Vorteile bzgl. Verlustleistung und Latenz (bzw. Antwortzeiten), sondern können durch Einsatz sogenannter “Reduced Precision”-Verfahren sehr resourceneffizient im FPGA implementiert werden.

Auf Basis einer existierenden FPGA-Plattform für Neuronale Netze sollen im Rahmen mehrerer unabhängiger Bachelor- bzw. Masterarbeiten diverse Aspekte untersucht werden:

  • Analyse von Bildverarbeitungsverfahren via FPGA-basierter Neuronaler Netze, z. B. zur Verkehrs-zeichenerkennung.
  • Möglichkeiten zur Automatisierung des FPGA-Entwurfs Neuronaler Netze via TensorFlow / Theano.
  • Analyse und Vergleich von GPU- bzw. FPGA-basierten Beschleunigern bzgl. Operations-per-Second (OPS) und OPS-per-Watt

Wir erwarten: Programmierkenntnisse in C, C++ und/oder SystemC, Grundwissen in FPGA und digitalen Schaltungen, Linux, Ethernet, TCP/IP; Organisiertes Arbeiten in kleinen Teams.

 

"Cloud Computing mit FPGA"

Der Trend hin zu heterogenen Rechnerarchitekturen ist auch im Cloud Computing deutlich sichtbar. Neben schnellerer Verarbeitung bieten FPGAs hier auch eine höhere „Packungsdichte“, da FPGAs bei bestimmten Algorithmen eine bessere Effizienz (gemessen in Tera Operations per Second per Watt) bieten. Seit kurzem gibt es daher auch bei Amazon FPGA-basierte Cloud Server zu mieten, die AWS EC2 F1.

Bis zu 8 FPGA sind hier via PCI-Express mit CPUs und Hauptspeicher verbunden, was viele Möglichkeiten zur Realisierung (und Vergleich) unterschiedlicher Rechnerarchitekturen erlaubt, inkl. NUMA (Non-Uniform Memory Access), Cache Coherenz zwischen FPGA und CPU, Offload Engines oder Full-Accelerators, usw.

Im Rahmen mehrerer unabhängiger Bachelor- bzw. Masterarbeiten wollen wir diverse Aspekte des Cloud-Computing mit FPGA untersuchen:

  • Untersuchung des Debugbarkeit durch Instrumentieren der FPGA-Hardware bzw. Tracing im Linux Kernel.
  • Performanzanalyse nach dem sogenannten „Roof Line Model“ der UC Berkeley.
  • Migration unterschiedlicher, bereits existierender FPGA-Beschleuniger, z. B. für Neuronale Netze, in die Cloud.
  • Inline-Processing zur effizienten Verschlüsselung, Komprimierung, z.B. für IPSec oder SSL.

Wir erwarten: Programmierkenntnisse in C, C++ und/oder SystemC, Grundwissen in FPGA und digitalen Schaltungen, Linux, Ethernet, TCP/IP; Organisiertes Arbeiten in kleinen Teams

 

"C/C++/SystemC im FPGA-Entwurf"

Mittlerweile zeichnet sich in der Mikroelektronik klar ab, dass Moore’s Law und Dennard-Skalierung nicht mehr die erwarteten Performanzsteigerungen bringen werden wie noch vor 10 Jahren. Die Taktfrequenzen von CPUs – ein wichtiges Kriterium für Rechnerperformanz – werden eher langsamer, u.a. um die Verlustleistung zu verringern. Auch Multicore CPUs bringen nicht die erwarteten Performanzgewinne.

Daher geht der Trend in Richtung heterogener Rechnerarchitekturen mit FPGA zur Beschleunigung von parallelisierbaren Datenpfaden. So setzt Microsoft mittlerweile sehr erfolgreich FPGAs zur Beschleunigung in BING bzw. in AZURE ein. Neueste FPGA-Bausteine bieten nämlich ein Mehrfaches an Rechenleistung: Ein Altera Stratix 10 SX2800 bietet 9.2 TeraFLOPS, ein Intel Xeon E5 nur 72 GigaFLOPS.

In Forschung & Lehre verfolgen wir am Institut für Mikro-elektronik daher zwei Ansätze: 1. Ausbildung im „klassischen“ FPGA-Entwurf mit VHDL/Verilog. 2. Einsatz von C/C++/SystemC und High-Level-Synthese (HLS) im FPGA-Design. Dazu bieten wir mehrere unabhängige Bachelor- und Masterarbeiten an, die einen Einblick in moderne Entwurfsmethoden und Anwendungen von FPGAs bieten.

Als Themen stehen z.B. zur Auswahl:

  • Einsatz von SystemC in der High-Level-Synthese im Vergleich zu C/C++.
  • Parallelisierbarkeit von Datenflussoperationen durch sogenanntes „Pipelining“.
  • Einsatz sogenannter „C-callable Hardware Functions“ im Multi-Processor System-on-Chip.
  • Inline-Processing zur Beschleunigung von Verschlüsselung oder Komprimierungin Linux.

Wir erwarten: Programmierkenntnisse in C, C++ und/oder SystemC, Grundwissen in FPGA und digitalen Schaltungen, Linux, Ethernet, TCP/IP; Organisiertes Arbeiten in kleinen Teams.

 

Missing Link Electronics GmbH
Industriestrasse 10
89231 Neu-Ulm
Tel: +49 (731) 141149-14
This email address is being protected from spambots. You need JavaScript enabled to view it.
www.MLEcorp.com