In the last decades embedded systems have been challenged with more and more application variety each time more constrained This implies an ever growing need for performances and energy efficiency in arithmetic units This work studies solutions ranging from hardware to software to improve arithmetic support in embedded systems Some of these solutions were integrated in Kalray's MPPA processor The first part of this work focuses on floating-point arithmetic support in the MPPA It starts with the design of a floating-point unit FPU based on the classical FMA Fused Multiply-Add operator The improvements we suggest implement and evaluate include a mixed precision FMA a 3-operand add and a 2D scalar product each time with a single rounding and support for subnormal numbers It then considers the implementation of division and square root The FPU is reused and modified to optimize the software implementations of those primitives at a lower cost Finally this first part opens up on the development of a code generator designed for the implementation of highly optimized mathematical libraries in different contexts architecture accuracy latency throughput The second part studies a reconfigurable coprocessor a hardware operator that could be dynamically modified to adapt on the fly to various applicative needs It intends to provide performance close to ASIC implementation with some of the flexibility of software One of the addressed challenges is the integration of such a reconfigurable coprocessor into the low power embedded cluster of the MPPA Another is the development of a software framework targeting the coprocessor and allowing design space exploration The last part of this work leaves micro-architecture considerations to study the efficient use of parallel arithmetic resources It presents an improvement of regular architectures Single Instruction Multiple Data like those found in graphic processing units GPU for the execution of divergent control flow graphsAu cours des dernières décennies les systèmes embarqués ont dû faire face à des demandes applicatives de plus en plus variées et de plus en plus contraintes Ce constat s'est traduit pour l’arithmétique par le besoin de toujours plus de performances et d'efficacité énergétique Ce travail se propose d'étudier des solutions allant du matériel au logiciel ainsi que les diverses interactions qui existent entre ces domaines pour améliorer le support arithmétique dans les systèmes embarqués Certains résultats ont été intégrés au processeur MPPA développé par Kalray La première partie est consacrée au support de l'arithmétique virgule flottante dans le MPPA Elle commence par la mise au point d'une unité flottante matérielle basée sur l'opérateur classique FMA fused multiply-add Les améliorations proposées implémentées et évaluées incluent un FMA à précision mixte l'addition à 3 opérandes et le produit scalaire 2D à chaque fois avec un seul arrondi et le support des sous-normaux Cette partie se poursuit par l'étude de l'implémentation des autres primitives flottantes normalisées division et racine carrée L'unité flottante matérielle précédente est réutilisée et modifiée pour optimiser ces primitives à moindre coût Cette première partie s’ouvre sur le développement d'un générateur de code destiné à l'implémentation de bibliothèques mathématiques optimisées pour différents contextes architecture précision latence débit La seconde partie consiste en la présentation d'une nouvelle architecture de coprocesseur reconfigurable Cet opérateur matériel peut être dynamiquement modifié pour s'adapter à la volée à des besoins applicatifs variés Il vise à fournir des performances se rapprochant d'une implémentation matérielle dédiée sans renier la flexibilité inhérente au logiciel Il a été spécifiquement pensé pour être intégré avec un cœur embarqué faible consommation du MPPA Cette partie s'attache aussi à décrire le développement d'un environnement logiciel pour cibler ce coprocesseur ainsi qu'explorer divers choix architecturaux envisagés La dernière partie étudie un problème plus large l'utilisation efficace de ressources arithmétiques parallèles Elle présente une amélioration des architectures régulières Single Instruction Multiple Data tels qu’on les trouve dans les accélérateurs graphiques GPU pour l'exécution de graphes de flot de contrôle divergents
from HAL : Dernières publications http://ift.tt/12YLAWB
from HAL : Dernières publications http://ift.tt/12YLAWB
0 commentaires:
Enregistrer un commentaire