An Introduction to CUDA Programming

Description: Through a combination of lectures and practicals this course provides an introduction to the development of CUDA programs for execution on NVIDIA GPUs. Topics covered in the lectures will include: an overview of GPU hardware and in particular SIMT multithreading and the different kinds of memory; thread blocks and warps; launching CUDA kernels; caching and shared memory; conditional code and warp divergence; overlapping execution with data traffic; performance tuning and techniques for bandwidth-constrained algorithms; atomics; availability of libraries; resources for further study.

Aimed at: Anyone interested in writing CUDA programs for NVIDIA GPUs.

Prerequisites: Attendees should be competent in programming in C and be familiar with working in a UNIX environment (i.e., you should be able to connect to a machine remotely, use basic UNIX commands, edit a source file and understand the elementary steps in compiling object files and creating executables). No prior experience of parallel computing is required, however familiarity with the basic concepts of SMP parallelism (e.g. a basic knowledge of OpenMP) is highly desirable.

Duration: 2 days.

After Course Attendees Will: Be able to develop simple CUDA programs, and further develop their skills by studying the CUDA example codes provided by NVIDIA.

Registration: To register for HECToR courses go to the booking form.