Markus Hadwiger, Peter Rautek, Amani Ageeli

Overview
This course covers the architecture and programming of GPUs (Graphics Processing Units). It covers both the traditional use for rendering graphics, as well as the use of GPUs for general purpose computations (GPGPU), or GPU Computing.
Synopsis
CS 380. GPU and GPGPU Programming (3-0-3) Recommended prerequisites: CS 248, CS 292, CS 282. Architecture and programming of GPUs (Graphics Processing Units). Covers both the traditional use of GPUs for graphics and visualization, as well as their use for general purpose computations (GPGPU). GPU many-core hardware architectures, shading and compute programming languages and APIs, programming vertex, geometry, and fragment shaders, programming with CUDA, Brook, OpenCL, stream computing, approaches to massively parallel computations, memory subsystems and caches, rasterization, texture mapping, linear algebra computations, alternative and future architectures.
Hours and Location
Monday, 10:15 - 11:45, Room 3128, Bldg. 9.
Wednesday, 10:15 - 11:45, Room 3128, Bldg. 9.
Instructor
Prof. Markus Hadwiger
Markus Hadwiger
Peter Rautek
Amani Ageeli
Programming assignments
Bitbucket git repository for the programming assignments (Peter needs to give you access).
Slides (fall 2021)
Aug 30, 2021 |
Lecture 1: Introduction, Pt. 1. |
Sep 1, 2021 |
Lecture 2: Introduction, Pt. 2. |
Sep 6, 2021 |
Lecture 3: Introduction, Pt. 3. |
Sep 8, 2021 |
Lecture 4: GPU Architecture, Pt. 1. |
Sep 13, 2021 |
Lecture 5: GPU Architecture, Pt. 2. |
Sep 15, 2021 |
Lecture 6: GPU Architecture, Pt. 3. |
Sep 20, 2021 |
Lecture 7: GPU Architecture, Pt. 4. |
Sep 27, 2021 |
Lecture 8: GPU Architecture, Pt. 5. |
Sep 29, 2021 |
Lecture 9: GPU Architecture, Pt. 6. |
Oct 4, 2021 |
Lecture 10: GPU Architecture, Pt. 7. |
Oct 6, 2021 |
Lecture 11: GPU Compute APIs, Pt. 1. |
Oct 11, 2021 |
Lecture 12: GPU Compute APIs, Pt. 2. |
Oct 13, 2021 |
Lecture 13: GPU Compute APIs, Pt. 3. |
Oct 20, 2021 |
Lecture 14: GPU Texturing, Pt. 1. |
Oct 25, 2021 |
Lecture 15: GPU Texturing, Pt. 2. |
Nov 1, 2021 |
Lecture 16: GPU Texturing, Pt. 3. |
Nov 3, 2021 |
Lecture 17: GPU Texturing, Pt. 4, Virtual Texturing, Virtual Geometry. |
Nov 8, 2021 |
Lecture 18: Stream Computing and GPGPU. |
Nov 10, 2021 |
Lecture 19: CUDA Memory, Pt. 1. |
Nov 15, 2021 |
Lecture 20: CUDA Memory, Pt. 2. |
Nov 22, 2021 |
Lecture 21: CUDA Memory, Pt. 3. |
Nov 24, 2021 |
Lecture 22: GPU Parallel Reduction. |
Nov 29, 2021 |
Lecture 23: GPU Parallel Prefix Sum / Scan. |
Dec 1, 2021 |
Lecture 24: Scan Bank Conflicts; CUDA Memory, Pt. 4. |
Dec 6, 2021 |
Lecture 25: CUDA Memory, Pt. 5; Shuffle Instructions; Cooperative Groups. |
Dec 8, 2021 |
Lecture 26: Tensor Core Programming. |
Resources
Old Slides
Fall 2020
Aug 31, 2020 |
Lecture 1: Introduction, Pt. 1. |
Sep 2, 2020 |
Lecture 2: Introduction, Pt. 2. |
Sep 7, 2020 |
Lecture 3: GPU Architecture 1. |
Sep 9, 2020 |
Lecture 4: GPU Architecture 2. |
Sep 14, 2020 |
Lecture 5: GPU Architecture 3. |
Sep 16, 2020 |
Lecture 6: GPU Architecture 4. |
Sep 21, 2020 |
Lecture 7: GPU Architecture 5. |
Sep 28, 2020 |
Lecture 8: Quiz #1 |
Sep 30, 2020 |
Lecture 9: GPU Architecture 6. |
Oct 5, 2020 |
Lecture 10: GPU Architecture 7. |
Oct 7, 2020 |
Lecture 11: GPU Architecture 8. |
Oct 12, 2020 |
Lecture 12: GPU Compute APIs 1. |
Oct 14, 2020 |
Lecture 13: GPU Compute APIs 2. |
Oct 21, 2020 |
Lecture 14: GPU Compute APIs 3, GPU Texturing 1. |
Oct 26, 2020 |
Lecture 15: GPU Texturing 2. |
Oct 28, 2020 |
Lecture 16: GPU Texturing 3. |
Nov 2, 2020 |
Lecture 17: GPU Texturing 4. |
Nov 4, 2020 |
Lecture 18: GPU Texturing 5. |
Nov 9, 2020 |
Lecture 19: GPU Texturing 6; Stream Computing and GPGPU. |
Nov 11, 2020 |
Lecture 20: CUDA Memory: Shared Memory. |
Nov 16, 2020 |
Lecture 21: CUDA Memory, Pt.2; GPU Reduction. |
Nov 18, 2020 |
Lecture 22: CUDA Memory, Pt. 3. |
Nov 23, 2020 |
Lecture 23: CUDA Memory, Pt. 4. |
Nov 25, 2020 |
Lecture 24: GPU Parallel Prefix Sum / Scan. |
Dec 2, 2020 |
Lecture 25: Parallel Scan Bank Conflicts; Shuffle Instructions. |
Dec 7, 2020 |
Lecture 26: Warp Synchronous Programming; Cooperative Thread Groups; Programming Tensor Cores. |
Dec 9, 2020 |
Lecture 27: CUDA Unified Memory; More on Instruction Level Parallelism. |