Programmation en GPU


Objectif

Ce cours introduit de façon simple et efficace à la simulation sur cartes graphiques, ou GPU (Graphics Processing Units).  
Il est agencé autour de la simulation Monte Carlo fortement adaptée à la parallélisation. Il permet ainsi de se concentrer sur les optimisations permises par l'architecture du GPU.
Pour ce cours, les étudiants accéderont à distance aux GPUs de Centrale Supélec (Supélec campus Metz) pour leurs simulations.

A l’issue de ce cours, les étudiants doivent être capable de programmer et optimiser un code CUDA/C sur GPU lors de la réalisation d’un projet.

 

Plan

  • Seance 1 (3h) : Premier programme de simulation Monte Carlo sur GPU.
  • Seance 2 (3h) : Introduction à la memoire GPU : Registers, shared, global & Unified.
  • Seance 3 (3h) : Communication entre threads et entre lanes, asynchronisme et concurrence.
  • Seance 4 (3h) : Meilleur programme de simulation Monte Carlo sur GPU.

 

Références

  • CUDA C Programming Guide, Nvidia, 2017
  • Jason Sanders & Edward Kandrot,  CUDA by Example: An Introduction to General-Purpose GPU Programming, Addison Wesley, 2010
  • Shane Cook, CUDA Programming: A Developer's Guide to Parallel Computing with GPUs, Morgan Kaufmann, 2012