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 :

 

  1. Une étude large des possibilités des GPU comportant une phase d’état de l’art et une phase d’étude de faisabilité;
  2. 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 :

 

  1. Un état de l’art général sur les technologies GPU (matériel et logiciel) déjà existantes et utilisables industriellement ;
  2. 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