lunduniversity.lu.se

Embedded Systems Design Laboratory

Computer Science | Faculty of Engineering, LTH

Denna sida på svenska This page in English

Master Thesis Proposals

Solving Non-Linear PDEs using CUDA

Contact: Michail.Boulasikis@cs.lth.se

Announced: October 2024

Background

One of the most common computations in scientific computing is the solution of partial differential equations (PDEs). PDEs are mathematical tools used to model how quantities change over time and space. They are widely applied in fields like physics, engineering, medicine and finance. Solving these equations is computationally demanding, as it involves breaking the problem into many small calculations across a large grid or space. Fortunately, these calculations are often independent of each other, making them highly parallelizable and a good fit for GPUs, which can handle thousands of operations simultaneously.

Thalassa is a framework developed in-house in LTH’s Department of Computer Science to address challenges associated with solving PDEs. It generates parallel PyTorch tensor-based solvers for non-linear PDEs, targeting specialized hardware like GPUs and TPUs. However, it lacks a custom CUDA back-end to fully utilize NVIDIA GPUs, which limits its performance potential. By developing a dedicated CUDA back-end, Thalassa could generate optimized GPU kernels, significantly accelerating the solution process and enhancing accuracy. This improvement would make Thalassa a more powerful and versatile tool for scientific computing applications, enabling researchers to solve complex PDEs faster and more effectively.

Project Goals

The main goal of this thesis project is to design and implement a new CUDA back-end for Thalassa that generates GPU kernels specifically for solving target PDEs on NVIDIA hardware. The project will focus on two key aspects: ensuring the correctness of the solvers by comparing CUDA results to traditional solvers and optimizing the CUDA solvers for speed and efficiency through kernel optimizations.

Once the CUDA back-end is developed, the following research questions will be explored:

  1. How does the performance of a dedicated CUDA back-end compare to the existing PyTorch back-end?
  2. What are the main bottlenecks affecting the speed of the CUDA solvers?
  3. What are the most effective optimizations for improving CUDA solver performance?

Throughout the project, you will work closely and be supervised by Michail Boulasikis, Thalassa’s developer. If time permits, the project could also explore extending Thalassa to support implicit solvers. This would involve using libraries like cuBLAS and cuSPARSE to expand Thalassa’s solver capabilities.

Prerequisites

The project is suitable for 1-2 students. Required skills include a good understanding of CUDA programming, parallel computing and how compilers work, as well as knowledge in python. Knowledge of numerical methods for PDEs as well as linear algebra is recommended.

References

  1. CUDA C++ Programming Guide https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html
  2. Partial Differential Equations for Scientists and Engineers by Stanley J. Farlow.
  3. Solving the Heat Equation using CUDA https://enccs.github.io/OpenACC-CUDA-beginners/2.02_cuda-heat-equation/