GPU Computing - Architecture and Programming (GPU)
Course Overview
Modern GPUs are powerful, massively-parallel high-core-count processors. They are no longer used solely for graphics applications, but also accelerate computationally intensive general-purpose tasks. In this course, we will look in detail at the GPU’s internal architecture, the differences to general-purpose processors like CPUs, and how to program GPUs. Powerful GPUs are available for exercises and experiments.
The following key questions guide this course’s content:
- How do GPUs differ from CPUs and why is this inline with CMOS technology scaling?
- How to write fast GPU code, i.e. which performance bugs exist and how to avoid them?
- Performance analysis of GPU code
As GPUs are the workhorse behind deep neural networks, this course nicely complements the contents of Embedded Machine Learning.
Lecturer (current)
Contents
- GPU architecture
- CUDA programming
- Scheduling/code/shared memory optimizations
- Introduction to multi-GPU programming
- Advanced GPU architecture
- Review of alternatives with regard to massively parallel processors and programming models
Requirements
Recommended is solid knowledge of C/C++ and the basics of computer architecture.
Notes
- Frequency: winter term
- Next edition of this course is scheduled for winter 2024/25
- Among others, course qualifies for the following programs (please double-check listing within heiCO and possible specialization constraints)
- Course start: Oct 22, 14:00
- Room is OMZ/INF350 basement, U014. Enter the building from the east. If you don’t see a ZITI sign when entering, you might be at the wrong entrance.
- Moodle has unrestricted enrollment. Course participation is determined by heiCO.