Markus Hadwiger, Peter Rautek, Julio Rey Ramirez, Reem Alghamdi
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:00 - 11:30, Room 3120, Bldg. 9.
Thursday, 10:00 - 11:30, Room 3120, Bldg. 9.
Instructor
Prof. Markus Hadwiger
Markus Hadwiger
Peter Rautek
Julio Rey Ramirez
Reem Alghamdi
Programming assignments
Peter will give you access.
Slides (fall 2024)
Aug 26, 2024 |
Lecture 1: Introduction, Pt. 1. |
Aug 29, 2024 |
Lecture 2: Introduction, Pt. 2. |
Sep 2, 2024 |
Lecture 3: GPU Architecture, Pt. 1. |
Sep 5, 2024 |
Lecture 4: GPU Architecture, Pt. 2. |
Sep 9, 2024 |
Lecture 5: GPU Architecture, Pt. 3. |
Sep 12, 2024 |
Lecture 6: GPU Architecture, Pt. 4. |
Sep 16, 2024 |
Lecture 7: GPU Architecture, Pt. 5. |
Sep 17, 2024 |
Lecture 8: GPU Architecture, Pt. 6. |
Sep 19, 2024 |
Lecture 9: GPU Architecture, Pt. 7. |
Sep 26, 2024 |
Lecture 10: GPU Architecture, Pt. 8. |
Sep 30, 2024 |
Lecture 11: GPU Architecture, Pt. 9; GPU Compute APIs, Pt. 1. |
Oct 1, 2024 |
Lecture 12: GPU Compute APIs, Pt. 2. |
Oct 3, 2024 |
Lecture 13: GPU Compute APIs, Pt. 3. |
Oct 7, 2024 |
Lecture 14: GPU Compute APIs, Pt. 4. |
Oct 8, 2024 |
Lecture 15: CUDA memories, Pt. 1. |
Oct 10, 2024 |
Lecture 16: CUDA memories, Pt. 2. |
Oct 15, 2024 |
Lecture 17: Vulkan tutorial #1. |
Oct 17, 2024 |
Lecture 18: Quiz #2. |
Oct 21, 2024 |
Lecture 19: CUDA memories, Pt. 3. |
Oct 22, 2024 |
Lecture 20: CUDA memories, Pt. 4 |
Oct 24, 2024 |
Lecture 21: GPU Parallel Reduction. |
Oct 28, 2024 |
Lecture 22: GPU Parallel Prefix Sum. |
Oct 29, 2024 |
Lecture 23: Prefix Sum Bank Conflicts; Tensor Core Programming. |
Oct 31, 2024 |
Lecture 24: Graphics Pipelines; GPU Texturing, Pt. 1. |
Nov 4, 2024 |
Lecture 25: GPU Texturing, Pt. 2. |
Nov 5, 2024 |
Lecture 26: GPU Texturing, Pt. 3. |
Nov 7, 2024 |
Lecture 27: Vulkan tutorial #2. |
Nov 11, 2024 |
Lecture 28: GPU Virtual Texturing. |
Nov 14, 2024 |
Lecture 29: GPU Virtual Texturing + Virtual Geometry; Unreal Engine 5. |
Slides (fall 2022)
Aug 28, 2022 |
Lecture 1: Introduction, Pt. 1. |
Aug 31, 2022 |
Lecture 2: Introduction, Pt. 2. |
Sep 4, 2022 |
Lecture 3: Introduction, Pt. 3. |
Sep 7, 2022 |
Lecture 4: GPU Architecture, Pt. 1. |
Sep 11, 2022 |
Lecture 5: GPU Architecture, Pt. 2. |
Sep 14, 2022 |
Lecture 6: GPU Architecture, Pt. 3. |
Sep 18, 2022 |
Lecture 7: GPU Architecture, Pt. 4. |
Sep 25, 2022 |
Lecture 8: GPU Architecture, Pt. 5. |
Sep 28, 2022 |
Lecture 9: GPU Architecture, Pt. 6. |
Oct 2, 2022 |
Lecture 10: GPU Architecture, Pt. 7. |
Oct 4, 2022 |
Lecture 11: GPU Architecture, Pt. 8. |
Oct 5, 2022 |
Lecture 12: GPU Compute APIs, Pt. 1. |
Oct 9, 2022 |
Lecture 13: GPU Compute APIs, Pt. 2. |
Oct 12, 2022 |
Lecture 14: GPU Compute APIs, Pt. 3. |
Oct 23, 2022 |
Lecture 15: GPU Compute APIs, Pt. 4; GPU Texturing, Pt. 1. |
Oct 30, 2022 |
Lecture 16: GPU Texturing, Pt. 2. |
Nov 1, 2022 |
Lecture 17: GPU Texturing, Pt. 3. |
Nov 2, 2022 |
Lecture 18: GPU Texturing, Pt. 4. |
Nov 6, 2022 |
Lecture 19: GPU Texturing, Pt. 5. |
Nov 9, 2022 |
Lecture 20: GPU Virtual Texturing, Pt. 2. |
Nov 13, 2022 |
Lecture 21: GPU Virtual Geometry (and GPU Virtual Texturing). |
Nov 16, 2022 |
Lecture 22: Stream Computing and GPGPU; CUDA Memory Pt.1. |
Nov 20, 2022 |
Lecture 23: CUDA Memory Pt.2: Shared Memory. |
Nov 22, 2022 |
Lecture 24: CUDA Memory Pt.3: Shared Memory. |
Nov 27, 2022 |
Lecture 25: CUDA Memory Pt.4. |
Nov 29, 2022 |
Lecture 26: GPU Reduction; GPU Prefix Sum (Pt.1). |
Nov 30, 2022 |
Lecture 27: GPU Prefix Sum (Pt.2); Tensor Core Programming. |
Resources
Old 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. |
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. |