Allez au contenu, Allez à la navigation

RSS

DAFE - Aérodynamique fondamentale et expérimentale

GPU

L’introduction des GPU dans les méthodes de traitement de données de type image constitue l’un des investissements majeurs du DAFE pour le thème « Métrologie » pendant la période évaluée.

Les GPU sont normalement utilisés pour l’affichage, mais ils sont devenus des calculateurs massivement parallèles (2688 cœurs sur la carte TITAN de NVIDIA) qui permettent de ce fait une réduction des temps de calcul de 2 ou 3 ordres de grandeur. Le prix à payer pour obtenir un tel gain est l’apprentissage d’un langage (CUDA pour les cartes NVIDIA) et la parallélisation du code, qui peut être parfois difficile.

Les premiers développements au DAFE datent de mi 2009 pour le portage sur GPU du code FOLKI de corrélation d’images développé par le DTIM. L’adaptation de ce code pour la PIV, appelé FOLKI-SPIV, est un succès majeur comme en témoigne sa large distribution à l’ONERA. Le développement a été assez rapide puisqu’une version opérationnelle a été disponible mi 2010. Le code a suivi le processus habituel d’amélioration pour aboutir à une version stabilisée en 2012.

Le portage sur GPU du code FOLKI a été relativement aisé car l’algorithme est naturellement parallélisé : tous les pixels font la même chose en même temps. A partir de 2010, des portages plus difficiles ont été réalisés comme pour le recalage d’images. Des algorithmes originaux ont dû être développés pour certains problèmes, comme la détection des marqueurs, avec un temps de développement assez long puisque ce n’est que mi 2012 que l’ensemble de la chaîne de traitement du recalage d’image a été disponible sur GPU.

Les gains en temps de calcul pour la PIV sont tels qu’ils sont pratiquement masqués par les temps d’accès disque. Pour ce qui est du recalage d’image, le portage sur GPU permet des traitements en léger différé, ce qui est un avantage crucial pour la uPSP car il est possible d’ajuster le déroulement d’un essai en fonction des résultats obtenus ce qui autrement ne serait pas envisageable.

Du fait de la diffusion assez large des codes AFIX2 et FOLKI-SPIV, une plateforme REDMINE a été mise en place par le DTIM : elle permet d’informer aisément les utilisateurs et constitue la source unique de téléchargement des codes et de leurs documentations associées. Ces codes ont été estimés sensibles pour l’ONERA au vu de leurs performances. Ils ont donc été protégés par un système de licence très efficace. Du point de vue du développeur, les avantages sont le contrôle de la diffusion des codes et la simplicité d’interaction avec les utilisateurs.

Le portage sur GPU offre une très grande liberté algorithmique au développeur, à tel point que des publications peuvent être faites sur ce thème, par exemple sur le calcul des histogrammes. Une coopération avec le DTIM a permis de développer un interpolateur BSpline pratiquement aussi rapide que l’interpolateur bilinéaire. L’interpolateur a été testé sur Léna (image standard de test des algorithmes de compression et d’interpolation) :

L’image a été tournée 36 fois par pas de 10° (image de gauche) et comparée avec l’image initiale dont l’écart est l’image de droite. Cette image est rigoureusement identique avec la version CPU et avec une version moins rapide préalablement publiée. L’algorithme a été publié et a été téléchargé de nombreuses fois.

Le portage sur GPU est systématisé au DAFE pour les applications gourmandes en temps, comme la PIV volumétrique (voir ci-dessous).

Référence

 
Champagnat, Le Sant, Efficient Cubic B-spline Image Interpolation on a GPU, Journal of Graphics, GPU, and Game Tools, septembre 2013, Vol. 16, No. 4: 218–232.

Autres Départements Scientifiques