Accueil - Connexion

Processeurs Specialises

2E1AC2 Processeurs Specialises Electronique et Physique appliquée S7
Cours : 12 h TD : 0 h TP : 21 h Projet : 0 h Total : 33 h
Responsable : Hugo Descoubes
Pré-requis
- Fortes bases en langages procéduraux (langage C)
- Fortes bases en outils de développement logiciel (IDE, shell Unix, makefile, chaîne de compilation)
- Fortes bases en électronique et systèmes numériques (systèmes combinatoires et séquentiels, algèbre booléenne, numération, technologies numériques)
- (Fortes) bases en développement sur processeur numérique à architecture CPU (Central Processing unit)
- Bases en Traitement Numérique du Signal
Objectifs de l'enseignement
Approfondir les compétences autour des processeurs numériques et architectures parallèles. Introduction aux processeurs ou fonctions spécialisées (notamment sur System on Chip (SoC)). Spécialisation sur architecture DSP C66xx de Texas Instrument et méthodologies d'optimisation d'algorithmes dépendants de l'architecture cible.
Programme détaillé
Introduction aux processeurs ou co-processeurs spécialisés (APU : Accelerated Processor Unit), familles : FPGA, DSP, GPGPU et fonctions spécialisées. Approfondissement des architectures DSP :
- architectures : SISD, SIMD, MIMD (processeurs scalaires, superscalaires, vectoriels, VLIW et EPIC)
- architectures : SMP, ASMP
- modèles mémoire : NUMA, UMA
- Illustration sur technologie C66xx de Texas Instruments (leader du marché des processeurs DSP). Découverte de l'architecture CPU ( pipeline CPU in-order vs out-of-order), architecture VLIW, instructions SIMD, hiérarchies de cache, périphériques d'optimisation et de communication
- Optimisation vectorielle monocoeur
- Optimisation mémoire (cache processeur)
- Périphériques d'optimisation (DMA, chez TI : IDMA, QDMA, EDMA, fonctions spécialisées)
- Introduction à la programmation parallèle et la programmation distribuée (OpenMP, OpenCL, CUDA ...)
Applications (TD ou TP)
Trame de travaux pratiques sur le processus d'optimisation d'algorithme. Illustration sur algorihtme (algorithme) de filtrage et DFT :
- Analyse d'algorithme mathématique (donné (fourni), cf. cours TNS)
- Optimisation mathématique éventuelle (donné (fourni), ex. DFT vs FFT)
- Prototypage sous environnement MATLAB/SIMULINK (donné (fourni))
- Intégration en C canonique, les données sont en mémoire principale DDR externe. Prise en main de l'IDE (CCSvs5.5/6.0 sous framework Eclipse) et outils de versionning (Git)
- Procédures d'étallonages (d'étalonnages) et de "profilages" de code (Benchmarking)
- Optimisation vectorielle d'algorithme : (C) directives de compilation (assertion, alignement mémoire, intrinsics, transparence de cache ...) et assembleur (pipelining software, optimisation de boucles)
- Optimisation mémoire : Gestion optimale des niveaux de cache processeur (cohérence(s) des données)
- Optimisation DMA : gestion (DMA) interne au CPU (préchargement de lignes de cache), transferts mémoires par (
Compétences acquises
- Maîtriser les méthodologies de gestion et suivi de projet (logiciel) durant des phases de développement logiciel.
- Maîtriser les écosystèmes matériel et logiciel lors de développement(s) sur processeur numérique spécialisé
- Maîtriser les méthodologies d'optimisation et d'intégration d'algorithmes
- Maîtriser et s'adapter aux techniques d'optimisation matérielle actuelles sur processeur à architecture CPU
Bibliographie
- DSP System Design, Kehtearvaz et Keramat
- Digital Signal Processing, Dahnoum
- Applications audio numériques des DSP, Benoît Bouche
- A simple approach to digital signal processing, Merven et Ewers
- site officiel et forums TI : www.ti.com

© 2024 - ENSICAEN ( Mentions Légales - Crédits )