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

Documents pareils
Segmentation d'images à l'aide d'agents sociaux : applications GPU

Sanity Check. bgcolor mgcolor fgcolor

Initiation au HPC - Généralités

Architecture des calculateurs

Limitations of the Playstation 3 for High Performance Cluster Computing

Architecture des ordinateurs

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Eléments d architecture des machines parallèles et distribuées

Architecture des Ordinateurs. Partie II:

Exécution des instructions machine

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Tout savoir sur le matériel informatique

THÈSE. Pour obtenir le grade de. Spécialité : Informatique. Arrêté ministériel : 7 août Présentée et soutenue publiquement par.

Retour d expérience, portage de code Promes dans le cadre de l appel à projets CAPS-GENCI

T. Gasc 1,2,3, F. De Vuyst 1, R. Motte 3, M. Peybernes 4, R. Poncet 5

Rapport 2014 et demande pour Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121

Solution logicielle pour le pilotage et l ERM. Journées d études IARD 26 mars mars 2010

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Une bibliothèque de templates pour CUDA

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Calcul scientifique précis et efficace sur le processeur CELL

Présentation du PL/SQL

Quantification d incertitude et Tendances en HPC

Comparatif entre Matrox RT.X2 et Adobe Premiere Pro CS3 (logiciel seul)

Tests de performance du matériel

Les outils de gestion de campagne d marketing

Estimation des charges. «Le travail se dilate jusqu à remplir le temps disponible»

Génération de code binaire pour application multimedia : une approche au vol

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Logiciel Le Sphinx Plus 2 version 5. Le Sphinx Développement Chavanod

GCOS 7 sur microprocesseur standard Diane Daniel POIRSON 14 octobre 2004 Matériels 64 / DPS 7 / DPS 7000 Architecture & Evolution - Daniel POIRSON 1

COURS 9 : TARIFICATION Aspects mathématiques

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Enquête 2014 de rémunération globale sur les emplois en TIC

Contribution à la conception par la simulation en électronique de puissance : application à l onduleur basse tension

THEMIS-ACCES GESTION DES TEMPS ET DES ACCES

Fonctionnement et performance des processeurs

MABioVis. Bio-informatique et la

. Plan du cours. . Architecture: Fermi ( ), Kepler (12-?)

WEA Un Gérant d'objets Persistants pour des environnements distribués

Cours Informatique 1. Monsieur SADOUNI Salheddine

Leçon 1 : Les principaux composants d un ordinateur

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Systèmes et traitement parallèles

Communications performantes par passage de message entre machines virtuelles co-hébergées

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Rappels d architecture

Hétérogénéité pour atteindre une consommation énergétique proportionnelle dans les clouds

MATHÉMATIQUES ET SCIENCES HUMAINES

Les Bonnes Affaires de Juillet / Aout 2015

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Modèle de demande d'habilitation d'un Mastère LMD

Introduction au calcul parallèle avec OpenCL

Infrastructure de calcul du CRRI

CONFÉRENCE HOPITECH 2011

Les environnements de calcul distribué

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Etape 1 : paramétrage et choix du modèle d organisation

Programmation linéaire

Observatoire de l image des banques Juillet 2015

//////////////////////////////////////////////////////////////////// Administration bases de données

Table des matières. Table des matières

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Processus de validation des coûts à l appui de l attestation par l DPF

ITIL V2. Historique et présentation générale

Architecture distribuée

Intérêt du découpage en sous-bandes pour l analyse spectrale

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

L application est utilisable pour toute personne disposant d un compte Qobuz.

Associations Dossiers pratiques

Présentation BAI -CITC

Mesure de la couverture en propre du réseau d un opérateur mobile

Journée CUME 29 Mars Le déport d affichage. Vincent Gil-Luna Roland Mergoil.

Nicolas Malo Jacques Warren. Préface de Marc Lolivier. Web Analytics. Mesurer le succès et maximiser les profits de votre site Web

Solution de paiement Monetico Paiement Web. Module Prévention Fraude

DEVELOPPEMENT ET MAINTENANCE DE LOGICIEL: OUTIL DE PILOTAGE

SMS sur le réseau fixe

L A T O U R D E P E I L Z Municipalité

Robert Guichet. Conférence DERBI Juin 2008

