Students who successfully complete the course should be able to:
Describe the current state of the art of GPU architecture and technology.
Know which algorithms can benefit from a GPGPU approach, and which can't.
Integrate GPGPU code to existing non-GPGPU code.
Write software to use functions that run in different parts of the graphics hardware.
Write software to use memory stored in different parts of the graphics hardware.
Profiling and optimize CUDA code.
Structure and Content
This course is suitable for students who want to learn how to use the NVIDIA CUDA C and OpenCL libraries to conduct General-purpose computing on graphics processing units and other highly parallel hardware. A general introduction will be given, and then the course will shift its focus on the hardware of the graphic cards and the specific library calls that are needed to take advantage of the different kinds of memory and the large number of processors available on them.
MA5613 C Programming
100% continuously assessed programming assignments. The course will be examined by assignments. At least three topics will be selected and students will be required to implement algorithms in C to display their knowledge of the course material.