Parallélisme massif, cartes GPU et Evolution Artificielle

Aller à : navigation, rechercher

En 2006 sont apparues les première cartes graphiques massivement parallèles reprogrammables (GPGPU), permettant de faire tourner dessus autre chose que des algorithmes de rendu graphique. Les performances annoncées sont ébouriffantes : 480 processeurs pour 1,5 téraFlops pour la carte nVidia GTX480 sortie en avril 2010 pour un prix de 400 euros. Comme on peut mettre 4 cartes dans un PC, on arrive à 6 TFlops pour une machine complète à moins de 5000 euros, à comparer avec la machine IBM ASCII WHITE, le super calculateur le plus puissant du monde en 2000, dont la puissance était estimée à 7,23 TFlops, pesant 106 tonnes, consommant 3 MégaWatts, auxquels il fallait ajouter 3 autres MégaWatts pour son refroidissement.

Le seul problème est que ces cartes ne sont pas facilement programmables : leur puissance de calcul provient de certaines "restrictions" conceptuelles. Notamment, les 480 processeurs sont groupés en "bundles" de 32 coeurs SIMD (Single Instruction Multiple Data), signifiant que les 32 coeurs doivent exécuter la même instruction en même temps. De même, l'absence de mémoire cache (qui permet d'utiliser la surface de silicium ainsi libérée pour y mettre plus de coeurs) signifie que les accès mémoire sont extrêmement lents sauf à les faire en "pipeline". Ces restrictions sont compatibles avec les besoins de l'industrie du jeu, mais deviennent des problèmes lorsqu'on veut exécuter sur ces cartes des programmes autres que ceux pour lesquels elles ont été conçues.

Ainsi, les speedups obtenus sur d'autres applications ne sont-ils pas aussi importants qu'on pouvait l'espérer sauf pour des applications particulières généralement spéficiques et restreintes (multiplications de matrices, ...), ce qui réduirait l'intérêt de ces cartes s'il n'existait un moyen générique de s'en servir à pleine puissance : l'évolution artificielle.

L'évolution artificielle est une méthode d'optimisation stochastique intrinsèquement parallèle, qui permet d'exploiter à fond le parallélisme bizarre des cartes GPU pour trouver des solutions à des problèmes extrêmement variés, allant de l'optimisation des correspondances pour établir des horaires de trains à l'optimisation de la forme de tuyères, en passant par l'alignement multiple de séquences et le pilotage de drones.

L'équipe FDBT du LSIIT est à la pointe dans la parallélisation d'algorithmes évolutionnaires sur cartes GPGPU (avec des facteurs d'accélération de 100 à 250 sur une seule carte, suivant le problème posé), notamment grâce à la plateforme EASEA, développée par l'équipe.