Programme d’études 2021-2022 | English | ||
Edge Computing | |||
Unité d’enseignement du programme de Master : ingénieur civil mécanicien à la Faculté Polytechnique |
Code | Type | Responsable | Coordonnées du service | Enseignant(s) |
---|---|---|---|---|
UI-M2-IRMECA-565-M | UE optionnelle | VALDERRAMA SAKUYAMA Carlos Alberto | F109 - Electronique et Microélectronique |
|
Langue d’enseignement | Langue d’évaluation | HT(*) | HTPE(*) | HTPS(*) | HR(*) | HD(*) | Crédits | Pondération | Période d’enseignement |
---|---|---|---|---|---|---|---|---|---|
| Anglais | 60 | 0 | 0 | 0 | 0 | 5 | 5.00 | 2e quadrimestre |
Code(s) d’AA | Activité(s) d’apprentissage (AA) | HT(*) | HTPE(*) | HTPS(*) | HR(*) | HD(*) | Période d’enseignement | Pondération |
---|---|---|---|---|---|---|---|---|
I-SEMI-114 | Edge Computing | 60 | 0 | 0 | 0 | 0 | Q2 | 100.00% |
Unité d'enseignement |
---|
Objectifs par rapport aux acquis d'apprentissage du programme
Acquis d'apprentissage UE
FR. Cette unité d'enseignement sera dispensée en langue anglaise et décomposé en deux parties. En premier lieu, " Embedded Software using Python/SoC ", les architectures embarquées, outils de développement et le développement des applications utilisant des langages d'haut niveau Python et C++ seront développées, accompagnés des cas d'application dans les domaines de la Domotique, l'IoT (Internet-of-Things) et Machine Learning. La deuxième partie, " Edge Computing High Level Synthesis", présente les outils de développement de dispositifs System-on-Chip, composées de parties programmables et reconfigurables, les étapes de développement, l'exploration d'architecture et optimisations. Maîtriser la conception de systèmes, concepts, méthodologies et outils de développement ; depuis sa spécification au niveau du système, en passant par la modélisation du problème, l'exploration, l'analyse et l'optimisation de solutions réalisables, jusqu'à l'obtention d'un système répondant aux besoins économiques et techniques. Mieux comprendre les avantages et les inconvénients des solutions existantes et des alternatives de mise en oeuvre, en fonction d'un ensemble de critères d'évaluation (architecture, coûts de développement, taille, performances, consommation d'énergie, etc.). En pratique, l'élève doit s'occuper de la mise en oeuvre d'une solution, partielle ou complète (y compris logiciel, système d'exploitation ou développement de composants IP - Propriété intellectuelle - sur étagère - COTS), le tout à l'aide de technologies programmables et reconfigurables et outils de développement couramment disponibles dans l'industrie.
Contenu de l'UE
Embedded Software using Python/SoC
FR. L'émergence de l'environnement de développement Python Productivity for Zynq (PYNQ) basé sur des notebooks Jupyter permet de résoudre les problèmes de programmabilité FPGA. Grâce à une carte de développement spécialement conçue pour prendre en charge PYNQ, les développeurs avec peu d'expérience FPGA peuvent implémenter rapidement des conceptions capables de tirer pleinement parti des performances des FPGA pour accélérer les applications impliquant des tâches de calcul intensives, pour des applications tels que la Domotique, IoT et Machine Learning. La programmation basique des FPGA se fait avec 2 langages possibles : le langage Verilog, et le VHDL. Le VHDL nécessite en outre une connaissance de l'électronique combinatoire et séquentielle, au contraire de Python, un langage open source, reconnu pour sa simplicité et très courant chez les programmeurs.
Architectures. Les architectures hétérogènes
Components. Les composants de base des sous-systèmes programmables
Methodology. Les étapes de développement de software embarquée (Python et Linux)
Overlays. Le développement des interfaces, périphériques et drivers associées
IOPs. Les interfaces configurables et programmables
Tools. Les outils et environnements de développement (Pynq, Jupyter, SDSoC)
Cas d'application : des exemples de développement : interfaces audio, interfaces périphériques (I2C, UART, Analog, PWM, etc.), Domotique, IoT, Machine Learning (YOLO, BNN Binary Neural Networks)
Edge Computing High Level Synthesis
FR. Cette section présente une vue unifiée des domaines matériel et logiciel en tant que solutions de remplacement d'implémentations basées sur l'exploration de la conception et les métriques. L'objectif du cours est d'apprendre à développer un système complet programmable et configurable, appelé de System-on-Chip (SoC). Ces systèmes utilisent des langages de haut niveau, tels que Python et C / C ++. Cependant, certaines fonctionnalités, telles que le calcul intensif, accès au périphériques, traitement de signaux, ou contrôle en temps réel, on besoin d'accélérateurs matériels. Ces accélérateurs et leurs interfaces programmables associées sont le résultat de étapes de développement donnant accès à une électronique reconfigurable, ou FPGAs. Des accélérateurs et leurs interfaces programmables associées sont le résultat de étapes de développement donnant accès a une électronique reconfigurable, ou FPGAs. On ne passe pas par la logique combinatoire et séquentielle pour programmer un FPGA ; on dispose des outils de haut niveau, tels que SDSoC et HLS (High Level Synthesis). On procède à la programmation d'un niveau supérieur, pour réaliser une architecture matérielle dans un circuit FPGA. Le circuit FPGA peut être une carte Zybo, Pynq ou une Zed Board, où on développe des applications avancées comme du traitement d'image. Le système sera considéré comme un system-on-chip ou SoC, dans lequel, l'exécution des applications en Python peuvent être accélérées par des accélérateurs matériels reconfigurables. Le cours explore les différentes tendances, composantes et alternatives en fonction de l'objectif final. La conception au niveau du système est introduite dans un premier temps par une description des différents composants impliqués, depuis la conception et l'utilisation des circuits intégrés jusqu'aux logiciels, processeurs et processeurs matériels personnalisés. Il couvre également les méthodologies de conception, les techniques d'optimisation et les environnements de test. Le cours est complété par des exercices pratiques et des séances de laboratoire utilisant les technologies de pointe, les tendances en matière de technologies et les défis de conception.
Exploration de l'architecture SoC. Analyse de conception et alternatives de mise en oeuvre.
Améliorer les performances. Stratégies d'optimisation. Améliorer les ressources.
Synthèse d'interface. Encapsulation matériel / logiciel et protocoles IO.
Etapes de vérification et de validation. Prototypage, planification, simulation et émulation.
Création de la propriété intellectuelle. Création et utilisation de composants.
Considérations de codage.
Compétences préalables
Embedded Systems, Microprocessors
Types d'évaluations Q2 pour l'UE
Commentaire sur les évaluations Q2 de l'UE
Edge Computing (28759) UI-M2-IRMECA-565-M: Total 2ème session (2ème quadrimestre - juin): 100%. Travaux pratiques de laboratoire TP 10%; Epreuve pratique des résultats de laboratoire hors-session d'examen 10% ; Livrables finaux pour Projets/Travaux personnels (rapport, prototype, maquette, plan,...) 45%. Présentation finale de Projets/Travaux personnels 35%. Commentaires complémentaires introduits par l'enseignant: Test pratique des résultats du laboratoire en dehors de la session d'examens: au moins 1 semaine après la dernière session de travaux pratiques, séparation des évaluations selon le regroupement ou duplication des travaux pratiques selon les finalités; Remise des résultats des travaux pratiques et remise finale du livrable pour le projet / travail personnel (rapport, prototype, maquette, plan, etc.): une semaine avant la date du premier examen. Présentation finale du Projet / Travail personnel en session / période d'examen : séparation des évaluations selon le regroupement ou duplication des travaux pratiques selon les finalités, présentations en groupes de 2-3 étudiants, maximum 30 'de présentations par groupe, maximum 6 présentations par groupe de 4 heures.
Types d'évaluation Q3 pour l'UE
Commentaire sur les évaluations Q3 de l'UE
Edge Computing (28759) UI-M2-IRMECA-565-M: Total 2eme session 100% : livrables finaux pour Projets/Travaux personnels (rapport, prototype, maquette, plan...) 60%. Présentation finale de Projets/Travaux personnels 40%. Commentaires complémentaires introduits par l'enseignant : remise des résultats des Travaux pratiques et remise finale de livrable pour Projet/Travail personnel (rapport, prototype, maquette, plan...) une semaine avant la date du premier examen; présentation finale de Projet/Travail personnel en session/période d'examen : séparation des évaluations selon le regroupement ou la duplication des TPS selon les finalités, présentations par groupes de 2-3 étudiants, maximum 30' de présentations par groupe, maximum 6 présentations par épreuve de 4 heures.
Types d'activités
AA | Types d'activités |
---|---|
I-SEMI-114 |
|
Mode d'enseignement
AA | Mode d'enseignement |
---|---|
I-SEMI-114 |
|
Supports principaux
AA | |
---|---|
I-SEMI-114 |
Supports principaux non reproductibles
AA | Supports principaux non reproductibles |
---|---|
I-SEMI-114 | FR. Tutorials available on GitHub and Xilinx Vivado Pynq and Vitis |
Supports complémentaires
AA | |
---|---|
I-SEMI-114 |
Supports complémentaires non reproductibles
AA | Support complémentaires non reproductibles |
---|---|
I-SEMI-114 | Sans objet |
Autres références conseillées
AA | Autres références conseillées |
---|---|
I-SEMI-114 | Sans objet |
Reports des notes d'AA d'une année à l'autre
AA | Reports des notes d'AA d'une année à l'autre |
---|---|
I-SEMI-114 | Non autorisé |