University of Heidelberg

Introduction to GPU Accelerated Computing

Winter Semester 22/23 Block Course with Practical Exercises

NEWS: The morning lectures will be given online via zoom. For the afternoon tutorials (hands-on exercises) we have reserved: CIP pool INF 227 KIP 1.401, Group 1; CIP Pool Phys. INF 226 (Group 2 Mon, Tue, Thu; Wed zoom online; Group 3 will be fully online via zoom. Teaching Assistants have been named (see below). The coordinates of zoom rooms can be found in the rocket chat of our course: https://uebungen.physik.uni-heidelberg.de/chat/group/WS22-GPU-Course .
Informations: Link to registration: https://uebungen.physik.uni-heidelberg.de/v/1554 .
Block Course, February 20-24, 2023;
Begin: Monday, Feb. 20, 10:15; End: Friday Feb. 24, 13:00
Schedule: Morning Lecture, Mon-Fri 10:15-13:00;
Afternoon Hands-on Exercise: Mon - Thu 14:00-17:00; Fri: none
Lunch Break: daily 13-14

You may use your personal laptop or desktop or the computer terminals in the CIP pool rooms; the online tutorial can only be done using a laptop. In any case in the course we have 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.

Files: Lecture pdf files for download:

Starting Instructions for Lecture and Tutorials (Feb. 20)
Links to presentation slides of morning lectures:
Feb. 20 ; Feb. 21 ; Feb. 22 ; Feb. 23 ; Feb. 24 ;
Nbody Lecture: Feb. 23 (Slide 10: Update for grav. wave detectors, Feb. 23, 22:30) ;
Feb. 24: Description of CUDA histograms (8_histo) from Jason Sanders Book
Special informations to run NBODY exercise (Feb. 23)


Links to zoom recordings of morning lectures:
Feb. 20 (~230 MB) (password protected see rocket chat, same as Jason Sanders lecture) ;
Feb. 21 (~215 MB) ; Feb. 22 (~240 MB) ; Feb. 23 (~170 MB) ; Feb. 24 (~130 MB) ;

Links to Whiteboard Sketches: Monday, Feb. 20 ; Tuesday, Feb. 21 ; Wednesday, Feb. 22 ; Thursday, Feb. 23 ; Friday, Feb. 24 ;

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 has been put in our rocket chat.
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: Group 1: Dr. Francesco Flammini Dotti fmfd@uni-heidelberg.de (CIP Pool INF227 KIP 1.401)
Group 2: Vahid Amiri vahid.amiri@uni-heidelberg.de (CIP Pool Phys INF226) Mon, Tue, Thu; Wed online zoom
Group 3: Marcelo Vergara marcelo.c.vergara@uni-heidelberg.de online zoom
All zoom coordinates will be distributed in Rocket Chat
Time and Place: Lecture: Monday - Friday, February 20-24, 2023: 10:15 - 13:00;
Exercises: Monday - Thursday, February 20-23, 2023: 14:15 - 17:00; (no exercises Fri afternoon!)
Requirements: Basic knowledge of a higher programming language such as C, C++, Fortran or similar

Topic: This is a five day block course with lectures in the morning and practical hands-on exercises in the afternoon. 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, which is used for the NVIDIA GPU accelerated supercomputer to be used in our course. More general approaches for other systems will be discussed. Concepts of parallel programming are introduced. GPU accelerated parallel computing is a technique, which is now widely used in computational physics and astrophysics. Many supercomputers of EuroHPC Petascale systems use GPU.
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