Analyse des textures en temps réel exploitant une architecture parallèle multi-coeurs et GPU



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

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

Découvrez les Nouveautés Février 2010 du Catalogue PC Pack PRO

Architecture des ordinateurs

Introduction à CUDA.

Architecture des calculateurs

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

Matrice HP Autonomie des PC Portables Grand Public

Initiation au HPC - Généralités

StruxureWare Power Monitoring v7.0. La nouvelle génération en matière de logiciel de gestion complète d énergie

Exigences système Edition & Imprimeries de labeur

Achats ordinateurs avec liste des prix 3 ème trimestre Optiplex 780 DT (Bureau)

Options indispensables, fortement conseillées pour démarrer sans soucis

LOT N 1 : ORDINATEURS BORDEREAU DE PRIX IDENTIFICATION DU FOURNISSEUR. Code DESIGNATION QTE PU HT EN EURO MONTANT TOTAL HT EN EURO MONTANT TTC EN EURO

Exigences système Edition & Imprimeries de labeur

Globe Services Informatique

Exécution des instructions machine

Windows Server Chapitre 1: Découvrir Windows Server 2008

Introduction à la programmation des GPUs

*Offre limitée au stock disponible - Prix affichés basés sur une TVA française de 19.6%.

Eternelle question, mais attention aux arnaques Question qui est souvent mise en premier plan => ce n est pas une bonne idée

Journée Utiliateurs Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS

DEVIS MATERIEL INFORMATIQUE MAIRIE DE CAZERES

Architectures d implémentation de Click&DECiDE NSI

Robot WIFIBOT Lab V3. 4 roues motrices

Prérequis réseau constructeurs

Symphony. Procédures d installation : Mise à jour vers une version plus récente

Portable Dell Alienware M18X

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

T E C S O F T 775,00 TTC 645,83 HT

Quantification d incertitude et Tendances en HPC

Tout savoir sur le matériel informatique

Ordinateur portable GAMER - GE620DX

Console de supervision en temps réel du réseau de capteurs sans fil Beanair

SilverFast SE Plus 8 - Le meilleur logiciel de scanner... beaucoup plus qu un simple logiciel pour des scanners.

Les Bonnes Affaires de Juillet / Aout 2015

PDF created with pdffactory Pro trial version

Ordinateur Génération

Choisir le bon ordinateur. et la bonne imprimante en avec. Les prix bas, la confiance en plus

Une bibliothèque de templates pour CUDA

Robot WIFIBOT Lab V4. Lab V4.

ManageEngine EventLog Analyzer. Les bonnes critiques et recommandations

Rapport de stage Master 2

HP 600PD TWR i G 4.0G 39 PC

neotechpro catalogue neotechpro NeoTechPro International

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

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

AutoForm plus R6 : Besoins systèmes

ClariLog - Asset View Suite

Infrastructures Parallèles de Calcul

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

Ces exigences s appliquent à la version 2014 de Sage 200 ERP Extra au

Spécifications détaillées

JetClouding Installation

Programmation C. Apprendre à développer des programmes simples dans le langage C

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

L équipement choisit devra être nomade, il servira aux visiteurs en déplacements et sera donc sujets à des limitations de tailles et de poids.

ANTI-VIRUS / PROTECTION DES POSTES DE TRAVAIL ET DES SERVEURS DE FICHIERS

Séminaire RGE REIMS 17 février 2011

CUOMO PC Route d Oron Lausanne 021/

Concept de machine virtuelle

Runtime. Gestion de la réactivité des communications réseau. François Trahay Runtime, LaBRI sous la direction d'alexandre Denis Université Bordeaux I

Exigences système BauBit pro

Solutions de Virtualisation du poste de travail. ViewSonic vous présente le poste de travail virtuel du futur

LOT 1 - ACQUISITION DE SERVEURS INFORMATIQUES LOT 2 - ACQUISITION DE 5 POSTES INFORMATIQUES

Exigences système Commercial & Digital Printing

RPVA. le cloud privé dédié aux avocats. le plus grand réseau VPN certifié Technologie française

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

Architecture des Ordinateurs. Partie II:

Une méthode de conception de systèmes sur puce

CLIENTS LÉGERS. Remote Desktop Services Linux Terminal Server Project

Calcul multi GPU et optimisation combinatoire

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Editeur de solutions innovantes C 3. Solution globale managée de communication et de téléphonie sur IP

Procédure d installation pour WinEUR PROCÉDURE D INSTALLATION POUR WINEUR. Copyright GIT SA 2015 Page 1/16

Linux embarqué: une alternative à Windows CE?

Protection des données avec les solutions de stockage NETGEAR

Pour une première installation : suivre la procédure en page 5 à 9 Pour une mise à jour : suivre la procédure page 5, 6, 10 et 11

Acquisition de matériels informatiques

Caractéristiques principales:

Géométrie discrète Chapitre V

PACKZ System Requirements. Version: Version: Copyright 2015, PACKZ Software GmbH. 1

Tests de performance du matériel

