S8 INF Architectures et accélérateurs parallèles

Présentation

Cette UE porte sur la connaissance et la programmation des principaux modèles d'architectures et d'accélérateurs parallèles. Elle se focalise plus particulièrement sur la programmation des accélérateurs  FPGA et GPU.

Pré-requis nécessaires

  • Systèmes d'exploitation
  • Architecture des ordinateurs

Objectifs

Cette UE présente globalement les différents modèles d'architectures parallèle et leur mise en œuvre matérielle :

  • Architectures super-scalaires, VLIW, super-pipeline, vectorielle pour des cœurs de processeurs
  • Processeurs multicores et manycores et leur hiérarchie mémoire
  • Accélérateurs graphiques GPU
  • Architectures reconfigurables FPGA
  • Supercalculateurs

  D'un point de vue conceptuel et pratique, elle se concentre sur la programmation des deux familles d'accélérateurs parallèles les plus répandus pour le calcul intensif (simulation, traitement d'image, IA, data mining), que sont les GPU et FPGA :

  • Dans la partie GPU, on apprend à programmer des kernels de calcul intensif pour GPU. Les langages OpenCL et Compute Shader sont étudiés à l’aide d’environnements de programmation comme MatrixStudio ou ShaderToy. Divers sujets sont alors abordés comme le traitement d'image, la simulation de drones, la simulation de systèmes biologiques et plus généralement le calcul scientifique intensif.
  • Dans la partie FPGA, on introduit la synthèse de haut-niveau (HLS), permettant la conception de traitements parallélisés à partir d'une description C ou C++. On apprend comment caractériser et comparer les performances, en termes de fréquence d'horloge, de cycles de fonctionnement et de ressources utilisées. L'environnement utilisé est Vitis, pour la programmation des FPGAs du constructeur Xilinx/AMD.

Compétences visées

  • Savoir concevoir et programmer des cœurs de traitement pour FPGA par synthèse de haut niveau
  • avoir concevoir et programmer des kernels de calcul intensif pour GPU avec OpenCL

Bibliographie

  • Computer Organization and Design - David A.Patterson and John L.Hennessy, Mor­gan Kaufmann Publishers, 1997
  • Reconfigurable Computing: The Theory and Practice of Fpga-based Computation - S. Hauck et A. DeHon, Morgan Kaufmann, 2007
  • OpenCL Programming by Example. Ravishekhar Banger, Koushik Bhattacharyya. Packt Publishing. ISBN-13: 978-1849692342. 2013.
  • OpenCL Programming Guide. Aaftab Munshi. Addison-Wesley. ISBN-13: 978-0-321-74964-2. 2013.
  • Using OpenCL – Programming Massively Parallel Computers. Janusz Kowalik et Tadeusz Puzniakowski. IOS Press. ISBN 978-1-61499-029-1. 2012.

Langue d'enseignement

Français