Ensimag Rubrique Formation 2022

High Performance and GP-GPU Computing - 5MMGPUHP

  • Number of hours

    • Lectures 24.0
    • Projects -
    • Tutorials -
    • Internship -
    • Laboratory works 12.0
    • Written tests -


    ECTS 3.0


This course examines technologies that are for the use of special-purpose hardware originally designed for graphics and games to solve general-purpose computing problems. We will address the hardware aspects (architectures, memory hierarchy), software aspects (CUDA/OpenCL) and algorithms aspects (tiling, reduction, pipeline,...) The design process of a parallel application will also be discussed.


Christophe PICARD


  1. Introduction to parallelism and hardware concepts
    Memory organisation and core organisation
    #Software libraries for programming special purpose hardware
    Introduction to OpenCL and CUDA
    #Memory optimisation
    Multilevel memory organisation and computation placement
  2. Control Flow
    Separation of tasks between CPU and special-purpose hardware
  3. Parallel programming patterns
    Study of the of the parallel pattern
  4. Project


C/C++ Programming. Algorithms


Project based assessment on a student chosen subject.
The project is done in two phases : the first one, in class with some specific requirements and the second one is exploratory. (NPR)

N1 = 0,75 * NPR + 0,25 E1
N2 = 0,5 * NPR + 0,5 E2

NPR = Evaluation du projet
E1 = Examen écrit
E2 = Examen de rattrapage écrit

The exam is given in english only FR


The course exists in the following branches:

  • Curriculum - Math. Modelling, Image & Simulation - Semester 9 (this course is given in english only EN)
see the course schedule for 2023-2024

Additional Information

Course ID : 5MMGPUHP
Course language(s): FR

You can find this course among all other courses.


Parallel Computing: Principles and Practice - T. J. Fountain
Patterns for Parallel Programming - Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill
Introduction to Parallel Computing - Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta
CUDA by Example: An Introduction to General-Purpose GPU Programming - Jason Sanders, Edward Kandrot
Heterogeneous Computing with OpenCL de Benedict Gaster