TU Wien:HW/SW Codesign LU (Steininger)

From VoWi
Jump to navigation Jump to search

Daten[edit]

Lecturers Andreas Steininger, Jürgen Maier
ECTS 4,5
Department Computer Engineering
Links tiss:182701, Homepage, Mattermost-Channel
Zuordnungen
Master Embedded Systems Wahlmodul HW/SW Codesign
Master Technische Informatik Wahlmodul Digital Circuits and Systems


Inhalt[edit]

Ein Projekt wird als Software Lösung zur Verfügung gestellt und soll mittels HW/SW Codesign (massiv) beschleunigt werden. Wie man das macht, ist vollkommen freigestellt.

Ablauf[edit]

Zuerst eine Einzelphase (ca. ein Monat) wo ein kleines Projekt gemacht werden muss. Dieses dient dazu mit den Tools vertraut zu werden und ein paar Möglichkeiten wie man HW mit SW verbindet kennen zu lernen. Hier sind die Vorgaben relativ strikt um alles mal kennen zu lernen. Die Aufgabe ist aber so gewählt, dass man Teile davon für den Maintask übernehmen kann.

Benötigte/Empfehlenswerte Vorkenntnisse[edit]

VHDL muss man schon vorher sehr gut können! TU Wien:Digital Design and Computer Architecture (Polzer) ist auf alle Fälle notwendig.

Vortrag[edit]

Es gibt keinen regelmäßigen Vortrag. Neben einem Tutorial im Lab gibt es einen Termin an dem der Maintask vorgestellt wird. Das Tutorial sollte auf alle Fälle besucht werden oder sich nachträglich von Kolleg_inne oder Bereuenden erklären lassen.

Übungen[edit]

Einzelphase[edit]

Hier wird klar vorgegeben was Schritt für Schritt gemacht werden muss. Dies dient eher als ausführliches Tutorial und ist keine große Herausforderung.

Gruppenphase (Maintask)[edit]

Hier wird ein lauffähiges FPGA Projekt zur Verfügung gestellt, welches aber außer einen Prozessor und HW für Ausgabe/Darstellung keine weitere HW enthält. Entsprechend ist die Ausführung ganz in SW und auf dem Embedded Prozessor sehr langsam. Ziel ist es durch erweitern der HW mit speziellen Funktionen die Berechnungen massiv zu beschleunigen.

Es gibt hier verschiedene Aufgaben die sich jedes Jahr abwechseln:

  • WS19: es musste eine Raytracing Anwendung von 40 Sekunden pro Frame auf ca. 20 Frames pro Sekunde beschleunigt werden.

Prüfung, Benotung[edit]

Es gibt keine Prüfung. Die Benotung erfolgt anhand der Einzelaufgabe, der Präsentation des Plans für den Maintask, die Performance der Abgabe und des Abgabegesprächs. Dazu gibt für die Besten der Einzelphase noch Bonuspunkte.

Dauer der Zeugnisausstellung[edit]

noch offen

Zeitaufwand[edit]

Sehr, sehr hoch. Auf alle Fälle im Klaren sein, dass die 4.5 ECTS in keinem Verhältnis zum tatsächlichen Aufwand stehen. Meist ist aber die Deadline nicht strikt. Man hat noch bis zum Ende des darauf folgenden Semesters Zeit, also in Summe fast 8 Monate.

Unterlagen[edit]

Neben Links zu Manuals der Tools und der Hardware, wird zum Maintask passende Lektüre verlinkt.

Tipps[edit]

  • Den Maintask gut planen und nicht einfach drauf los arbeiten
  • Bald mit dem Maintask beginnen und gut einteilen.
  • Die Softwarelösung genau hinterfragen und nicht 1:1 in HW übersetzten. Vielleicht können Ergebnisse anders berechnet oder approximiert werden, sodass sich das in HW besser einfacherer machen lässt.
  • Die Aufgaben gut partitionieren und inkrementell einzelne Software-Teile durch HW ersetzen. So spart man sich viel Fehlersuchen.
  • Die Gruppenarbeit gut einteilen. Es müssen alle mitmachen, sonst wir das noch viel mehr Aufwand.
  • Von Anfang an die Beschränkte Größe des FPGAs im Auge behalten. Früher oder später gibt es Platzprobleme.

Verbesserungsvorschläge / Kritik[edit]

  • Leider sind die wirklich guten Lösungen immer Lösungen wo sehr viel (fast alles) durch Hardware ersetzt wird. Da wird es oft so, dass die SW am Ende nur mehr die HW startet und auf Fertigstellung wartet. Das ist dann nicht mehr wirklich HW-SW Codesign, sondern eher SW to HW compiling.