• Aucun résultat trouvé

Quatri` eme partie : comparaisons des diff´ erentes architectures

1.3 Organisation du m´ emoire

1.3.4 Quatri` eme partie : comparaisons des diff´ erentes architectures

Les comparaisons de performance tiennent une place importante dans nos travaux, car elles permettent de juger des gains apport´es par nos syst`emes vis-`a-vis d’architectures cibles r´epandues et performantes. Une m´ethodologie simple de test est propos´ee afin de mettre en exergue les points forts et faibles de chaque syst`eme. Des r´esultats num´eriques sont pr´esent´es et nous nous sommes attach´es `a proposer un indice de performance en terme de nombre de cycles par pixels produits. Cet indice ´etant ind´ependant de la fr´equence, il permet de gommer les asp´erit´es li´ees aux diff´erentes technologies de fabrication ou de r´ealisation des acc´el´erateurs et de proposer une comparaison juste et coh´erente.

Chapitre 2

Processeurs de voisinage flots de

donn´ees

Un tr`es grand nombre d’op´erateurs avanc´es de morphologie math´ematique d´ecoulent principalement de briques ´el´ementaires bas´ees sur des op´erations de voisinage comme des ´

erosions, dilatations ou bien encore des op´erations tout ou rien. Des algorithmes permettent de r´ealiser ces op´erateurs sur des processeurs g´en´eralistes de mani`ere efficace en exploitant des structures de donn´ees plus ou moins complexes telles que des histogrammes ou bien encore des files d’attente hi´erarchiques. La r´ealisation d’architectures d´edi´ees, exploitant de telles structures de donn´ees, donne souvent naissance `a des syst`emes tr`es rigides, disposant parfois de plusieurs bancs m´emoires ou encore ne fonctionnant pas dans un temps d´eter- ministe. Nous avons donc orient´e notre travail vers la r´ealisation de briques ´el´ementaires via des processeurs de voisinage flots de donn´ees. Ces derniers ´etant efficaces, simples `a mettre en œuvre et ayant de fortes possibilit´es de parall´elisation et de chaˆınage pour cr´eer facilement les op´erations avanc´ees de morphologie math´ematique.

Ce chapitre aborde les diff´erentes structures des processeurs de voisinage ainsi que les diff´erents calculs r´ealisables. Nous consid´erons ici un processeur flot de donn´ees comme ´

etant un op´erateur cˆabl´e dont la transformation est s´electionn´ee avant l’acheminement, au fil de l’eau, des donn´ees. L’objectif est de disposer d’un syst`eme capable de traiter au plus vite les pixels d’une image avec un minimum de contrˆole. Habituellement, ce type d’op´erateur est rel´egu´e au niveau de la chaˆıne de pr´etraitement d’une application, car jug´e trop rigide de par sa structure. Toutefois, nous montrerons leur int´erˆet dans le cadre de la morphologie math´ematique au fil des chapitres.

Nous allons d´etailler les diff´erentes structures des processeurs de voisinage et nous commencerons par en d´etailler l’architecture la plus commune. Nous analyserons et propo- serons ensuite des structures proches permettant la mise en place d’une r´ecursion pendant le traitement des donn´ees ou bien encore une nouvelle structure d’extraction parall`ele des voisinages. Cette derni`ere structure permet un acc`es simultan´e `a des groupes de voisins contigus, am´eliorant ainsi les performances et diminuant la latence du traitement. Nous aborderons ´egalement d’autres architectures d´edi´ees aux ´el´ements structurants de type seg- ment et nous pr´esenterons une nouvelle optimisation dans ce domaine afin d’´economiser une grande partie de la m´emoire employ´ee. Enfin, une conclusion est propos´ee sous forme d’un r´ecapitulatif et d’une analyse des performances des syst`emes mis en jeu ici.

2.1

Avant propos

Dans le contexte des architectures d´edi´ees au traitement d’images, il est possible de trouver un grand nombre de structures. Deux cat´egories existent, les architectures asyn- chrones [27] et les architectures synchrones. ´Etant focalis´es sur un type de traitement bas niveau, nous ne nous int´eresserons ici qu’aux architectures synchrones et parall`eles.

Une classification des architectures des ordinateurs a ´et´e propos´ee par Flynn[29] et se d´ecompose en quatre cat´egories :

– SISD, Single Instruction stream Single Data stream : il s’agit de la machine s´equen- tielle standard, ne contenant aucun parall´elisme.

– MISD, Multiple Instruction stream Single Data stream : tr`es peu employ´ee seule, cette architecture permet `a plusieurs processeurs de travailler sur la mˆeme donn´ee – SIMD, Single Instruction stream Multiple Data stream : plusieurs processeurs ex´e-

cutent la mˆeme instruction sur plusieurs donn´ees (processeurs vectoriels...)

– MIMD, Multiple Instruction stream Multiple Data stream : plusieurs processeurs ex´e- cutent plusieurs instructions sur plusieurs donn´ees (multiprocesseur...)

Toutefois, cette classification des architectures met principalement en exergue le mode de fonctionnement du parall´elisme via la configuration du r´eseau entre les diff´erentes unit´es de calculs. Aucune hypoth`ese n’est formul´ee concernant la nature spatiale ou temporelle du parall´elisme. C’est la raison pour laquelle nous diff´erencions deux grandes classes de machine : les machines `a r´epartition spatiale du parall´elisme et les machines `a r´eparti- tion temporelle du parall´elisme. Il existe bien entendu des passerelles entre les deux, une machine peut travailler localement avec un parall´elisme spatial, mais globalement avec un parall´elisme temporel.