Programme d’études 2020-2021English
Edge Computing
Unité d’enseignement du programme de Master : ingénieur civil en informatique et gestion à la Faculté Polytechnique

Les étudiants sont invités à consulter les fiches ECTS des AA pour prendre connaissance des modalités d’évaluation spéciales Covid-19 éventuellement prévues pour la fin du Q3

CodeTypeResponsable Coordonnées
du service
Enseignant(s)
UI-M2-IRIGIG-565-MUE optionnelleVALDERRAMA SAKUYAMA Carlos AlbertoF109 - Electronique et Microélectronique
  • VALDERRAMA SAKUYAMA Carlos Alberto

Langue
d’enseignement
Langue
d’évaluation
HT(*) HTPE(*) HTPS(*) HR(*) HD(*) CréditsPondération Période
d’enseignement
  • Anglais
Anglais60000055.002e quadrimestre

Code(s) d’AAActivité(s) d’apprentissage (AA) HT(*) HTPE(*) HTPS(*) HR(*) HD(*) Période
d’enseignement
Pondération
I-SEMI-114Edge Computing600000Q2100.00%

Unité d'enseignement

Objectifs par rapport aux acquis d'apprentissage du programme

  • Imaginer, concevoir, réaliser et mettre en oeuvre des modèles conceptuels et des solutions informatiques pour répondre à des problèmes complexes notamment de décision, d'optimisation, de gestion et de production dans le cadre d'une démarche d'innovation en entreprise en intégrant l'évolution des besoins, contextes et enjeux (techniques, économiques, sociétaux, éthiques et environnementaux).
    • Concrétiser une solution choisie sous la forme de diagrammes, de graphes, de prototypes, de logiciels et/ou de modèles numériques.
    • Evaluer la démarche et les résultats en vue de leur adaptation (modularité, optimisation, qualité, robustesse, fiabilité, évolutivité,...).
  • Mobiliser un ensemble structuré de connaissances et compétences scientifiques et techniques spécialisées permettant de répondre, avec expertise et adaptabilité, aux missions de l'ingénieur civil en Informatique et Gestion
    • Maîtriser et mobiliser de façon pertinente des connaissances, des modèles, des méthodes et des techniques relatifs au domaine de l'Informatique et Gestion
    • Analyser et modéliser une solution informatique innovante ou une stratégie d'entreprises en sélectionnant de manière critique des théories et des approches méthodologiques (modélisation, optimisation, algorithmique, calculs), y compris en tenant compte des aspects pluridisciplinaires.
    • Identifier et étudier les applications possibles des technologies nouvelles et émergentes dans le domaine des sciences et technologies de l'information et du management quantitatif et qualitatif de l'entreprise.
  • Planifier, gérer et mener à bien des projets compte tenu de leurs objectifs, ressources et contraintes et en assurant la qualité des activités et des livrables.
    • Respecter les échéances et le plan de travail.
  • Travailler efficacement en équipe, développer son leadership, prendre des décisions dans des contextes multidisciplinaires, multiculturels et internationaux.
    • Interagir efficacement avec d'autres acteurs pour réaliser un travail commun dans des contextes variés (multidisciplinaires, multiculturels et internationaux).
  • Communiquer et échanger des informations de manière structurée - oralement, graphiquement et par écrit, en français et dans une ou plusieurs autres langues - sur les plans scientifique, culturel, technique et interpersonnel en s'adaptant au but poursuivi et au public concerné.
    • Argumenter et convaincre, tant à l'oral qu'à l'écrit, vis-à-vis de clients, des enseignants et des jurys.
    • Sélectionner et utiliser les modes et supports de communication écrite ou orale adaptés au but poursuivi et au public concerné.
    • Utiliser et produire des documents scientifiques et techniques (modélisation mathématique, architecture des données et du logiciel, rapport, cahier des charges, analyse financière, documentation et manuels, ...) adaptés au but poursuivi et au public concerné.
  • Agir en professionnel responsable, faisant preuve d'ouverture et d'esprit critique, inscrit dans une démarche de développement professionnel autonome.
    • Exploiter les différents moyens mis à disposition pour se documenter et se former de manière autonome.
  • Contribuer par un travail de recherche à la solution innovante d'une problématique en sciences de l'ingénieur.
    • Construire un cadre théorique ou conceptuel de référence, formuler des solutions innovantes à partir de l'analyse de la littérature scientifique, notamment dans des champs disciplinaires nouveaux ou émergents.
    • Récolter et analyser des données avec rigueur.
    • Interpréter adéquatement des résultats en tenant compte du cadre de référence au sein duquel la recherche s'est développée.
    • Communiquer, à l'écrit et à l'oral, sur la démarche et ses résultats en mettant en évidence tant les critères de scientificité de la recherche menée, que les potentialités d'innovation théoriques ou techniques et les possibles enjeux non techniques.

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

  • Présentation et/ou travaux
  • Epreuves pratiques
  • eTest

Commentaire sur les évaluations Q2 de l'UE

Edge Computing (28510) UI-M2-IRIGIG-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

  • Présentation et/ou travaux
  • eTest

Commentaire sur les évaluations Q3 de l'UE

Edge Computing (28510) UI-M2-IRIGIG-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

AATypes d'activités
I-SEMI-114
  • Cours magistraux
  • Conférences

Mode d'enseignement

AAMode d'enseignement
I-SEMI-114
  • Mixte

Supports principaux

AA
I-SEMI-114

Supports principaux non reproductibles

AASupports principaux non reproductibles
I-SEMI-114FR. Tutorials available on GitHub and Xilinx Vivado Pynq and Vitis

Supports complémentaires

AA
I-SEMI-114

Supports complémentaires non reproductibles

AASupport complémentaires non reproductibles
I-SEMI-114Sans objet

Autres références conseillées

AAAutres références conseillées
I-SEMI-114Sans objet

Reports des notes d'AA d'une année à l'autre

AAReports des notes d'AA d'une année à l'autre
I-SEMI-114Non autorisé
(*) HT : Heures théoriques - HTPE : Heures de travaux pratiques encadrés - HTPS : Heures de travaux pratiques supervisés - HD : Heures diverses - HR : Heures de remédiation - Dans la colonne Pér. (Période), A=Année, Q1=1er quadrimestre et Q2=2e quadrimestre
Date de génération : 09/07/2021
20, place du Parc, B7000 Mons - Belgique
Tél: +32 (0)65 373111
Courriel: info.mons@umons.ac.be