Parallélisation d’opérateurs de TI : multi-cœurs, Cell ou GPU ?

Parallélisation d’opérateurs de TI : multi-cœurs, Cell ou GPU ?

Antoine Pédron Florence Laguzet  Tarik Saidani  Pierre Courbin  Lionel Lacassagne  Michèle Gouiffès 

CEA, LIST, Gif sur Yvette F-91191

Laboratoire de Recherche en Informatique, Université Paris Sud, Orsay, F-91405

Institut d’Électronique Fondamentale, Université Paris Sud, Orsay, F-91405

Corresponding Author Email: 
antoine.pedron@cea.fr
Page: 
161-187
|
DOI: 
https://doi.org/10.3166/TS.27.161-187
Received: 
1 October 2009
| |
Accepted: 
15 May 2010
| | Citation

OPEN ACCESS

Abstract: 

This article deals with a performance analysis of current architectures : 8 general purpose processors, 5 graphic processing units and the Cell processor. The Harris salient points detection operator has been selected as representative of low level image processing. Through the presentation of algorithmic transforms and software optimization tuned to each architecture, the goal of this paper is to guide the user in chosing a parallel architecture and to assess how different transformations impact so as to get an architecture optimized implementation for two constraints: execution time and power consumption.

RÉSUMÉ

Cet article présente une évaluation des performances de 14 architectures actuelles : 8 processeurs généralistes, 5 GPU ainsi que le processeur Cell. L’algorithme retenu est l’opérateur de détection de points d’intérêt de Harris car représentatif des algorithmes de traitement d’images régulier bas niveau. À travers différentes transformations algorithmiques et optimisations logicielles adaptées à chaque architecture, cet article guide l’utilisateur dans le choix d’une architecture parallèle et évalue l’impact des optimisations afin d’avoir une implantation en adéquation avec l’architecture selon deux critères : le temps de calcul et la consommation énergétique.

Keywords: 

parallelisation/vectorization, general purpose processors, Cell, GPU, algorithmic transforms, algorithm-architecture adequacy, Harris point operator

MOTS-CLÉS

parallélisation/vectorisation d’opérateur, processeurs généralistes, Cell, GPU, transformations algorithmiques, adéquation algorithme-architecture, opérateur de Harris

Extended Abstract
1. Introduction
2. Algorithme De Harris, Transformations Algorithmiques Et Optimisations Logicielles
3. Architectures Cibles Et Outils Associés
4. Benchmark #1 : Vitesse
5. Benchmarks #2 : Efficacité Énergétique
6. Conclusions Et Perspectives
  References

Allen R., Kennedy K. (eds) (2002). Optimizing compilers for modern architectures : a dependence-based approach, Morgan Kaufmann, chapter 8,9,11.

Demeure A., Lafarge A., Boutillon E., Rozzonelli D., Dufourd J., Marro J. L. (1995). « ArrayOL : Proposition d’un formalisme tableau pourle traitement de signal multidimensionnel », GRETSI.

Demigny D. (ed.) (2001). Méthodes et Architectures pour le TSI en temps réel, Hermes, chapter 10 : Optimisation logicielle pour processeurs VLIW. Garland M.,

Grand S. L., Nickolls J., Anderson J., Hardwick J., Morton S., Phillips E., Zhang Y., Volkov V. (2008). « Parallel Computing Experiences with CUDA», IEEE Micro, vol. 28, p. 13-27.

Han S., Guerin X., Chaee S., Jerraya A. (2006). « Buffer memory optimization for video codec application modeled in Simulink », Design Automation Conference, p. 689-694.

Harris C., Stephens M. (1988). « A combined corner and edge detector », 4th ALVEY Vision Conference, Éditions Hermès, Paris, p. 147-151.

Klein J.-O., L. Lacassagne H. M., Moutault S., Dupret A. (2005). « Low Power Image Processing : Analog versus Digital Comparison », Computer Architecture Machine Perception, IEEE.

Lacassagne L., Manzanera A., Denoulet J., Mérigot A. (2008). « High Performance Motion Detection : Some trends toward new embedded architectures for vision systems », Journal of Real Time Image Processing, october.

Lee E. (1993). « Multidimensional streams rooted in dataflow », IFIP Working Conference on Architectures and Compilation Techniques for Fine and Medium Grain Parallelism.

Lee E., Messerschmitt D. G. (1987). « Synchronous Data Flow », Proceedings of the IEEE.

Mamalet F., Roux S., Garcia C.(2007). « Real-time video convolutional face finder on embedded platforms », Journal on Embedded Systems, vol. 1, p. 22-29, January.

Podlozhnyuk V. (2007). Image Convolution with CUDA, technical report, NVIDIA, June. Pouchet L.-N., Bastoul C., Cohen A., Cavazos J. (2008). « Iterative Optimization in the Polyhedral model : part II, multidimensional time », ACM SIGPLAN Conference on Programming Lan-guage Design and Implementation (PLDI’08), p. 90-100.

Saidani T., Lacassagne L., Falcou J., Tadonki C., Bouaziz S. (2008). « Parallelization Schemes for Memory Optimization on the Cell Processor: A Case Study on the Harris Corner Detector », HiPEAC journal.

Truong D. N., Bodin F., Seznec A. (1998). « Improving cache behavior of dynamically allocated data structures », Parallel Architectures and Compilation Techniques (PACT), ACM, p. 322-329.

Ventroux N., David R. (2010). « Les architectures parallèles sur puce : synthèse des architectures multitâches pour les systèmes embarqués », Technique et Science Informatique, vol. 29,3, p. 345-378.

Volkov V., Demmel J. (2008a). LU, QR and Cholesky Factorizations using Vector Capabilities of GPUs, technical report, Electrical Engineering and Computer Sciences University of California at Berkeley, May.

Volkov V., Demmel J. W. (2008b). « Benchmarking GPUs to tune dense linear algebra », SC ’08 : Proceedings of the 2008 ACM/IEEE conference on Supercomputing, IEEE Press, Piscataway, NJ, USA, p. 1-11.

Zhang Q., Chen Y., Zhang Y., Xu Y. (2008). « SIFT implementation and optimization for multicore systems », Parallel and Distributed Processing, 2008. IPDPS 2008. IEEE International Symposium on, p. 1-8.