Segmentation d'images à l'aide d'agents sociaux : applications GPU Richard MOUSSA Laboratoire Bordelais de Recherche en Informatique (LaBRI) - UMR 5800 Université de Bordeaux - France Laboratoire de recherche en économie-écologie, éco-innovation et ingénierie du développement soutenable (REEDS) Université St Quentin-en-Yvelines - France Journée calcul parallèle, GPU/CPU 28 Novembre 2011 Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 1/21
Sommaire 1 2 3 4 5 Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 2/21
Sommaire 1 2 3 4 5 Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 3/21
1 Présentation d'un modèle générique pour les agents sociaux ; 2 Parallélisation du modèle sur GPU ; 3 dans le domaine de la segmentation d'images et de la simulation biologique. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 4/21
Sommaire 1 2 3 4 5 Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 5/21
Système Multi-Agents [Wooldridge, 2005] 1 Qu'est ce qu'un agent? Une entité autonome qui interagit localement avec le voisinage ; Situé dans un environnement 2D ou 3D ; Un agent peut être déni comme réactif ou cognitif. Agents sociaux Les agents sociaux sont des agents réactifs ; Ils interagissent localement dans le but d'atteindre une tâche globale mais sans aucune connaissance de cette tâche au niveau global. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 6/21
GPU a (1) a. Graphics Processing Unit Qu'est ce qu'un GPU? Dédié à accélérer des processus de faible performance ; Utilisez la mémoire comme un environnement ; Les agents sont multi-threadés. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 7/21
GPU a (1) a. Graphics Processing Unit Qu'est ce qu'un GPU? Dédié à accélérer des processus de faible performance ; Utilisez la mémoire comme un environnement ; Les agents sont multi-threadés. Comment faire? 1 Chargez la mémoire de la partie CPU à la partie GPU ; 2 Eectuer le traitement dans la partie GPU ; 3 Transfert du résultat au CPU pour analyser les informations. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 7/21
GPU a (2) a. Graphics Processing Unit Cuda Grid Thread Block Thread Thread ID Block Index Thread Index OpenCL NDRange Work Group Work Item Global Id Block Id Local ID Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 8/21
GPU a (3) a. Graphics Processing Unit La mémoire du GPU CUDA OpenCL Caractéristiques Global Memory Global Memory Espace de quelques GO / accès lente en R/W / durée de vie de la simulation. Texture Memory Global Memory Dérivée de la mémoire globale / la plus rapide en R (en cache) / durée de vie de la simulation. Constant Memory Constant Memory Espace de quelques KO / accès en R (en cache + meilleure latence que GM) / durée de vie de la simulation. Shared Memory Local Memory Espace de quelques KO / accès rapide en R/W (en cache) / durée de vie d'un Thread Block. Registers Private Memory Espace de quelques KO / accès rapide en R/W / durée de vie d'un Thread Local Memory Global Memory Réside dans la mémoire globale en recours de la mémoire des registres / accès lente en R/W / durée de vie d'un Thread. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 9/21
Sommaire 1 2 3 4 5 Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 10/21
Modèle Multi-Agents Cycle de vie d'un agent Perception ; Décision ; Action. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 11/21
Modèle Multi-Agents Cycle de vie d'un agent Perception ; Décision ; Action. Simulation Un environnement est créé par une décomposition en un ensemble de points ; A chaque pas de temps, les points sont mises à jour par les informations partagées entre les agents ; A la n de la simulation, une évaluation des points est eectuée dépendant de l'application choisie. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 11/21
Modèle Multi-Agents Cycle de vie d'un agent Perception ; Décision ; Action. Simulation Un environnement est créé par une décomposition en un ensemble de points ; A chaque pas de temps, les points sont mises à jour par les informations partagées entre les agents ; A la n de la simulation, une évaluation des points est eectuée dépendant de l'application choisie. pointel linel surfel voxel Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 11/21
Modèle Multi-Agents Cycle de vie d'un agent Perception ; Décision ; Action. Simulation y Un environnement est créé par une décomposition en un ensemble de points ; A chaque pas de temps, les points sont mises à jour par les informations partagées entre les agents ; A la n de la simulation, une évaluation des points est eectuée dépendant de l'application choisie. z x Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 11/21
Modèle des araignées Cycle de vie des araignées Perception : calculer le voisinage ; Décision : calculer les poids des voisins (dépendant de l'information l) ; Action : se déplacer vers la nouvelle position et ajouter un l entre les deux voxels si l'information couleur appartient à l'intervalle de recherche. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 12/21
Modèle des araignées Cycle de vie des araignées Perception : calculer le voisinage ; Décision : calculer les poids des voisins (dépendant de l'information l) ; Action : se déplacer vers la nouvelle position et ajouter un l entre les deux voxels si l'information couleur appartient à l'intervalle de recherche. Segmentation par les araignées Un environnement est créé par une décomposition de l'image en voxels ; N colonies sont créées à partir de l'histogramme de l'image contenant M araignées chacune ; A chaque pas de temps, exécuter le cycle de vie des araignées ; Évaluer les ls déposés entre les voxels pour créer les régions de l'image. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 12/21
Modèle des fourmis (1) Cycle de vie des fourmis (1) Perception : sélectionner un voisinage ; Décision : calculer une fonction de transition entre les points de l'image et sélectionner celle ayant le poids maximal ; Action : se déplacer vers la nouvelle position et ajouter une concentration de phéromone. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 13/21
Modèle des fourmis (1) Cycle de vie des fourmis (1) Perception : sélectionner un voisinage ; Décision : calculer une fonction de transition entre les points de l'image et sélectionner celle ayant le poids maximal ; Action : se déplacer vers la nouvelle position et ajouter une concentration de phéromone. Segmentation par les fourmis L'environnement est créé par la décomposition de l'image en voxels ou éléments intervoxels ; Une colonie de N fourmis est créée ; A chaque pas de temps, exécuter le cycle de vie (1) et eectuer une évaporation de l'information dans l'environnement ; Évaluer le contenu des éléments (selon la décomposition) pour créer les contours de l'image. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 13/21
Modèle des fourmis (2) Cycle de vie des fourmis (2) Perception : sélectionner le voisinage local ; Décision : recueillir les voisins potentiels pour la réaction si elle existe ; Action : modier la coloration des voisins potentiels selon l'équation ci-dessous : B + J R + V (1) Où B, J sont des réactifs et R, V sont des produits. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 14/21
Modèle des fourmis (2) Cycle de vie des fourmis (2) Perception : sélectionner le voisinage local ; Décision : recueillir les voisins potentiels pour la réaction si elle existe ; Action : modier la coloration des voisins potentiels selon l'équation ci-dessous : B + J R + V (1) Où B, J sont des réactifs et R, V sont des produits. Métabolisme biologique par les fourmis Un environnement est créé composé de voxels ; N colonies sont créées avec M fourmis chacune pour chaque réaction ; A chaque pas de temps, exécuter le cycle de vie (2) ; Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 14/21
Sommaire 1 2 3 4 5 Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 15/21
Segmentation d'images Qu'est ce qu'une segmentation? Partitionner une image I en un ensemble de régions R i : = I i R i Toutes les R i sont des régions homogènes. Quelle est l'idée? Un Systèmes Multi-Agents utilisant des modèles biologiques : les araignées et les fourmis ; La segmentation émerge du tissage de ls et du dépôt de phéromones. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 16/21
Résultats et simulation Machine 2 processeurs Intel Xeon (4 coeurs à 2.53GHz) ; 16 Go de RAM ; 4 GPU avec 2 Go de mémoire chacune ; Linux x86_64 avec un noyau 2.6.21. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 17/21
Résultats et Simulation Les araignées Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 18/21
Résultats et Simulation Les fourmis Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 18/21
Sommaire 1 2 3 4 5 Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 19/21
Un nouveau Système Multi-Agents a été proposé ; Une transformation GPU a été introduit pour accélérer le système ; Une application à la segmentation d'images et à la simulation biologique a été proposée ; Un gain de performance a été démontré par l'utilisation des GPU. Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 20/21
Merci de votre attention! QUESTIONS? Richard MOUSSA Segmentation d'images à l'aide d'agents sociaux : applications GPU 21/21