GPU programming


Main contact(s) Stéphane Vialle
UESM10 Credits2 ECTS
Lectures7.5 hr Tutorials1.5 hr
Labworks11 hr Exam0 hr

Presentation

This course aims to introduce high performance algorithmics and programming on GPU, with experiments on Machine Learning algorithms run on GPU servers.

Learning outcomes

At the end of this course, students will be able:

  • to analyse the adequacy of a mathematical solution with an implementation and execution on GPU,
  • to design a GPU algorithm, or to adapt an algorithm to increase its efficiency on GPU,
  • to design hybrid algorithms for CPU- GPU systems, overlapping data transfers and computations,
  • to implement algorithms and to debug codes on GPU,
  • to analyse and to summarize GPU software.

Syllabus

  • GPU architecture
  • Algorithmic principles of fine grained GPU parallelism (SIMD and SIMT models)
  • CUDA programming
  • Optimization of GPU and CPU-GPU CUDA codes
  • Hybrid CPU-GPU algorithmics and programming, with CUDA and C/C++ languages
  • Introduction to OpenACC programming
  • Design and experiment of Machine Learning algorithms on GPU