Manuel utilisateur (Manuel_utilisateur_version pdf) Manuel Reprise des données (Manuel_Reprise_donnees_version

Catalogue des stages Ercom 2013

système sécurisé de gestion du liquide

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche

Guide d'installation d'esprit Version 2014 R2

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

Spécifications détaillées

Traitement bas-niveau

INSTALLATION ET PRISE EN MAIN

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

CATEGORIE 1 : Portable basique. Référence constructeur (le cas échéant)

Fiche produit Fujitsu LIFEBOOK NH532 Ordinateur portable

Présentation d HyperV

Transcription:

Analyse des textures en temps réel exploitant une architecture parallèle multi-coeurs et GPU Moulay Akhloufi, MScA, MBA (moulay.akhloufi@crvi.ca ) Gilles Champagne (gilles.champagne@crvi.ca) Mario Jr Laframboise (mario.laframboise@crvi.ca)

Plan Introduction Calcul générique sur processeur graphique (GPGPU) Techniques d analyse de texture Résultats expérimentaux Conclusion

Introduction Croissance de l intérêt pour des techniques d analyse de texture efficaces : - Classification, segmentation, reconnaissance. Alternative récente pour l optimisation de la vitesse d exécution : - Systèmes parallèles, GPGPU, DSP, FPGA, clusters. Technologie d optimisation retenue : GPGPU: CUDA CPU: MMX-SSE, Multicoeur Techniques d analyse de texture retenues : LBP, LTP, LATP Laws texture kernels Gabor filters Gray Level Co-Occurrence Matrix (GLCM)

GPGPU Très accessible, disponible dans la plupart des PC modernes. Moins de contraintes associées à cette technologie, ce qui permet une évolution plus intéressante. Architecture en mutation constante. Parmi les cinq ordinateurs les plus puissants de la planète, trois utilisent le GPGPU.

GPGPU Évolution du nombre d opérations en point flottant par seconde. (mars 2010)

GPGPU (NVIDIA) Cœur : unité d exécution matérielle de base Multiprocesseur : regroupement de 8,32 cœurs qui partagent différentes ressources. Conçu pour les opérations en point flottant. Architecture GT200

GPGPU (NVIDIA) Architecture Fermi

GPGPU (NVIDIA) Multiprocesseur Fermi

GPGPU (NVIDIA) Kernel : fonction C exécutée N fois par N threads. Thread: unité d exécution de base. Bloc: regroupement de X thread lancé sur un même multiprocesseur. Grille: regroupement de Y bloc formant une unité d exécution lancée sur le GPU par le CPU. Nombre de thread indépendant du nombre de cœur.

GPGPU (NVIDIA) Grille de bloc

GPGPU (NVIDIA) Caractéristique de Fermi Architecture SIMD. 32 cœurs/ multiprocesseur Espace d adressage unifié. Kernel concurrent (CUDA 4.0) Cache L1/ Mémoire partagé configurable Opération double précision Opération point flottant IEEE Opération atomique.

GPGPU (NVIDIA) Limitation: Communication inter bloc non prévue Connaissance du matériel nécessaire Indépendances des résultats Courbe d apprentissage Accès mémoire coordonnée

GPGPU (NVIDIA)

GPGPU (NVIDIA) Environnement de développement CUDA: Windows, Linux, MacOS Visual Studio 2008,2010 Code mixte HOST-DEVICE Parallel Nsight pour le debugging. 2 cartes GPU Remote debugging OpenCL

GPGPU (NVIDIA) Exemple de code CPU VS GPU main() { ImageSize =1024*1024; for (int i = 0; i < ImageSize; i++) { ImageLBP[i] = LBP(Image, i); } } main() { ImageSize =1024*1024; DimBloc = 32; DimGrid = ImageSize/DimBloc; cudamalloc (GPUImage, ImageSize, ); cudamemcpy (GPUImage, Image,..); cudamalloc (GPUImageLBP, ImageSize, ); MonKernel<<DimGrid,DimBloc >>(GPUImage,GPUImageLBP) cudamemcpy (ImageLBP,GPUImageLBP,..); cudafree(gpuimage); cudafree(gpuimagelbp); } MonKernel(Image,ImageLBP) { index = ThreadIdx * BlockIdx; ImageLBP[index] = LBP(Image, index); }

Techniques d analyse de texture Local Binary Pattern (LBP) L opérateur de texture LBP est une mesure invariante d une texture en niveau de gris, calculée à partir de l analyse du voisinage. P ' i 0 if Pi < P 1 otherwise = 0 8 I LBP = P i i= 1 ' i 1 2

Techniques d analyse de texture Local Binary Pattern (LBP)

Techniques d analyse de texture Local Ternary Pattern (LTP) - With t = 5 + < = t P P if t P P if t P P if P i i i i 0 0 0 ' 1 1 0

Techniques d analyse de texture Local Adaptive Ternary Pattern (LATP) + + + < = ) ( 1 ) ( 1 ) ( 0 ' σ µ σ µ σ µ k P if k P if k P if P i i i i

Techniques d analyse de texture Law texture kernels Masque 2D dérivé à partir de 5 noyaux 1D: Center-weighted local averaging (L5 = [1 4 6 4 1]) Edge detection (E5 = [-1-2 0 2 1]) Spot detection (S5 = [-1 0 2 0-1]) Wave detection (W5 = [-1 2 0-2 1]) Ripple detection (R5 = [1-4 6-4 1]) Pour obtenir les masques de convolution 2D: Convolution d un noyau 1D vertical avec un noyau 1D horizontal.

Techniques d analyse de texture Law texture kernel * L5 E5 S5 W5 R5 L5 L5L5 E5L5 S5L5 W5L5 R5L5 E5 L5E5 E5E5 S5E5 W5E5 R5E5 S5 L5S5 E5S5 S5S5 W5S5 R5S5 W5 L5W5 E5W5 S5W5 W5W5 R5W5 R5 L5R5 E5R5 S5R5 W5R5 R5R5

Techniques d analyse de texture Filtre de Gabor: Produit d'une sinusoïde complexe et d'une fonction gaussienne. f m 1 2 2σ m ( x, y) = exp cos2π ( u x cosθ + u sinθ ) 2πσ x 2 + y 2 y 2 m m m

Techniques d analyse de texture Gray Level Co-occurrence Matrix (GLCM) Statistique de second niveau reliée aux propriétés de l image. Case plutôt difficile pour le GPU. Règles d accès coordonnées à la mémoire du GPU non respecté.

Résultats expérimentaux Systèmes utilisés: Intel E8400 - Dual Core (3.0 Ghz) 2 GB RAM (1.98 Ghz) Intel Q8200 - Quad Core (2.33 Ghz) 3 GB RAM (1.97 Ghz) Geforce 8800 GT -112 CUDA Cores (650 Mhz) 512 MB RAM (900Mhz) Geforce GTX 260-192 CUDA Cores (1 Ghz) 1.7 GB RAM (1 Ghz) Tesla C2050-448 CUDA Cores (1.1 Ghz) 2.6 GB RAM (1.5 Ghz)

Résultats expérimentaux Implantations utilisées: Raw Gold version 3Ghz: Basic C++ used as a reference Intel NoThread 2.3 Ghz: MMX-SSE Intel NoThread 3 Ghz: MMX-SSE Intel Dual Core 3 Ghz: MMX-SSE + Multithreading Intel Quad Core 2.3 Ghz: MMX-SSE + Multithreading Nvidia CUDA 112 core, 650 Mhz: GPGPU Nvidia CUDA 192 core, 1 Ghz: GPGPU Nvidia CUDA 448 core, 1.1 Ghz: GPGPU

Résultats expérimentaux Le GPGPU permet un gain plus important lorsque la grosseur de l image augmente. Petite diminution pour LBP et LTP lorsque l image est supérieure à 1024x1024. % %

Résultats expérimentaux Image de 256*256, les 448 cœurs de la C2050 font une différence. Meilleure optimisation pour l architecture Fermi (C2050). % %

Résultats expérimentaux Calcul complexe de l operateur LATP marque la différence. %

Résultats expérimentaux Le MMX-SSE combiné avec Multicore donne des résultats intéressants pour de petites images. % %

Résultats expérimentaux L accès mémoire non coordonné provoque des chutes de performance sur GPU. Optimisation plus intéressante sur C2050 (Fermi).

Résultats expérimentaux Avec optimisation sur GPU, mémoire partagé et autre. GPU GT8800 (112 coeurs) Gain LATP très intéressant. Réel 32 bits Entier 32 bits Entier 8 bits Dimension GAIN LBP GAIN LTP GAIN LATP GAIN LBP GAIN LTP GAIN LATP GAIN LBP GAIN LTP GAIN LATP 16 0,2675 0,88 3,96 0,255 0,305 3,6925 0,255 0,285 3,795 32 0,165 0,61 3,595 0,17 0,1875 3,53 0,27 0,2475 4,5975 64 0,6275 2,3825 13,7625 0,64 0,7175 12,72 0,6475 0,725 12,7775 128 2,02 7,39 34,235 2,025 2,2475 37,025 2,1425 2,3 35,3975 256 4,9175 17,0325 74,26 4,875 5,1725 69,5925 4,895 5,0425 66,41 512 6,82 23,75 93,815 6,8425 7,445 88,235 6,955 7,265 78,11 1024 8,3625 28,8725 103,99 7,9925 8,575 96,8575 7,6125 7,9825 76,435 2048 9,2025 31,66 103,64 9,065 9,4 96,675 7,91 8,36 75,6025 4096 9,215 31,745 100,2125 9,3825 9,7575 95,5375 8,0725 8,45 75,0175

Conclusion Potentiel très intéressant pour l extraction de caractéristiques sur des textures. Gain intéressant avec CPU et GPU sur de petites images. GPU surclasse le CPU sur de grandes images. Travaux futurs sur: GTX 580 Réseau de neurones