GPU training module

This training module aims to introduce the students to the concept of hardware accelerators and programming of heterogeneous systems. This training is dedicated to the usage of GPUs by programming in CUDA, and ALPAKA. The duration of this training is 1 semester (14 weeks). The detailed syllabus and series of lectures can be found below.

  • Course syllabus
  • Series of lectures :
    • Lecture 1 Introduction to hardware accelerators
    • Lecture 2 The GPU and its applications in HEP
    • Lecture 3 Introduction to C++ : Core syntax, variables operators, flow control instructions and functions.
    • Lecture 4 Introduction to C++ : Scopes and namespaces, compound data types and Object Orientation
    • Lecture 5 Introduction to CUDA : Nvidia GPU architecture and CUDA core syntax
    • Lecture 6 Introduction to CUDA : Memory managments, synchonization and error handling
    • Lecture 7 Introduction to CUDA : Coalesced memory access and performance considerations
    • Lecture 8 Introduction to CUDA : Shared memory, atomic operations and the default CUDA stream
    • Lecture 9 CUDA advanced topics : CUDA streams
    • Lecture 10 CUDA advanced topics : C++ standards
    • Lecture 11 Profiling software with Intel OneAPI Toolset Profilers: Vtune and Advisor
    • Lecture 12 Introduction to Nvidia profiling tools : Nsight system and Nsight compute
    • Lecture 13 CUDA advanced topics : Managed memory
    • Lecture 14 Introduction to Alpaka : Performance portability, Alpaka platforms, devices, queues and events
    • Lecture 15 Introduction to Alpaka : Memory managment, device functions and kernels, work division