Heutzutage werden Graphdatensätze in zahllosen wissenschaftlichen und kommerziellen Anwendungen (Transportwesen, Kommunikation, Wirschaftskreisläufe, etc.) verwendet und die effiziente Gewinnung nicht-trivialer Informationen aus ihnen ist zu einer Herausforderung geworden. Auch im Bereich Machine Learning steigt das Interesse an der Informationsgewinnung basierend auf Graphen (Graph Deep Learning) immens an. Aus den bestehenden Verbindungen (Kanten) zwischen den bestehenden Entitäten (Knoten) lassen sich Vorhersagen auf mehreren Ebenen treffen. Auf Knotenebene werden u.a. Proteinfaltungen vorhergesagt, auf der Ebene von Kanten Nebenwirkungen von Medikamenten bestimmt und Graphenebene Wettervorhersage betrieben.
In diesem Semesterprojekt geht es darum, die Algorithmen, welche die ML Analysen ermöglichen, zu verstehen und zu implementieren. Der Fokus liegt hierbei auf GPUs. Im Vergleich zu CPUs verfügen GPUs im Allgemeinen über weniger Cache und Speicher, dafür aber über viel mehr Rechenleistung und Speicherbandbreite.
Inhalte und Ziele:
- Graphenalgorithmen und Darstellungen im Bereich Machine Learning programmieren
- Einarbeitung in GPU-basierter (CUDA) Programmierung
- Low-Level Python (z.B. PyTorch) bzw. C++ (z.B. CUDA C++) Implementierung verstehen
- Optimierung basierend auf Speicherhierarchien
Voraussetzungen:
- erfolgreicher Abschluss von Grundlagen der Programmierung
- Erfahrung mit C++ oder Einarbeitung zu Beginn des Moduls
- Kursverantwortliche/r: Fabian Brandt-Tumescheit
- Kursverantwortliche/r: Prof. Dr. Henning Meyerhenke