Skip to content

CMPUT 382: Introduction to GPU Programming

Not recently offered

This course hasn't run in the last two years and isn't scheduled. Don't plan around it.

At a glance

  • Units: 3
  • Prerequisites: CMPUT 201 or 275, and one of CMPUT 229, E E 380, or ECE 212.
  • Offered: Last offered: Fall 2024
  • Difficulty: Medium
  • Workload: Moderate
  • Languages and tools: CUDA

Graphics processing units (GPU) can be programmed like a coprocessor to solve non-graphics problems, including voice recognition, computational physics, convolutional neural networks, and machine learning. The many processing cores of a GPU support a high-degree of parallelism. Course topics include hardware architecture, algorithmic design, programming languages (e.g., CUDA, OpenCL), and principles of programming for GPUs for high performance.

Official catalogue entry ยท facts synced 2026-10-01

What Students Say

Imported from the original course reviews page, which mixed student contributions with summarized Reddit discussion. Tips aren't term-stamped yet; if you've taken this course recently, add your experience.

Not widely discussed on Reddit because not many students take it. The few who have report that labs take the full 3 hours but the course isn't disproportionately harder than other 300-level courses. Some past offerings were disorganized, with setup friction around toolchains.

Student tips: - Background in 229 (computer organization) helps significantly; GPU optimization requires understanding what the hardware is actually doing. - If 382 isn't running, CMPUT 481 (Parallel and Distributed Systems) is the closest alternative for parallel programming.