Des applications et des usages toujours plus gourmands en performance

Des applications et des usages toujours plus gourmands en performance

Lโ€™รฉvolution des architectures matรฉrielles, lโ€™augmentation des performances dans les calculs et les accรจs mรฉmoire et la rรฉduction de la consommation รฉnergรฉtique ont permis le dรฉveloppement de nouveaux usages. La rรฉvolution des smartphones depuis lโ€™introduction en 2007 du premier iPhone a apportรฉ au public et concentrรฉ tรฉlรฉphone, accรจs Internet, รฉcran tactile, localisation GPS et appareil photo dans un mรชme objet capable de tenir dans la poche. Des applications innovantes sont apparues, profitant du modรจle รฉconomique de ces nouveaux appareils, fondรฉs sur des marchรฉs dโ€™applications payantes. Ces applications ont parfois transformรฉ certains usages sociaux, ร  lโ€™exemple de Twitter et Periscope, qui ont bouleversรฉ le partage dโ€™informations et dโ€™actualitรฉs, ou Tinder, qui a rรฉvolutionnรฉ le monde des rencontres en ligne.

ร€ la suite du succรจs de lโ€™iPhone, Apple a introduit lโ€™iPad en 2011, tablette tactile ร  michemin du smartphone et de lโ€™ordinateur portable. Dรฉdiรฉes principalement au divertissement et ร  la consommation de contenus, les tablettes tactiles ont รฉgalement connu un large succรจs, quoique moindre, principalement dรป au grand nombre dโ€™applications compatibles. Depuis, les smartwatches et les bracelets fitness ont annoncรฉ lโ€™รฉmergence de lโ€™Internet des objets. Les objets du quotidien, connectรฉs, se piloteront dรฉsormais depuis le tรฉlรฉphone ou la tablette. Les performances des tรฉlรฉphones et des tablettes tactiles ont รฉvoluรฉ en parallรจle du matรฉriel qui les compose. Les puces graphiques des tรฉlรฉphones actuels ont ainsi des capacitรฉs similaires ร  celles des consoles de salon dโ€™il y a dix ans. Les jeux vidรฉos, comme Angry Birds, Candy Crush ou plus rรฉcemment Clash of Clans, se sont dรฉveloppรฉs sur ces nouveaux supports. Caractรฉrisรฉs par leur contenu monรฉtisรฉ et la forte attractivitรฉ de leurs parties rapides, ces jeux ont rapportรฉ un grand profit ร  leurs crรฉateurs. Toutefois, lโ€™usage vidรฉo-ludique tend ร  rรฉduire lโ€™autonomie des appareils, facteur critique de la mobilitรฉ. En rรฉponse, les rรฉcents dรฉveloppements dans les processeurs centraux et graphiques รฉvoluent vers une rรฉduction de la consommation รฉnergรฉtique, et donc vers une meilleure efficacitรฉ.

Aujourdโ€™hui, les puces graphiques des tรฉlรฉphones portables sont suffisamment puissantes pour proposer la rรฉalitรฉ virtuelle (au travers par exemple du Samsung Gear VR) ou la rรฉalitรฉ augmentรฉe ร  tous. Lโ€™application phare au moment de lโ€™รฉcriture de ces lignes est en effet Pokรฉmon Go, un jeu pour smartphone liant gรฉolocalisation et rรฉalitรฉ augmentรฉe. Lร  encore, ces fonctionnalitรฉs nรฉcessitent beaucoup dโ€™รฉnergie et nuisent ร  lโ€™autonomie. En parallรจle de ces applications grand public, les systรจmes embarquรฉs prรฉsents dans la plupart des vรฉhicules actuels, des voitures aux sondes spatiales en passant par les avions, rรฉgissent un grand nombre de fonctions, de la fusion de capteurs aux systรจmes multimรฉdia. Dans ces systรจmes, la consommation รฉnergรฉtique joue en gรฉnรฉral un rรดle critique.

ร€ lโ€™autre bout du spectre, certaines disciplines scientifiques nรฉcessitent une grande puissance de calcul afin de rรฉsoudre les รฉquations de la chromodynamique quantique ou de la mรฉtรฉorologie, par exemple, afin de dรฉterminer lโ€™impact du changement climatique. Les GAFAM (Google, Apple, Facebook, Amazon et Microsoft, grands acteurs du monde numรฉrique actuel), les NATU (les nouveaux challengers que sont Netflix, Airbnb, Telsa et Uber) et les BATX (Baidu, Alibaba, Tencent et Xiaomi, les concurrents chinois) ont, pour gรฉrer lโ€™ensemble des donnรฉes ร  leur disposition, fait construire des centres de donnรฉes partout dans le monde : cโ€™est lโ€™informatique en nuage. Les serveurs contenus dans ces datacenters fonctionnent en continu et dรฉgagent de la chaleur, qui doit รชtre รฉvacuรฉe en permanence. Une diminution de quelques pour cent de la consommation รฉnergรฉtique de ces serveurs peut รฉconomiser beaucoup dโ€™argent.

