In der Vorlesung werden Konzepte zur effizienten parallelen Datenverarbeitung mit Grafikkarten (GPU) vorgestellt. Dabei liegt der Fokus auf der praxisnahen Anwendung von GPU-Programmierungstechniken für Simulations- und Grafikanwendungen sowie der Verarbeitung von großen Datenmengen. Es werden die folgenden Inhalte vermittelt:
- • Multithreading Grundlagen
- • OpenMP
- • Parallele Rechnerarchitekturen (MIMD, SIMD)
- • Cache-Kohärenz und Datenkonsistenz
- • Speicherhierarchien
- • GPU-Programmierung mit CUDA
- • Performance-Optimierung und -Evaluation von Algorithmen
- Dozent(in): Eric Heim
- Methodenkompetenz zur Analyse komplexer, verteilter Vorgänge.
- Methodenkompetenz zum Entwurf einer geeigneten Edge Computing Systemarchitektur.
- Methodenkompetenz zur Analyse und Konzeption von Datenstrom-orientierter Programmierung am Beispiel von Tensorflow (Lite).
- Methodenkompetenz zum Entwurf von Linux-Device Treiber zur Anbindung von Sensoren und Aktoren.
- Anwendungskompetenzen im Bereich IoT-Protokolle und Services.
- Praktische Erfahrungen an Edge-Computing basierten Embedded Linux Devices.
- Dozent(in): Eric Heim
Die Vorlesung vermittelt grundlegende Konzepte des maschinellen Lernens und der statistischen Musteranalyse. Dabei werden die einzelnen Themen anhand von aktuellen praktischen Anwendungsgebieten des maschinellen Lernens vorgestellt. Zu den Themen gehören: überwachtes Lernen, unüberwachtes Lernen, Reinforcement Learning, Bayes’sche Entscheidungstheorie, Gradientenverfahren, Ensemble Lernalgorithmen sowie Evaluationsmetriken und -techniken.
- Dozent(in): Eric Heim
Objektorientierte Programmierung
Sie werden Ihre Programmierkenntnisse vertiefen und dabei die objektorientierte Programmierung kennenlernen. Dabei werden die Programme größer und umfangreicher, und mit C++ (14) die Syntax etwas komplexer aber meist/oft auch etwas schöner. Zusätzlich lernen Sie and grundlegenden Beispielen Algorthmen und Datenstruturen zu verstehen, entwerfen, analysieren und fehlerfrei (sic!) umzusetzen. Spätestens jetzt werden Sie den Debugger verwenden und selbst programmieren! - seien Sie kreativ, nichts auswendig lernen.
• Einführung in C++, Erweiterungen ggü. C
• Klassen und Objekte
• Überladen von Operatoren
• Templates
• Algorithmen und Datenstrukturen
• Laufzeit und Komplexität, Suche
• Sortieren
• Algorithmenmuster
• Sequenziell gespeicherte lineare Listen
• Verkettete gespeicherte lineare Listen
• Vererbung
• Ausnahmen
• Die Standard-Template Library (STL)
• Bäume
• Hashing
- Dozent(in): Peter Barth
- Dozent(in): Eric Heim