Collection of projects for students

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

Quantum Computing

Framework and Compiler for Hybrid Quantum-Classical Computing

Contemporary quantum computers provide a limited amount of qubits and are sensitive to their environment (noise). This is described by the term Noisy Intermediate-Scale Quantum Computing (NISQ) era. Quantum algorithms most often are implement in low-level abstractions similar to assembly or with low-level primitives used to drive a quantum controller. Hybrid quantum computing describes the combination of both approaches, classical computation and quantum computation. Due to the small quantum volume, i.e., the amount of qubits and the low gate fidelity, it is beneficial to move computations from the quantum world into the classical world.

In this project you will work on implementing/extending a MLIR-based compiler for hybrid quantum-classical computations.

Requirements: Good knowledge of C/C++
Beneficial: Basic understanding of Quantum Computing, linear algebra, LLVM, MLIR

Contact: Dr. Lars Schütze

 

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.