GPU Computing pour le CNES
Face à l’accroissement rapide des capacités de calcul
des processeurs graphiques (GPU) ces dernières années, notamment
via des applications grand public telles que les jeux vidéos, le
CNES a confié à VEGA une étude sur l’utilisation des GPU pour le
traitement d’imagerie spatiale à la volée. Cette étude permet, par
le portage complet d’algorithmes de traitements d’image du CPU vers
le GPU, de valider l’intérêt de cette nouvelle technologie et
d’amorcer de façon sereine ce changement technologique au sein du
CNES.
Contexte
Composant jusqu’alors périphérique du
processeur central, le processeur graphique est devenu en quelques
années un composant majeur de tout ordinateur. Alors
qu’initialement il était dédié à la génération d’images 3D en temps
réel, le GPU (Graphic Processing Unit), est venu, par sa capacité
de traitement, à dépasser le CPU en termes de performances et de
coûts sur des opérations précises (traitement massivement parallèle
par exemple).
Cette figure montre clairement que pour
un traitement donné (GFLOPS, soit un milliard d’opérations en
virgule flottante par seconde), les performances des GPU ont évolué
beaucoup plus rapidement que celles des CPU. On peut noter
qu’aujourd’hui, ces performances sont dans un rapport de 1 à 10,
voire davantage. De par la possibilité aujourd’hui de clusteriser,
i.e. de mettre en commun plusieurs GPU sur une plate-forme unique,
les gains en performances sont encore plus importants. L’ancestral
CPU devient donc bien faible et seul face à ces nouvelles
« fermes de calcul » que sont les clusters de
GPU.
Description de la prestation
Dans le cadre de la R&T émise par le CNES
sur l’utilisation des processeurs graphiques pour les traitements
d’imagerie spatiale à la volée, VEGA évalue dans des cas concrets
l’intérêt pour le CNES d’effectuer le virage technologique proposé
par les GPU. Ainsi le composant GPU, jusqu’à maintenant
cantonné à la réalisation d’images 3D, devient un composant majeur
dont les spécificités techniques sont directement exploitées afin
d’optimiser les algorithmes scientifiques : on parle là de
calcul générique sur GPU, ou encore de GPU Computing.
Activités réalisées
La prestation à réaliser se scinde en deux
phases :
- Une étude large des possibilités des GPU
comportant une phase d’état de l’art et une phase d’étude de
faisabilité;
- Un portage complet (i.e. incluant le
matériel) de trois algorithmes sur GPU permettant non seulement une
comparaison complète avec les algorithmes déjà existants mais
également une mise à disposition de ces algorithmes pour la
plate-forme ENVI.
Etude large des possibilités GPU
Cette première phase réalisée en 2008 consiste
en une étude exhaustive des solutions GPU (matériel et logiciel),
et en particulier des solutions permettant d’adresser les
algorithmes utilisés par le CNES dans le traitement des images à la
volée. Cette phase est elle-même scindée en deux postes réalisés
par VEGA de façon indépendante :
- Un état de l’art général sur les technologies
GPU (matériel et logiciel) déjà existantes et utilisables
industriellement ;
- Une étude de faisabilité portant sur
l’aptitude d’un certain nombre d’algorithmes du CNES à être portés
sur GPU.
Ces algorithmes sont :
- Déconvolution/débruitage
- Corrélation
- Zoom/dézoom avec rotation
- Ré-échantillonage par tuile selon des
grilles
- Fusion multi-spectrale
- Compression/décompression jpeg2000.
Portage sur GPU d’algorithmes
A l’issue de la première phase, trois
algorithmes de traitements d’images sont sélectionnés puis portés
sur GPU. Les résultats du portage dépasse les espérances du CNES
sur le sujet puisque :
- Pour un zoom simple sur une image de très
grande taille, le GPU est au moins dix fois plus rapide que le CPU,
que cela soit en simple ou double précision ;
- Pour une corrélation pixel à pixel entre deux
images là où le CPU exige plus d’1h10 mn, le GPU réalise la
tache en moins de 2 mn !
En conclusion de l’étude, le CNES à non
seulement confirmer sa volonté de porter rapidement des
outils de traitements d’images du CPU vers le GPU (avec un
niveau de TRL passé de 1 à 5), mais également pu mettre en avant,
pour les scientifiques, la capacité d’offrir de nouvelles
façons de manipuler et de traiter les images issues du domaine
spatial.
Validation des
résultats et intégration
L’ensemble des résultats du portage ont été
validés sans aucune erreur en comparaison de la version CPU (en
simple et double précisions).
Au final, les algorithmes sont intégrés directement au logiciel
ENVI.
Facteur clé du succès
Pour s’assurer du succès de cette R&T,
VEGA s’est entouré, en plus de ses compétences internes importantes
sur la technologie GPU, d’un partenariat fort avec le leader du GPU
Computing : NVidia.
- Environnement technique : Station de travail Windows et
Linux
- Langages, bibliothèques : ENVI/IDL
- Taille de projet : Charge en homme par mois : 8
- Dates de début et de fin : septembre 2008 à mai 2009
- Taille d'équipe : 4 personnes