• Aucun résultat trouvé

2.3 Architectures pour le traitement d’images ` a base de FPGAs

2.3.7 Comparaison des performances des FPGAs et des GPUs

GPUs pour des applications de traitement d’images

Les sections pr´ec´edentes ont permis de mettre en avant que seuls les com- posants FPGAs et GPUs admettent un niveau de parall´elisation pouvant ˆetre satisfaisant dans le cadre d’applications de traitement d’images. Le but de cette section est de comparer les performances, en termes de temps de traitement ou de bande passante de sortie, de ces deux dispositifs.

Une premi`ere comparaison nous est propos´ee par B. Cope [9]. Dans ce papier, l’auteur ´evalue les performances des dispositifs FPGAs, GPU et CPU dans le cadre d’un calcul de convolution 2D. Ce type de calcul est typique du traitement d’images puisqu’il permet l’application de divers filtrages sur l’image. Les com- posants utilis´es sont un Virtex II-Pro pour le FPGA, un GPU NVidia 6800 Ultra et un CPU Intel Pentium 4 cadenc´e `a 3 GHz. Le Tab. 2.1 dresse les r´esultats obtenus par B. Cope.

Le Tab. 2.1 met en avant que, par son manque de parall´elisme, le processeur g´en´eraliste est, en termes de performances, largement d´epass´e par les deux autres dispositifs. Il est ´egalement notable que pour des tailles r´eduites du masque de convolution, le dispositif GPU est le plus performant. Ceci s’explique de part le faible niveau de parall´elisme requis pour ces dimensions de masques. Ainsi, grˆace `a son horloge interne nettement sup´erieure `a celle d’un FPGA, le GPU

Taille du masque de convolution FPGA GPU CPU 2× 2 221 1070 14 3× 3 202 278 9.7 5× 5 112 54 5.1 7× 7 90 22 2.6 9× 9 73 9 1.6 11× 11 23 4.7 1.2

Table 2.1 – Comparaison des performances entre un FGPA, un GPU et un CPU pour l’ex´ecution d’une convolution 2D en MP/s.

surclasse ce dernier. Lorsque le niveau de parall´elisme augmente, donc pour des tailles de masque plus importantes, le FPGA propose de meilleures performances. Un autre article [26] propose l’impl´ementation d’un algorithme d’extraction de flux optique sur un FPGA (Virtex-4) et un GPU (NVIDIA GeForce 8800 GTX). Cet algorithme est d´ecompos´e en 5 ´etapes :

– ´Etape 1 : extraction de 3 gradients. Le premier gradient est un gradient tem- porel, soit une diff´erence d’images successives pixel `a pixel. Les deux autres sont des gradients verticaux et horizontaux extraits par l’interm´ediaire d’une convolution avec un masque de taille 5× 5,

– ´Etape 2 : pond´eration des gradients grˆace `a un masque de convolution de taille 7× 7,

– ´Etape 3 : g´en´eration de 5 nouvelles matrices en multipliant diverses combi- naisons des 3 gradients issus de l’´etape 2,

– ´Etape 4 : application d’une convolution de taille 3× 3 sur les 5 r´esultats de l’´etape 4,

– ´Etape 5 : calcul des composantes verticale et horizontale du vecteur de d´eplacement de chaque pixel. Pour ce faire, des op´erations de multiplica- tion, de soustraction et de division sont appliqu´ees.

L’´evaluation des performances a ´et´e faite grˆace au jeu d’images de synth`ese Yo-

semite[21]. Ainsi pour une r´esolution d’images de 640×480, l’impl´ementation sur

GPU a permis d’atteindre une cadence d’images de 150 IPS l`a o`u l’impl´ementation sur FPGA a donn´e un r´esultat de plus de 300 IPS.

Une troisi`eme comparaison est pr´esent´ee par S. Asano [74]. Ce papier propose une ´evaluation des performances des dispositifs FPGAs, GPUs et CPUs dans le cadre d’applications de traitement d’images. Les composants utilis´es sont un Xilinx XC4VLX160 pour le FPGA, une XFX GeForce 280 GTX 1024MB DDR

Figure 2.36 – Performances pour un

filtrage 2-D Figure 2.37 – Performances pour une

SAD

Figure 2.38 – Performances pour une classification par K-moyennes

pour le GPU et un Intel Core 2 Extrem QX6850 `a 3 GHz pour le CPU. Trois traitements ont ´et´e impl´ement´es sur ces dispositifs. Le premier traitement est un filtrage 2-Dimensions pour lequel plusieurs tailles de masque ont ´et´e appliqu´ees et r´epondant `a l’Eq. 2.1. Le second traitement r´ealise une SAD24 dans le cadre

de vision st´er´eo (Eq. 2.2). Enfin le dernier traitement est une classification par K-moyennes suivant l’Eq. 2.3.

S(x, y) = w  dx=−w w  dy=−w

I(x + dx, y + dy).G(dx, dy) (2.1)

SADxy(x, y, d) = w  dx=−w w  dy=−w

|Ir(x + dx, y + dy) − Il(x + d + dx, y + dy)|

(2.2) E = K  i=1  x∈Ci (x− x∈Ci x |Ci| )2 (2.3)

La Fig. 2.36 rapporte les performances concernant l’application d’un filtrage 2 dimensions. Elle montre que pour les tailles de masque test´ees, les performances offertes par le GPU sont les plus importantes. La taille maximale de masque test´ee est de 15× 15 pixels, soit 225 pixels trait´es. Or le GPU utilis´e permet le traitement de 240 donn´ees en parall`ele. Du fait de l’horloge interne plus impor- tante pour le GPU que pour le FPGA, le GPU reste meilleur que le dispositif FPGA. N´eanmoins, on peut facilement consid´erer que le FPGA sera plus efficace pour des tailles de masque plus importantes grˆace `a ”sa meilleure pr´edisposition” au parall´elisme. Il est ´egalement notable que pour une taille de masque 3× 3, le CPU est plus performant que le FPGA mais d`es lors que la dimension augmente, le CPU devient bien moins performant que le FPGA (facteur 8 en faveur du FPGA pour une dimension 15× 15.

La Fig. 2.37 montre que pour une SAD dont la taille de fenˆetre d’int´erˆet est

de 7× 7 le dispositif FPGA est bien sup´erieur aux deux autres composants. Au

del`a d’une certaine valeur de D, qui d´efinit le nombre de fenˆetres de Il `a compa- rer, le FPGA admet un diminution de ses performances. Ce ph´enom`ene est dˆu `

a une limitation physique du FPGA en termes de blocs RAM. N´eanmoins, pour

D = 240 le GPU est moins performant d’un facteur 30.

Enfin la Fig. 2.38 confirme l’exp´erimentation pr´ec´edente en montrant que pour une classification en 48 clusters le FPGA outrepasse les 2 autres compo- sants d’un facteur de 7 `a 9 grˆace `a son parall´elisme massif et au probl`eme d’acc`es aux donn´ees inh´erent `a l’utilisation d’un GPU.

En conclusion, pour des applications de traitement d’images, le parall´elisme est un aspect plus que primordial pour l’obtention de performances ´elev´ees. De ce fait, les FPGAs poss´edant le parall´elisme le plus massif rendent ces composants parfaitement adapt´es au domaine du traitement d’images.