Collection of projects for students

On this page you will find a summary of all open projects for study/bachelor and diploma theses.

Embedded Systems

Contact: Dr. Steffen Köhler

 

Machine Learning and Heuristics

Modeling Source Code for Machine Learning

Central to ML-Methods is the way how to represent and model data, with the goal to learn meaningful features for the given task. In compilers, knowledge from analysis can be exploited to construct better models. So far, we have explored representations at different levels and modeled them using Graph Neural Network (GNN) models. Your task will be to work on new models with additional compiler-internal semantics.

Requirements: C/C++, Python
Beneficial: Machine Learning, Graph Algorithms
Related Work: [1], [2], [3]

Tools for Emerging Memory Technologies
  • Compilation for unconventional architectures:

Emerging non-volatile memory technologies have the potential to compute various logic and compute operations in place. They, however, have their own limitations. In this project, you will work on developing/extending a compiler that hides/mitigate these limitations and exploit the full potential of these novel architectures. As a target system, you will work on compute-in-memory (CIM) systems using various nonvolatile memory technologies.

Requirement(s): You should be motivated and have some C++ background (LLVM/MLIR background is preferred).

  • Simulation infrastructure for CIM systems:

To quickly characterize and understand the various tradeoffs in CIM systems (see the description of the project above), it is imperative to have simulation tools that can model them. In this project, you will work on developing a gem5-based simulation infrastructure for CIM systems (similar to the following). The tools will enable the exploration of different NVM technologies at different memory hierarchy levels. Feel free to ping me for more details.

Requirement(s): C/C++ (basic computer architecture knowledge is preferred).

  • Intelligent Data Movement in the Memory Hierarchy:
Data movement in the memory hierarchy is expensive and memory systems, generally, are blind to running applications. In this project, you will analyze the applications statically to find out which hierarchy level best suits the memory requirement of the current input program (there are tools that can be used) and place it accordingly. If done correctly, you may guarantee a 100% cache hit rate.

Contact details and further tasks description can be found here.

Go back