Potentiels de la technologie FPGA dans la conception des systèmes. Avantages des FPGAs pour la conception de systèmes optimisés

Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU

Intel Corporation Nicolas Biguet Business Development Manager Intel France

Business & High Technology

Chapitre 1 Introduction

BIG DATA et EDISCOVERY

Energy Optimization System (EOS) Pour les stations d épurations

Simulation d'un examen anthropomorphique en imagerie TEMP à l iode 131 par simulation Monte Carlo GATE

Introduction à CUDA.

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Efficacité énergétique pour les particuliers : une solution pour le monitoring énergétique

Bureau : 238 Tel : dominique.muller@upmf-grenoble.fr

THÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"

Diagrammes de Package, de déploiement et de composants UML

en version SAN ou NAS

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Mesure de performances. [Architecture des ordinateurs, Hennessy & Patterson, 1996]

Transcription:

Parallélisation d opérateurs de TI: multi-cœurs, Cell ou GPU? Lionel Lacassagne 1, Antoine Pédron 2, Florence Laguzet 3, Michèle Gouiffès 1 1 = Institut d Electronique Fondamentale, Université Paris Sud 2 = Laboratoire de Dévelopement Informatique, CEA List 3 = Laboratoire de Recherche en Informatique, Université Paris Sud Lionel.lacassagne@u-psud.fr

Contexte Calcul Haute Performance pour le traitement d'image: quelles sont les pistes actuelles? Métrique de comparaison Vitesse de calcul (respect de la cadence de traitement) Consommation électrique (respect de la contrainte d embarquablité) 3 modèles d architecture: GPP RISC, multi-cœurs SIMD: parallélisation et vectorisation de code (12 processeurs différents) GPU many cores: parallélisation massive (7 processeurs différents) Cell: multi-cœurs à mémoire distribuée (DMA): modèles de parallélisation 2

Page web: Publications et Projet http://www.ief.u-psud.fr/~lacas/publications/publications.html Cell [Tadonki2010],[Falcou2009][Saidani 2008][Saidani2007] GPU [Pedron2010],[Pedron2009] Projet ANR Ocelle (Outils pour le processeur Cell) http://ocelle.ief.u-psud.fr/ 3