Domaine actuellement en plein essor, lโ€™apprentissage artificiel requiert รฉgalement une grande puissance de calcul, afin dโ€™entraรฎner des rรฉseaux de neurones de plus en plus profonds.

Les processeurs graphiques haut de gamme ciblent dรฉsormais ce domaine dโ€™applications dans lequel ils excellent [38]. Les crypto-monnaies virtuelles, comme le Bitcoin [17], nรฉcessitent, elles aussi, du matรฉriel spรฉcifique et de fortes quantitรฉ dโ€™รฉnergie pour valider les transactions et crรฉer de la monnaie ex nihilo ร  travers le ยซ minage ยป.

Le traitement dโ€™images, un domaine applicatif en plein essorย 

Lโ€™รฉmergence des smartphones a mis une camรฉra dans toutes les poches. De nombreuses applications sโ€™appuient sur cette fonctionnalitรฉ ubiquitaire pour proposer, par exemple, des filtres Instagram ou de la reconnaissance faciale pour ยซ tagger ยป ses amis sur Facebook. Les avancรฉes modernes dans le champ de la vision par ordinateur reposent principalement sur les techniques modernes dโ€™apprentissage artificiel et, notamment, sur les rรฉseaux de neurones profonds, champ dโ€™รฉtude exacerbant la concurrence entre les grandes entitรฉs du monde numรฉrique โ€” Google, Microsoft et Amazon ayant rรฉcemment ouvert au public leurs logiciels de deep learning.

Ces techniques de traitement dโ€™images permettent notamment de reconnaรฎtre des objets automatiquement, voire de proposer une description ร  partir dโ€™une image. Ces travaux sont clรฉs dans le dรฉveloppement des vรฉhicules autonomes, afin notamment de pouvoir dรฉchiffrer la signalisation routiรจre et repรฉrer correctement les usagers ร  proximitรฉ. Des applications moins futuristes, comme la reconnaissance optique de caractรจres ou le post-traitement dโ€™imagerie mรฉdicale, sont dรฉjร  utilisรฉes ร  lโ€™heure actuelle. par exemple ร  partir dโ€™une image issue dโ€™un radar automatique. Couplรฉe ร  un systรจme de reconnaissance de caractรจres et ร  la base de donnรฉes adรฉquate, cette application permet dโ€™envoyer directement et automatiquement les amendes pour excรจs de vitesse ร  lโ€™adresse du propriรฉtaire du vรฉhicule contrevenant et, par consรฉquent, contribue ร  la sรฉcuritรฉ routiรจre.

La compilation, entre applications, bibliothรจques et matรฉriel

La compilation consiste ร  convertir un langage de programmation en un autre. Les compilateurs standards, par exemple GCC [109] ou LLVM [84], transforment des applications ou des bibliothรจques รฉcrites ร  la main dans des langages de programmation de haut niveau, comme C ou C++, vers des langages de programmation de plus bas niveau, comme lโ€™assembleur ou le langage machine. Les compilateurs sont capables dโ€™optimiser le code machine gรฉnรฉrรฉ pour diffรฉrentes cibles matรฉrielles, en sโ€™appuyant sur des reprรฉsentations internes performantes. Cependant, lโ€™espace dโ€™optimisation se montre habituellement trop vaste pour รชtre complรจtement parcouru, et le contrรดle laissรฉ aux dรฉveloppeurs par les langages de la famille du C empรชche parfois certaines optimisations. Les langages spรฉcifiques ร  un domaine, en anglais DSLs (ยซ Domain-Specific Languages ยป), sont des langages de haut niveau censรฉment faciles ร  utiliser pour dรฉvelopper rapidement des applications dans un domaine donnรฉ, en limitant les connaissances nรฉcessaires sur les architectures cibles. Les concepteurs de DSLs font le lien avec les cibles matรฉrielles grรขce au compilateur, qui va pouvoir implรฉmenter des optimisations spรฉcifiques au domaine et des optimisations spรฉcifiques aux matรฉriels. Certains DSLs reprennent la syntaxe dโ€™un langage de programmation plus gรฉnรฉraliste. On les qualifie alors de DSLs embarquรฉs ou embedded DSLs (e-DSLs). Les interfaces de programmation de FREIA et de SMIL sโ€™apparentent ainsi ร  des DSLs embarquรฉs, le langage hรดte รฉtant C dans le cas de FREIA, et C++ ou Python pour SMIL.

