Projects

Explore my software projects, open-source contributions, and development work.

ML Training Boilerplate Project

This project serves as a boilerplate for training machine learning models. It includes distributed training, logging (WandB), Mixed Precision, and more. The project is designed to be easily extendable, allowing users to add their own datasets and models with minimal effort. Feel free to check out the repo and use it as a starting point for your own machine learning projects!

pytorch machine-learning

Custom CUDA Kernel

During one of my papers, we needed to use multiple 3D convolutions to calculate some structural properties of porous media. However, for porous media, only the solid materials are of interest, so we needed to mask the convolutions while keeping a normalization to 1. This can be done with two convolutions divided, see the paper. To practice some CUDA, I now started to implement a masked convolution in CUDA, which should be faster than two cupy convolutions. Since I did not find any GeMM implementation, I started with the crude implementation.

CUDA C++ NVIDIA GPUs
N-body Simulation

N-body Simulation

Inspired by the 3-body problem series on Netflix, I implemented a N-body simulation in C++. The simulation is rather basic and only uses a simple Euler integration. Yet, it is still fun to play around with different initial conditions. In this gif, you can see two suns orbiting around each other, stealing each other’s planets.

C++