Journée GDR-ISIS 2 juillet 2014

Arithmétique pour le traitement de signal et de l’image

10h00-10h15 : Présentation de la journée D. Ménard (IETR/INSA Rennes), T. Hilaire (LIP6/UPMC)

10:15-11h15 : Tutoriel sur les méthodes d’évaluation de fonctions, F. De Dinechin (CITI/Insa Lyon)

Cette présentation s’intéresse à l’implémentation de fonctions mathématiques telles que racine carrée, exponentielle, logarithme, fonctions trigonométriques, etc. De nombreuses bibliothèques mathématiques, à commencer par la libm du C, en fournissent d’excellentes implémentations. Toutefois, on aimerait parfois disposer d’une variante customisée à un problème: matériel spécifique, entrées/sorties en virgule fixe, besoin de précision non standard, fonctions qui ne sont pas dans la bibliothèque.

Dans ce but, ce tutoriel passera en revue les principales techniques d’implémentation d’une fonction, en logiciel ou en matériel. Il existe des techniques générales comme la tabulation, l’approximation polynomiale, les méthodes à base de tables et d’additions. Nous survolerons aussi des techniques plus spécifiques à certaines fonctions, comme les itérations de Newton pour certaines fonctions algébriques, ou la famille CORDIC. Nous apprendrons à en évaluer le coût et la performance.

Sans être exhaustif, nous espérons que ce panorama permettra à un auditeur confronté à l’implémentation d’une fonction de se poser les bonnes questions. Enfin, nous mettrons un accent particulier sur les outils logiciels qui peuvent faciliter cette tâche.

Télécharger la présentation : [Partie A (PDF)], [Partie B (PDF)]

Lien vers les outils : CRLibm, FloCoPo, Sollya

11h15-12h00 : Optimisation arithmétique pour des applications de vision,  L. Lacassagne (LRI/Universté Paris Sud)

Si les flottants 32 bits ne sont pas très intéressants  pour l’embarqué, il n’en va pas de même pour les flottants 16 bits qui sont normalisés depuis 2008 (IEEE 754-2008) et qui présentent un certain nombre d’avantages sur les nombres en virgule fixe. S’il existent depuis longtemps sous différentes formes « custom » pour ASIC et FPGA, ils sont maintenant partiellement disponibles sur GPU et sur processeurs généralistes SIMD (ARM et Intel) et permettent de faire des compromis entre précision et énergie consommée. Nous présentons ici un ensemble de résultats quantitatifs et qualitatifs pour le traitement d’image et la vision par ordinateur pour les systèmes embarqués.

13h30-14h30 : Conversion virgule fixe et génération de code C/HDL à partir de MATLAB et Simulink, C. Cudicini, (Mathworks)

Pendant cette présentation vous découvrirez comment convertir efficacement un code MATLAB ou un modèle Simulink de l’arithmétique virgule flottante à la virgule fixe. Vous apprendrez comment obtenir des propositions pour le type des données, explorer différents compromis et optimiser votre code pour respecter les contraintes liées à l’implémentation de ces algorithmes. Nous aborderons également les étapes suivantes, à savoir la génération automatique de code C/HDL et l’implémentation sur cibles DSP/MCU/FPGA.

Télécharger la présentation : [Transparents (PDF)]

Lien toolbox : Fixed-Point Designer

14h30-15h15 : Démarche industrielle pour la conversion en virgule fixe, E. Nogues (IETR/INSA Rennes)

Avec l’explosion des télécommunications ces dernières années, les standards  sont amenés à évoluer régulièrement pour fournir de meilleures performances (débit, couverture, …) et permettre une utilisation toujours plus grande. Ces modifications consistent en général à modifier un des éléments de la chaîne (ajout d’une antenne, changement d’ordre modulation, schéma de codage, ..). La méthodologie de conception devient alors un élément essentiel pour les industriels qui doivent leur produit existant. Il doivent à la fois assurer des performances optimales pour leurs systèmes ainsi qu’un temps de développement court et maîtrisé. Parmi les éléments clés à définir, le dimensionnement en virgule fixe de ces nouveaux éléments est essentiel ainsi que leur intégration dans le schéma existant. Dans cette présentation, nous présentons une approche pragmatique en deux étapes qui permet d’assurer les performances du système tout en minimisant le temps de simulation.

Télécharger la présentation : [Transparents (PDF)]

15h30-15h45 : Le flot de conversion en virgule fixe développé au sein du projet ANR DEFIS, D. Ménard (IETR/INSA Rennes)

L’objectif principal du projet ANR INS DEFIS est de proposer de nouvelles approches pour améliorer l’efficacité du processus de conversion en virgule fixe et de fournir une infrastructure logicielle de conversion automatique d’applications complexes. L’avantage obtenu avec ce flot de conception en termes de temps de développement et de qualité de la solution générée sera démontré à travers les expérimentations sur les applications industrielles. Cette infrastructure permettra de réduire considérablement le temps de conception en automatisant la conversion en virgule fixe et permettra d’explorer le compromis entre la qualité de l’application et le coût d’implantation.

Télécharger la présentation : [Transparents (PDF)]

15h55-16h30 : Optimisation de noyaux d’algèbre linéaire en virgule fixe, A. Najahi et G. Revy (LIRMM/UPVD)

Dans le contexte des systèmes embarqués, l’arithmétique à virgule fixe est une alternative moins coûteuse et plus performante que l’arithmétique flottante. Mais programmer en virgule fixe est difficile pour les non-initiés car cela implique de gérer à la main tous les détails arithmétiques. La synthèse automatique de code constitue alors une des solutions à ce problème.

Dans cette présentation, nous nous placerons dans un contexte sensible à la précision numérique où il est alors nécessaire de pouvoir borner les erreurs dues à l’arrondi des calculs. Après une présentation de notre modèle arithmétique, nous nous intéresserons aux cas particuliers de la synthèse pour des blocs de base d’algèbre linéaire. Dans un premier temps, nous détaillerons un algorithme permettant de réduire la taille du code généré pour la multiplication de matrices tout en garantissant une certaine borne d’erreur sur son évaluation. Dans un second temps, nous présenterons des travaux récents sur la synthèse de code pour l’inversion de matrices triangulaires et la décomposition de Cholesky.

Télécharger la présentation : [Transparents (PDF)]

Lien vers les outils :

  • CGPE: Code Generation for Polynomial Evaluation.
  • FPLA: Fixed-Point Linear Algebra.

16h30-17h15 : Du filtre au code : vers une implémentation automatique de systèmes linéaires en virgule fixe, B. Lopez et T. Hilaire (LIP6/UPMC)

L’implantation efficace de systèmes linéaires (filtres FIR ou IIR, contrôleurs, etc.) en des algorithmes virgule fixe est une tâche difficile, longue et source d’erreurs, principalement à cause des problèmes de précision finie. L’arithmétique virgule fixe utilisée dans ce contexte (que cela soit pour une implantation matérielle ou logicielle) implique une détérioration des performances et des caractéristiques des filtres/régulateurs, due à la quantification des coefficients utilisés et aux erreurs d’arrondi des calculs.

Dans cette présentation, nous proposons de détailler le problème d’implantation optimale de systèmes linéaires et listerons les différents leviers possibles afin de gérer le compromis précision/performance/coût d’implantation. Une méthode globale permettant de transformer un système linéaire en une implémentation virgule fixe, avec garantie de précision sera présentée

Télécharger la présentation : [Transparents (PDF)]

17h15-17h30 : Démonstration du workflow développé au sein du projet ANR DEFIS, R. Rocher (IRISA/Université de Rennes I)