University of Heidelberg

Introduction to GPU Accelerated Computing WS 2021/2022 Block Course with Exercises

NEWS: Feb. 19, 2022: Sorry, registration is closed now, the course is full.
The course will be held FULLY online.
All participants registered by now are accepted.

Link to tutorial groups: https://uebungen.physik.uni-heidelberg.de/v/1382 (enrolment closed now).
Block Course, February 21-25, 2022;
Begin: Monday, Feb. 21, 10:15; End: Friday Feb. 25, 13:00
Schedule: Morning Lecture, Mon-Fri 10:15-13:00;
Afternoon Hands-on Exercise: Mon - Thu 14:15-17:00; Fri: none
Lunch Break: daily 13-14

Your personal laptop or desktop should be used in the course to connect to our GPU supercomputer (kepler cluster of ARI/ZAH). Please prepare to use ssh, do you know how to do this? Under Linux it is quite easy, but under Windows you may have to install a putty client (see also https://www.wikihow.com/Use-SSH and https://putty.org/ ). All numerical experiments will be done on the kepler cluster.

zoom rooms to be used: published in the Rocket Chat .

Files: Lecture pdf files for download:

Starting Instructions for Lecture and Tutorials (Feb. 21)
Links to presentation slides of morning lectures:
Feb. 21 ; Feb. 22 ; Feb. 23 (partly Feb. 25) ; Feb. 24 ; Feb. 25
Description of CUDA histograms (8_histo) from Jason Sanders Book
Special informations to run NBODY exercise (Feb. 24)


Links to zoom recordings of morning lectures:
Feb. 21 (~200 MB) ; Feb. 22 (~230 MB) ; Feb. 23 (~200 MB) ; Feb. 24 (~240 MB) ; Feb. 25 (~155 MB)


Links to Whiteboard Sketches: Feb. 21 ; Feb. 22 ; Feb. 23 ; Feb. 24 ; Feb. 25


During the first days the lecture will closely follow a lecture of Jason Sanders:
XX Lecture Slides Jason Sanders complete
XX : The file is password protected; the password will be sent to registered participants; if you are interested to look at it before registration, please contact the lecturer.
In CUDA by Example (Book by Jason Sanders) the lecture material of the first days is explained in depth. The course will go beyond the book in the last days. For successful participation in the course it is NOT necessary to buy or borrow the book. All materials needed will be distributed in the course; the book provides useful additional material only.
Wenmei Hwu Lecture 1: Computational Thinking is a more general lecture on parallel computing and computational thinking; it goes much beyond what is covered in our course:

Summary: We will learn the basic technique to use GPU (graphical processing units, graphics cards) for numerical accelerated computing at the example of CUDA - an extension of C. The course is inspired by Jason Sanders Lecture, but not identical to it.
Lecturer: Prof. Rainer Spurzem; ZAH/ARI, Mönchhofstr. 12-14, 69120 Heidelberg
Email: spurzem@ari.uni-heidelberg.de
Teaching Assistants: Ramesh Rahul, rahul.ramesh@stud.uni-heidelberg.de
Peter Lysakowski, peter.lysakovski@uni-heidelberg.de
Rainer Spurzem, spurzem@ari.uni-heidelberg.de
Time and Place: Lecture: Monday - Friday, February 21-25, 2021: 10:15 - 13:00;
Exercises: Monday - Thursday, February 21-24, 2021: 14:15 - 17:00; (no exercises Fri afternoon!)
Requirements: Basic knowledge of a higher programming language such as C, C++, Fortran or similar

Topic: We will learn the basic technique to use GPU (graphical processing units, graphics cards) for numerical accelerated computing at the example of CUDA - an extension of the C programming language. Also some general ideas of parallel programming will be discussed. GPU accelerated parallel computing is a technique used in many areas of computational physics and astrophysics. After the basic introduction one or two application examples will be presented. This is a five day block course with lectures in the morning and practical hands-on exercises in the afternoon. Topics: Parallel Computing, GPU Hardware, Elements of CUDA Language, Data Transfer, Vector and Matrix Operations, Simple Application for N-Body Problem.
Literature: CUDA by Example, of Jason Sanders and Edward Kandrot . Our course is inspired by this book and lectures of the authors, will cover much less details, but go for some topics beyond the content of the book; also we will learn an example astrophysical application.


(Responsible for contents: Rainer Spurzem )
Contact: D. Möricke
to top of page