CS 380 GPU and GPGPU Programming

Prerequisites: Good C/C++ programming skills, or other strong programming background. Understanding of basic computer architecture. Recommended optional CS 248, and CS 280. The course covers the architecture and programming of GPUs (Graphics Processing Units). It covers both the traditional use of GPUs for graphics and visualization, as well as their use for general purpose computations (GPGPU, GPU Computing). The main contents are: GPU many-core hardware architecture, shading and GPU 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.