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

    ECTS 6.0

Goal(s)

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.

Responsible(s)

Christophe PICARD

Content(s)

  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

Prerequisites

C/C++ Programming. Algorithms

Test

Evaluation : 75% of Projet (évaluation en continu et sur le rendu) and 25% of Examen Ecrit (1h00)

Resit : 50% of Projet (évaluation en continu et sur le rendu) (reported score) and 50% of Examen Ecrit (1h00)

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)

The exam is given in english only

Calendar

The course exists in the following branches:

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

Additional Information

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

You can find this course among all other courses.

Bibliography

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