This course will give a short introduction to NVidia GPU's and Intel Xeon Phis, which are currently the two most popular accelerator architectures in HPC. In addition to the basic pragma-based programming models some performance considerations and limitations to the memory traffic between the host and the accelerator will be discussed. Last part of the course will give a short one-day introduction to the lower level approach for GPU programming using CUDA.
Introduction to Xeon Phi, offloading, data access and performance, more advanced topics
Introduction to GPUs, OpenACC basics, data access and performance, more advanced topics
Introduction to CUDA programming, kernels, memory model, events and streams
The students will learn the strengths and weaknesses of accelerators and know how to utilize them for simple tasks with pragma-based programming tools. In addition, students will also learn the basics of low-level GPU programming using CUDA.
Good knowledge on C programming language is needed for the CUDA part. Some basic knowledge about parallel programming is beneficial, but no prior knowledge on GPUs is needed.
Lecturers: Sebastian von Alfthan (CSC), Mikko Byckling (Intel), Sami Ilvonen (CSC)
Price: Free of charge