High Performance Computing with GPUs: Programming GPUs with CUDA

Description: This one day introductory course covers programming and computing on GPUs --- graphics processing units --- which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and participants will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail.

This course will also cover the new features available on the GPUs installed on the nation's new supercomputer "Graham" at the University of Waterloo. Participants should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.

Instructors: Pawel Pomorski, SHARCNET, University of Waterloo.

Prerequisites: C/C++ scientific programming, experience editing and compiling code in a Linux environment. Some experience with CUDA and/or OpenMP a plus.

Participants are expected to bring a laptop for hands-on exercises. It is expected that an secure shell (SSH) client is installed on one's laptop for accessing GPUs on SHARCNET systems prior to the workshop.