18–21 sept. 2006
CENTRE D’ACCUEIL DE VALPRE, LYON
Fuseau horaire Europe/Paris

Prototype de calcul parallèle sur carte graphique

21 sept. 2006, 08:30
30m
Les Essarts (CENTRE D’ACCUEIL DE VALPRE, LYON)

Les Essarts

CENTRE D’ACCUEIL DE VALPRE, LYON

1, Chemin de Chalin 69131 Ecully

Orateur

Emmanuel Hornero (LPNHE)

Description

Les cartes graphiques, profitant du dynamisme de l'industrie du jeu, se sont vu attribuer une puissance de calcul et une flexibilité en terme de programmation qui rivalise avec un processeur central, le CPU. Aussi, nous avons cherché à concevoir un module de calcul parallèle par GPU dépassant en puissance un CPU récent basé sur le concept de GPGPU : General-Purpose computation on GPUs. L'architecture parallèle du GPU actuel est basée sur le modèle SIMD (Single Instruction Multiple Data). La même instruction (noyau) est appliquée simultanément à plusieurs données (flot) pour produire plusieurs résultats. Ce modèle convient particulièrement bien aux traitements dont la structure est très régulière, comme c'est le cas, par exemple, pour le calcul matriciel. Entre 2001 et 2003 sont apparus les GPUs programmables : ce qui était jusqu'alors cablé directement dans les circuits de la carte graphique est devenu programmable. Il est intéressant de voir comment les microprocesseurs et les cartes graphiques vont vers une rencontre. Les microprocesseurs se tournent vers le parallélisme (MMX, 3DNow!, SSE) et vers la multiplication des cores (dual core), chose déjà présente depuis longtemps dans les cartes graphiques qui travaillent principalement sur des vecteurs et des matrices (parallélisme) et possèdent plusieurs unités de textures et de shaders (sorte de multiplication des cores). Les cartes graphiques, quant à elles, disposent de plus en plus de fonctionnalités, leur permettant de réaliser de plus en plus de choses, ce qui les rapproche d'un microprocesseur capable de réaliser des tâches génériques. Nous avons imaginé un prototype de module permettant d'effectuer un certain calcul/algorithme (toujours le même) sur chaque éléments de plusieurs flux de données en entrée. Ce modèle, suffisamment générique, permet d'être utilisé dans beaucoup d'applications, dont le traitement d'images. Les ressources CPU demandées par le traitement d'images sont fortes et les calculs souvent répétitifs. C'est particulièrement pour ce genre d'applications que ce module de calcul a été pensé. Ce module a été testé et implémenté dans la librairie Poloka d'outils de traitement d'images astronomiques de l'expérience SuperNovae afin d'effectuer un filtre donné (une moyenne en l'occurrence) sur un maximum d'images. Des comparatifs permettent de dégager un gain de facteur 10 en terme de temps de calcul entre la version CPU et la version GPGPU. Des tests plus poussés sur des applications plus pertinentes sont en projet.

Auteur principal

Emmanuel Hornero (LPNHE)

Documents de présentation