12.07.2015 Views

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

Algorithmes de la morphologie mathématique pour - Pastel - HAL

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Algorithmes</strong> <strong>de</strong> <strong>la</strong> <strong>morphologie</strong> <strong>mathématique</strong> <strong>pour</strong> les architectures orientées fluxJaromír BRAMBORΘ. Pourtant, il nous semble utile <strong>de</strong> l’y mentionner car si ce terme α est bien décrit et reflète correctement<strong>la</strong> réalité, il peut nous démontrer plus en détail <strong>la</strong> structure <strong>de</strong> <strong>la</strong> fonction du coût d’un algorithme.Notons que <strong>la</strong> seule manière <strong>de</strong> vérifier que notre estimation, que nous appelons estimation pratique<strong>de</strong> performance, est correcte et cohérente avec <strong>la</strong> réalité, c’est <strong>la</strong> mesure physique du temps du calculd’un algorithme sur une architecture donnée et <strong>pour</strong> les paramètres donnés (les dimensions d’image,d’élément structurant, etc.).9.4.2 Estimation pratique <strong>pour</strong> les GPPMMExpliquons sur un exemple trivial comment nous envisageons <strong>de</strong> procé<strong>de</strong>r à cette estimation pratique.Nous prenons l’exemple <strong>de</strong> l’opération addition <strong>de</strong> <strong>de</strong>ux images (arrays) <strong>de</strong> dimensions M × N et dontle résultat serait également une image. Nous voulons exécuter cette opération sur une architecture GPPavec un seul processeur. La complexité C 1 <strong>de</strong> l’algorithme trivial travail<strong>la</strong>nt élément par élément expriméen O est O(MN) ce qui peut également être exprimé, en effet, comme :C 1 = O(N 2 ). (9.1)Si nous voulons décrire un modèle <strong>de</strong> performance précis, il faut d’abord distinguer les opérationsavec <strong>la</strong> mémoire <strong>de</strong>s opérations arithmétiques qui peuvent participer au coût final par différentes proportions.Notons comme µ le coût <strong>de</strong> toute les opérations avec <strong>la</strong> mémoire (lecture et écriture) <strong>pour</strong> unélément d’image. Notons comme α le coût <strong>de</strong> toutes les opérations arithmétiques qui sont nécessaires<strong>pour</strong> évaluer un élément. Ainsi, le coût <strong>de</strong> cet algorithme peut être estimé commeC 1 = Θ((α + µ)MN). (9.2)ce qui donne une idée plus précise <strong>de</strong> son fonctionnement.Regardons comment vont changer ces estimations si nous utilisons à <strong>la</strong> p<strong>la</strong>ce d’une architecture GPPavec un seul processeur (un seul fil d’exécution physique) une architecture GPPMM à plusieurs processeurset/ou à plusieurs cœurs et/ou à plusieurs fils d’exécution indépendantes et/ou à parallélismesupersca<strong>la</strong>ire avec les capacités SWAR. Notons par P le nombre <strong>de</strong> processeurs qui peuvent assurerl’exécution concurrente et que S soit le nombre d’éléments qui peuvent être traités par les instructionsSIMD en même temps. Puisque les coûts d’accès à <strong>la</strong> mémoire et les coûts <strong>de</strong>s opérations arithmétiquesne sont pas, dans le cas général, les mêmes que ceux présentés dans l’équation 9.2, nous allons dénoterpar β le coût <strong>de</strong> toutes les opérations arithmétiques nécessaires <strong>pour</strong> l’évaluation d’un élément multimédia<strong>la</strong>rge et par ν le coût d’accès à <strong>la</strong> mémoire <strong>pour</strong> un tel élément. Pour cette configuration matérielle, ilest possible <strong>de</strong> concevoir un algorithme dont <strong>la</strong> complexité C 2 sera :C 2 = Θ((β + ν) MN ). (9.3)SPPour pouvoir obtenir <strong>de</strong>s estimations très concrètes, il faut substituer aux termes α, µ, β et ν <strong>de</strong>svaleurs concrètes qui peuvent être exprimées comme multiples <strong>de</strong> cycles d’horloge <strong>de</strong> notre architecture.Pour faire ce<strong>la</strong>, il faut très bien connaître l’architecture <strong>de</strong> notre matériel informatique et surtout lesphénomènes entrant en jeu. Il s’agit souvent <strong>de</strong>s effet indésirables du préchargement <strong>de</strong> données dans<strong>la</strong> mémoire cache en temps d’exécution ce qui se manifeste, <strong>pour</strong> les gran<strong>de</strong>s images n’entrant pas entièrementen mémoire cache, par un ralentissement assez important <strong>de</strong> l’exécution. Ce phénomène estaccentué dans le cas où <strong>la</strong> zone <strong>de</strong> <strong>la</strong> mémoire <strong>de</strong> sortie est distincte <strong>de</strong>s <strong>de</strong>ux zones <strong>de</strong> mémoires d’entréecar dans ce cas, nous travaillons effectivement avec 3 images et le volume <strong>de</strong>s données traitées peut trèsrapi<strong>de</strong>ment dépasser <strong>la</strong> taille <strong>de</strong> <strong>la</strong> mémoire cache.Ce point est d’autant plus marquant sur les fonctions triviales telles que l’addition que nous abordonsici. Ce type d’opérations n’exécute pas assez d’instructions arithmétiques <strong>pour</strong> pouvoir cacher <strong>la</strong>préparation <strong>de</strong>s données dans l’exécution confluente <strong>de</strong>s instructions en pipeline (cf. 3.2.3, page 38).180

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!