Funktionen

Print[PRINT]
.  Home  .  Lehre  .  Studentische Arbeiten  .  Masterarbeiten  .  Ausschreibung

BA: Portierung und Optimierung der NAS Parallel Benchmarks in OpenCL für FPGAs

Field Programmable Gate Arrays (FPGAs) werden schon lange zum Prototyping eingesetzt, um das Design eines Chips zu testen und optimieren, bevor dieser in großen Stückzahlen gefertigt wird. FPGAs zeichnen sich dadurch aus, dass ihre Konfiguration beliebig oft angepasst werden kann. Im Gegensatz dazu werden Chips wie CPUs oder spezielle ASICs einmalig produziert und bilden dann einen festen Schaltkreis ab. Aufgrund ihrer - im Vergleich zu CPUs und teils GPUs - hohen Energieeffizienz, werden FPGAs mitterweile auch in Rechenzentren zur Beschleunigung der Berechnungen eingesetzt. In diesem Bereich bewegt sich auch die hier ausgeschriebene Arbeit. Die Programmierung bzw. Konfigurierung von FPGAs erfolgte lange Zeit ausschließlich durch so genannte Hardware Beschreibungssprachen wie VHDL oder Verilog, die zwar viel Kontrolle über die Konfiguration erlauben, aber zeitaufwendig, komplex und fehleranfällig sind. In letzter Zeit werden abstraktere Programmiermodelle wie OpenCL genutzt, um vor allem Softwareentwicklern den Zugang zu FPGAs zu erleichtern. Hierbei werden nicht mehr explizit die Schaltung konfiguriert, sondern ein Compiler generiert diese aus C, bzw. OpenCL-Code.

Bei den NAS Parallel Benchmarks (NPB) handelt es sich um eine kleine Menge von Programmen, die sich zur Evaluierung der Leistungsfähigkeit von Hardware im High Performance Computing Umfeld genutzt werden kann. Die Programme reichen von einfachen leicht parallelisierbaren Kernels bis zu komplexeren Applikationen.

In dieser Arbeit soll eine bereits vorhandene OpenCL-Implementierung der NPB für FPGAs portiert bzw. optimiert werden. Obwohl OpenCL-Code grundsätzlich portierbar ist, muss dieser für eine effiziente Ausführung auf FPGAs optimiert werden. Dies kann durch anpassen der Speicherzugriffe, manipulation der reservierten Resourcen und Umstrukturierung der Algorithmen geschehen. Zur Evaluation steht am Lehrstuhl aktuelle high-end Hardware für Experimente bereit.

Zusätzliche Informationen

Voraussetzungen

Wünschenswert sind Kenntnisse in C, C++ oder anderen systemnahen Sprachen. Diese können sich auch im Rahmen der Bachelorarbeit angeeignet werden.

Überblick der (möglichen) Aufgaben

  • Einarbeitung in das Programmier-, System- und Speichermodell von OpenCL
  • Analyse der vorhandenen Kernels nach Optimierungspotential
  • Umsetzung der Optimierungen
  • Analyse der Ergebnisse

Organisatorisches