Présentation :
Dans cette formation, on se propose de donner les éléments conceptuels et pratiques permettant de développer des systèmes de traitement parallèles sur GPU en Python via le framework OpenCL.
Dans un premier temps, on inscrira la nécessité du calcul sur GPU comme une continuité de montée en puissance des architectures d’ordinateurs. Le framework OpenCL sera ensuite présenté et son implémentation Python (PyOpenCL) détaillée.
On appliquera les concepts vus à des sujets de calcul pur mais aussi de traitement d’images, et on verra, dans un exemple avancé, comment en poussant l’optimisation des algorithmes de parallélisme les performances de calcul peuvent être boostées.
Pour terminer, on inscrira les principes de développement du calcul parallèle sur GPU dans le cadre plus vaste de l’algorithmique parallèle.
Programme
Evolutions des architectures d’ordinateurs
Les architectures parallèles
Petite histoire de l’accélération graphique
OpenCL
Définitions
Gestion de la mémoire
Kernels
Modèle d’exécution
Synchronisation
Optimisations
Accès concurrents
PyOpenCL
Map-reduce
Debug et profiling
Algorithmes parallèles