Spring2025: COSC 4397 (Selected Topics in Computer Science)

Parallel Computations of GPU

Lecture Tu/Th 1pm-2:30pm: Location SEC104
Instructor: Panruo Wu (pwu7@uh.edu)

Reference books:

Reference online resources

Intro

As modern hardware increasingly depends on explicit parallelism to deliver performance, modern computer scientists and practitioners need to acquire programming and parallelization skills to develop efficient and scalable systems and applications. General purpose GPUs (GPGPUs) are the most accessible, powerful, and widely used platforms in several scenarios where performance is critical, including large neural network training/inference, advanced cryptography, and scientific/engineering simulation.

This course teaches fundamentals on GPGPU architecture, parallel computation principles, and the methods of achieving very high performance on GPU via programming and performance engineering. The main vehicle of teaching programming on GPU is CUDA on NVIDIA GPUs. The goal of this course is to be able to identify problems that can be parallelized effectively and realize parallel computation on massively parallel systems such as GPUs, and techniques to achieve very high performance on GPUs.

This will be a pretty hands-on course--so get ready to get hands dirty! A NVIDIA GPU machine will be provided for you to use for this course. The main programming tools are CUDA on NVIDIA GPUs.

Schedule

This schedule is tentative! It will be adjusted frequently. Last modified: Jan 22, 2025

Week Tuesday Thursday Assignment
Week 1 Jan 14: Introduction to GPU and CUDA
Lec1: Intro
Jan 16: Data Parallelism & CUDA/C
Lec2 Data Parallel
Week 2 Jan 21
UH closed due to weather. No class
jan 23
Lec3: Grid and Data
Week 3 Jan 28 Jan 30
Lec4: Architecture and Scheduling
Week 4 Feb 4
Lec5: Memory and Data Locality
Feb 6
Week 5 Feb 11
Lec6: Lec6: Performance Considerations
Feb 13
Feb 16
Assignment1 Due: Matrix Transpose
Week 6 Feb 18
Lec7: Reductions
Feb 20
Class cancelled today
Week 7 Feb 25
Lec8: Scan
Feb 27
Lec9: Histogram
Week 8 Mar 4
Mar 6
Lec10: Merge
Mar 9
Assignment2 Due: Matrix Multiplication
Week 9 Mar 10-15 Spring Holiday