Choix de l algorithme de Harris Traitement d image: représentatif des algorithmes «bas niveau» (calculs régulier indépendant des données) composé d opérateurs ponctuels et de convolutions Architecture: 4 étapes successives de calculs (source d'optimisations supplémentaires)

Transformations algorithmiques et optimisations logicielles Transformations algorithmiques haut niveau: filtre séparable une convolution 2D => deux convolutions 1D Optimisations logicielles classiques Déroulage de boucle, rotation de registre: diminution nb accès mémoire entrelacement des données: diminution références actives (associativité cache) Scalarisation : mémorisation valeurs dans registres Optimisations liées au domaine applicatif Réduction par colonne (combinaison filtre 1D + déroulage de boucle) : diminution nb accès mémoire et nb calculs La spécialisation des optimisations généralistes, appliquées au TI augmente leur efficacité Vectorisation de code Utilisation des instructions SIMD (Altivec ou SSE) Parallélisation de code (OpenMP) Multi-threading sur processeur multi-coeurs

Transformations algorithmiques : fusion d opérateurs Caractérisation des opérateurs via modèle producteur-consommateur 1 motif de consommation de donnée et 1 motif de production de donnée Fusion d opérateurs Si motifs sont compatibles, sinon adaptation des motifs But: supprimer accès mémoire intermédiaires

Transformations Halfpipe et Fullpipe Complexité et intensité arithmétique des versions Planar, Halfpipe et Fullpipe Diminution de la complexité, amélioration de l'intensité arithmétique Memory bound ou computation bound?

Résultats et impact des optimisations Performances des versions Planar et Halfpipe (gain et temps de calcul) En scalaire et en SIMD (SSE) En mono-thread et en multi-thread (OpenMP) Métrique : cpp (cycle par point de calcul = temps normalisé) cpp = t x Freq / n^2 Impact majeur des optimisations: x91 pour le bi-yorkfield Multi-cœurs SIMD plus efficaces que Cell et GPU (Fermi compris) 8

Intérêt des multi-cœurs & Amdhal Origine du gain sur linéaire: la taille du cache Augmenter la taille du cache = améliorer les performances (si les données tiennent dans le cache) Figures: cpp vs taille des données

Planar vs Halfpipe vs Fullpipe : bi-powerpc 970 MP (quad-g5) 1, 2, 3,4, 8 cœurs [256 : 1024]

Planar vs Halfpipe vs Fullpipe : bi-yorkfield 1, 2, 4, 8 cœurs [256 : 1024]

1 et 8 cœurs [256 : 2048] Halfpipe vs Fullpipe : bi-yorfield Fullpipe devient plus beaucoup rapide pour les images de grande taille Choisir les transformations en fonction de la taille des données Résultats similaire avec buffers ciculaires pour diminuer l'empreinte mémoire (très complexe à implanter en multi-thread)

CUDA Zone Explications GPU #1 problème du fairplay des benchmarks publiés transfert non pris en compte dans performance comparaison à code mono-thread scalaire Raisons de la contre performance Convolutions nécessitent prise en compte des bords (de l'image, mais aussi des tuiles lors du découpage) mémoire de texture (+lent, mais adressage modulaire / avec blocage) = copie Origines du problème Utilisation de mémoire de texture Implantation mémoire shared en cours nombre d'accès mémoire élevé nombre de registres élevé (spill code)

Problème du PCIe Explications GPU #2 Bus PCIe 16x (à partager si multi-gpu ) Temps de transfert >> temps de calcul (GTX285: x7, Fermi: x7.3) (PCIe v2 = x2, mais NVIDIA Fermi = x2) Rapide ne veut pas dire efficace (ratio puissance crête/puissance utile) Conclusion GPU Calculs efficaces sur GPU = calculs avec intensité arithmétique élevée TI = acquisition caméra + transferts périodiques. Les algorithmes avec beaucoup de contrôle sont difficilement accélérables. Enjeu comment utiliser efficacement la mémoire shared du GPU???

Comparaison énergétique (Halfpipe) Images 512x512 GPU: temps de calcul uniquement (pour ne pas les défavoriser) Le Cell reste compétitif face aux GPP Les GPU sont distancés: x3 moins efficaces qu'un portable dual cœurs Temps total GPU: 7 fois pire = énergie 7 fois plus élevée

Comparaison énergétique : de la relativité de la mesure Images 300x300 Importance de la taille des données vis-à-vis de la taille des caches La machine doit être adaptée à la taille des données: utilisation d'une machine dans sa zone d'efficacité (avant la sortie de cache) La taille du cache a plus d'importance que la fréquence du processeur

Nouveaux résultats préliminaires Nehalem (juin 2010) Bi-Nehalem: suppression des sorties de caches Temps constant pour toute taille d'image Désactivation de l'hyperthreading pour de meilleures performances Cpp(512) = 0.88 (x1.25) T = 0.088 ms (fps=11530) E=22.5 mj

Nouveaux résultats préliminaires Fermi (juin 2010) Implantation de Fullpipe sur GTX 285 et 480 (Fermi) Fullpipe inefficace sur 285: cpp = 5.66 Fullpipe efficace sur Fermi: cpp = 0.87 Gain plus important sur Fullpipe que sur Halfpipe Conclusion (juin 2010): Fermi mieux adapté au calcul intensif Conclusion méthodologique Faire des benchmarks et refaire des benchmarks, et encore re-refaire des benchmarks Une implantation inefficace pour une génération d'architecture peut devenir efficace sur la génération suivante

Conclusion Multi-cœurs, Cell ou GPU? Bouleversement de l'ordre a-priori des performances (puissance crête vs puissance utile) Impact majeur des optimisations Grande variabilité des gains par classes d'algorithmes, mais aussi à cause des détails (ex: imagerie médicale & Monte-Carlo) Faut il recoder pour avoir le maximum de performance? Oui en général Quid des gros codes? -> quid des architectures futures encore plus complexes? (architectures manycore ex: Intel Terascale Polaris-Larrabee-SCC) Problème de masse critique: expert domaine + numéricien + architecte + informaticien + outils + Les outils commerciaux (condensation de l'expertise dans des outils) CAPS Entreprise: HMPP HPC-Project: PIPS et Par4All Les outils universitaires: en cours

Merci

Cell: SPMD classique

Cell: pipeline classique Avec/sans accès à la mémoire externe

Cell: nopipe et halfpipe