Le rapport de stage ou le pfe est un document dโ€™analyse, de synthรจse et dโ€™รฉvaluation de votre apprentissage, cโ€™est pour cela chatpfe.com propose le tรฉlรฉchargement des modรจles complet de projet de fin dโ€™รฉtude, rapport de stage, mรฉmoire, pfe, thรจse, pour connaรฎtre la mรฉthodologie ร  avoir et savoir comment construire les parties dโ€™un projet de fin dโ€™รฉtude.

Table des matiรจres

1 Introduction
1.1 Microprocesseurs : vers la fin de lโ€™รฉvolution exponentielle ?
1.2 Des applications et des usages toujours plus gourmands en performance
1.3 Le traitement dโ€™images, un domaine applicatif en plein essor
1.4 La compilation, entre applications, bibliothรจques et matรฉriel
1.5 Sujet
1.6 Contributions
1.7 Structure de la thรจse
2 ร‰volutions matรฉrielles et modรจles de programmation
2.1 Des architectures innovantes
2.1.1 Les processeurs multicล“urs et lโ€™รฉvolution vers la mobilitรฉ
2.1.2 Les processeurs graphiques : toujours plus de complexitรฉ
2.1.3 Lโ€™avรจnement des processeurs manycore
2.2 Modรจles de programmation et architectures matรฉrielles
2.2.1 Processeurs multicล“urs et programmation parallรจle explicite
2.2.2 Passage de messages et mรฉmoire unifiรฉe dans les architectures distribuรฉes
2.2.3 Le flot de donnรฉes : le parallรฉlisme de tรขches explicite
2.2.4 La dรฉlocalisation des calculs dans les architectures hรฉtรฉrogรจnes
2.2.5 Les interfaces de haut niveau : le confort au dรฉtriment de la flexibilitรฉ ?
2.3 Conclusion
3 Traitement dโ€™images et bibliothรจques logicielles
3.1 Le traitement dโ€™images aujourdโ€™hui
3.2 La morphologie mathรฉmatique, une branche du traitement dโ€™images
3.3 Des bibliothรจques pour le traitement dโ€™images
3.3.1 FREIA, un framework pour lโ€™analyse dโ€™images
3.3.2 SMIL, une bibliothรจque moderne dโ€™analyse dโ€™images
3.3.3 Des ponts entre SMIL et FREIA
3.4 Conclusion
4 Compilation dโ€™un langage dynamique vers un langage statique
4.1 Concilier programmabilitรฉ et portabilitรฉ : le cas du traitement dโ€™images
4.2 Application ร  SMIL et FREIA
4.2.1 SMIL, une bibliothรจque avec une interface Python
4.2.2 FREIA, un framework pour les accรฉlรฉrateurs matรฉriels
4.2.3 Comment combler le fossรฉ ?
4.3 Manipulation et accรฉlรฉration de code Python
4.3.1 RedBaron, un outil pour le refactoring de code Python
4.3.2 Cython, un compilateur de Python vers C
4.4 De SMIL ร  FREIA
4.4.1 Gรฉnรฉration de code C avec Cython
4.4.2 Dโ€™une API ร  lโ€™autre
4.5 ร‰valuation de lโ€™approche
4.6 Conclusion
5 Parallรฉlisme multiprocesseur ร  mรฉmoire partagรฉe
5.1 Programmation parallรจle sur architecture ร  mรฉmoire partagรฉe
5.1.1 Les threads, briques de base du parallรฉlisme de bas niveau
5.1.2 Le parallรฉlisme dans les unitรฉs de calcul
5.2 SMIL, des traitements dโ€™images nativement parallรจles
5.2.1 Le parallรฉlisme dans le traitement dโ€™images
5.2.2 SMIL, un parallรฉlisme natif
5.3 Des applications SMIL parallรจles sur un cluster de calcul du MPPA
5.3.1 MPPA et OpenMP
5.3.2 Compilation croisรฉe de SMIL vers un cluster de calcul
5.3.3 Gestion des transferts dโ€™images
5.3.4 Tests de performance
5.4 Conclusion
6 Le modรจle flot de donnรฉes
7 Conclusion

Lire le rapport complet

Tรฉlรฉcharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiรฉe. Les champs obligatoires sont indiquรฉs avec *