GPU Programming (Prof Karen Bradshaw)

Although graphics processing units (GPUs) are well known for their use in rendering images, their power for general parallel computing has only been explored in the past decade. With the increased availability of parallel frameworks, programming models, and development tools, however, GPUs have developed into flexible processors that typically outperform CPUs in the parallel computation of some problems.

This module covers the fundamentals of parallel computing using the CUDA C/C++ parallel programming model as well as accessing CUDA via Python. The module focuses on basic CUDA commands and syntax, the use of CUDA libraries, and relevant optimizations specific to the architecture of the GPUs being used. Practical labs covering applications in graphics, simulations, physics, and other topics complement the programming concepts and techniques introduced in the lectures.  Successful completion of the NVIDIA Fundamentals of Accelerated Computing with CUDA Python certificated course forms part of the assessment of the module.

Prerequisites: Competence in C/C++ programming and an independent work ethic are vital as the module is based on multiple hands-on assignments to understand the concepts.

Last Modified: Thu, 27 Jul 2023 12:05:36 SAST