Spelling suggestions: "subject:"doptimisation dess largeur"" "subject:"doptimisation deus largeur""
1 |
Implémentation optimale de filtres linéaires en arithmétique virgule fixe / Optimal implementation of linear filters in fixed-point arithmeticLopez, Benoit 27 November 2014 (has links)
De nombreux systèmes embarqués implémentent des applications de traitement du signal, notamment lors de communications. Certains de ces traitements sont effectués par des filtres linéaires, qu'il est donc nécessaire de mettre en oeuvre numériquement sur ces cibles. Les systèmes embarqués sont sujets à diverses contraintes qu'il faut optimiser tout en conservant des systèmes fiables en terme de performance et de précision. L'arithmétique virgule fixe est généralement préférée à l'arithmétique flottante pour des systèmes embarqués de traitement du signal, entre autres car elle est moins coûteuse, disponibles dans tous les systèmes, permet d'utiliser des largeurs arbitraires sur des cibles matérielles et est généralement suffisante en terme de précision pour les applications de traitement du signal. Le calcul en virgule fixe nécessite d'aligner les positions des virgules pour ainsi rendre cohérent des calculs à base de nombres entiers. Cela implique des quantifications et l'enjeu est donc de minimiser la répercussion de ces arrondis sur le résultat final, en proposant une garantie sur l'erreur sur la sortie. Une méthodologie a été proposée durant cette thèse qui, à partir d'un algorithme de filtre linéaire, utilise une méthode analytique pour implémenter cet algorithme en virgule fixe et générer du code. Cette méthodologie considère à la fois les implémentations logicielles, et les implémentations matérielles qui impliquent la résolution d'un problème d'optimisation. Un outil, nommé FiPoGen, a été développé pour mettre en oeuvre les méthodes proposées et fournir automatiquement un code virgule fixe implémentant un filtre donné avec garantie sur l'erreur sur la sortie. / Embedded systems implement signal processing systems, such as linear filters, for example for communication through networks. These devices are subject to various constraints, such as power consumption, time-To-Market, area consumption, and so on, that is necessary to optimize while guaranteeing reliability and accuracy of the implemented systems. Fixed-Point arithmetic is generally used instead of floating-Point arithmetic for signal processing embedded systems because it is less expensive, all devices support fixed-Point numbers (as they are implemented only using integers), allows arbitrary word-Lengths in hardware implementation and is enough accurate for signal processing programs. Fixed-Point computations need the operands of an operation to be aligned together with the same position of the binary point. This leads to quantification errors and the goal is to minimize these round-Off effects onto the final result, by proposing a guarantee on the output error. During this thesis, a methodology has been proposed which implements a given algorithm in fixed-Point using analytical approach, and generates some codes. This methodology consider both software and hardware targets. The hardware approach is realized solving a word-Length optimization problem. A tool, named FiPoGen, has been developed that realizes this methodology and automatically yields fixed-Point code corresponding to a given filter algorithm with a guarantee on the output error.
|
2 |
Implementation trade-offs for FGPA accelerators / Compromis pour l'implémentation d'accélérateurs sur FPGADeest, Gaël 14 December 2017 (has links)
L'accélération matérielle désigne l'utilisation d'architectures spécialisées pour effectuer certaines tâches plus vite ou plus efficacement que sur du matériel générique. Les accélérateurs ont traditionnellement été utilisés dans des environnements contraints en ressources, comme les systèmes embarqués. Cependant, avec la fin des règles empiriques ayant régi la conception de matériel pendant des décennies, ces quinze dernières années ont vu leur apparition dans les centres de calcul et des environnements de calcul haute performance. Les FPGAs constituent une plateforme d'implémentation commode pour de tels accélérateurs, autorisant des compromis subtils entre débit/latence, surface, énergie, précision, etc. Cependant, identifier de bons compromis représente un défi, dans la mesure où l'espace de recherche est généralement très large. Cette thèse propose des techniques de conception pour résoudre ce problème. Premièrement, nous nous intéressons aux compromis entre performance et précision pour la conversion flottant vers fixe. L'utilisation de l'arithmétique en virgule fixe au lieu de l'arithmétique flottante est un moyen efficace de réduire l'utilisation de ressources matérielles, mais affecte la précision des résultats. La validité d'une implémentation en virgule fixe peut être évaluée avec des simulations, ou en dérivant des modèles de précision analytiques de l'algorithme traité. Comparées aux approches simulatoires, les méthodes analytiques permettent une exploration plus exhaustive de l'espace de recherche, autorisant ainsi l'identification de solutions potentiellement meilleures. Malheureusement, elles ne sont applicables qu'à un jeu limité d'algorithmes. Dans la première moitié de cette thèse, nous étendons ces techniques à des filtres linéaires multi-dimensionnels, comme des algorithmes de traitement d'image. Notre méthode est implémentée comme une analyse statique basée sur des techniques de compilation polyédrique. Elle est validée en la comparant à des simulations sur des données réelles. Dans la seconde partie de cette thèse, on se concentre sur les stencils itératifs. Les stencils forment un motif de calcul émergeant naturellement dans de nombreux algorithmes utilisés en calcul scientifique ou dans l'embarqué. À cause de cette diversité, il n'existe pas de meilleure architecture pour les stencils de façon générale : chaque algorithme possède des caractéristiques uniques (intensité des calculs, nombre de dépendances) et chaque application possède des contraintes de performance spécifiques. Pour surmonter ces difficultés, nous proposons une famille d'architectures pour stencils. Nous offrons des paramètres de conception soigneusement choisis ainsi que des modèles analytiques simples pour guider l'exploration. Notre architecture est implémentée sous la forme d'un flot de génération de code HLS, et ses performances sont mesurées sur la carte. Comme les résultats le démontrent, nos modèles permettent d'identifier les solutions les plus intéressantes pour chaque cas d'utilisation. / Hardware acceleration is the use of custom hardware architectures to perform some computations faster or more efficiently than on general-purpose hardware. Accelerators have traditionally been used mostly in resource-constrained environments, such as embedded systems, where resource-efficiency was paramount. Over the last fifteen years, with the end of empirical scaling laws, they also made their way to datacenters and High-Performance Computing environments. FPGAs constitute a convenient implementation platform for such accelerators, allowing subtle, application-specific trade-offs between all performance metrics (throughput/latency, area, energy, accuracy, etc.) However, identifying good trade-offs is a challenging task, as the design space is usually extremely large. This thesis proposes design methodologies to address this problem. First, we focus on performance-accuracy trade-offs in the context of floating-point to fixed-point conversion. Usage of fixed-point arithmetic instead of floating-point is an affective way to reduce hardware resource usage, but comes at a price in numerical accuracy. The validity of a fixed-point implementation can be assessed using either numerical simulations, or with analytical models derived from the algorithm. Compared to simulation-based methods, analytical approaches enable more exhaustive design space exploration and can thus increase the quality of the final architecture. However, their are currently only applicable to limited sets of algorithms. In the first part of this thesis, we extend such techniques to multi-dimensional linear filters, such as image processing kernels. Our technique is implemented as a source-level analysis using techniques from the polyhedral compilation toolset, and validated against simulations with real-world input. In the second part of this thesis, we focus on iterative stencil computations, a naturally-arising pattern found in many scientific and embedded applications. Because of this diversity, there is no single best architecture for stencils: each algorithm has unique computational features (update formula, dependences) and each application has different performance constraints/requirements. To address this problem, we propose a family of hardware accelerators for stencils, featuring carefully-chosen design knobs, along with simple performance models to drive the exploration. Our architecture is implemented as an HLS-optimized code generation flow, and performance is measured with actual execution on the board. We show that these models can be used to identify the most interesting design points for each use case.
|
Page generated in 0.0882 seconds