TRA220 GPU-accelerated computational methods using Python and CUDA
- This is Tracks course. In this course, the students will learn how to write a simple CFD, FEM code, a Poisson solver or a wave propagation solver. The code should run entirely or partly on the GPU using CUDA. MSc and PhD students at Chalmers are welcome. Study period 2, 2023.
- The course does not belong to a specific Master programme but it is a cross disciplinary course.
- What is a Tracks course?
- The course fulfils sustainable development goals (SDGs) Goal 9: Industry, Innovation and Infrastructure
Nvidia, CUDA, GPU
- Nvidia has developed a programming interface for GPUs called CUDA
- CUDA In Action - Research & Apps
- Nvidia is very active in updating CUDA
- Many companies, such as Volvo Group, Volvo Cars use Nvidia Graphic Cards which are programmed in CUDA.
- Chalmers hosts a national GPU cluster
Tracks management
- Mikael Enelund, Director Tracks mikael.enelund@chalmers.se
- Kristina Henricson Briggs, Director Tracks kristina.henricson.briggs@chalmers.se
- Ingemar Josefsson, secretary of studies ingjose@chalmers.se
Teachers
- Rickard Bensow, rickard.bensow@chalmers.se
- Lars Davidson, lada@chalmers.se
- Fredrik Larsson, fredrik.larsson@chalmers.se
- Nikela Papadopoulou, nikela@chalmers.se
Application
- Send the application to lada@chalmers.se latest at 30 September. Please include a letter explaining your contribution to the project group. This may be used when prioritizing if we get too many applicants.
Course content
- Introduction lectures first week on CUDA programming including two mini-workshops.
- Project.
- the student groups write a simple CFD/FEM code or Poisson solver or wave propagation solver in CUDA. Ideally, each group includes students with knowledge in CFD, FEM, Poisson equation or wave propagation and CUDA.
- Here are examples of Python codes for Poisson, LaPlace, linear and non-linear convection, Burger's equation etc
- Here's an example of a simple Poisson solver (by lada) which can be used for working on Poisson solvers
- Here's an example of a finite volume code written in CUDU (by lada)
- Here's an example of a student reports from the Track course 2022
- Students who choose to do a CFD project may start with a CFD Python code (by lada) with a turbulence model or a simpler Navier-Stokes code
- profiling (GPU time, uploading/downloading data to/from the GPU etc)
- Written and oral presentation of the project
Learning outcomes
General learning outcomes are found in the course description of TRA105 - Tracks advanced 1
Detailed learning outcomes
- be able to programme numerical solvers in Python
- be able to programme in CUDA
- be able to profile the programme
Course PM
The first lecture (including mini workshop) will take place on Thursday 2 Nov at 13.00-15.00 in Room SB3-L113. There will be one more lecture 7 Nov at 13.00-15.00 in SB2-L408. The remaining of the course will mainly be project work and project meetings (once a week). The times for the meetings will be determined by each project group.
Please bring a lap-top to the first lecture. It is not necessary that your lap-top has a Nvidia graphics card.
A large part of the course will consist of a programming project. It should be on either FEM, CFD or solving a Poisson equation or the wave propagation equation. Please send an Email to lada@chalmers.se giving your preference. We will then form groups of 3-4 students.
We will arrange a mid-term meeting where the project groups will give a short presentation of the status of their project
At the end of the course (probably in the exam week), we will organize a workshop where all project groups will present their work. The project groups should also submit a report.
How to run on GPUs using Chalmers computers
Here you find information on how to use Chalmers computers.
You can register on the project C3SE 2023/2-15 and apply for an account here
Here you find a self-study Canvas course on how to use Vera cluster