Comment le GPGPU va révolutionner le calcul parallèle

Les constructeurs de cartes graphiques, NVIDIA en tête, sont en train de bouleverser le monde des supercalculateurs. Vue d’ensemble de ce marché et de son évolution. Attention : dossier sur six pages !

Le Tesla Personal Supercomputer est une nouvelle initiative de NVIDIA. Il ne s’agit pas ici à proprement parler d’un produit, mais d’un ensemble de caractéristiques que les constructeurs pourront reprendre dans des supercalculateurs personnels ; des PC comprenant trois ou quatre cartes Tesla C1060, d’une puissance unitaire de 933 gigaflops en simple précision pour 78 gigaflops en double précision. Le Tesla C1060 est pourvu de 4 Go de mémoire.

Les premières applications personnelles ?

Le calcul parallèle est largement utilisé pour des travaux scientifiques, avec des gains parfois étonnants. Ce tableau de NVIDIA permet de découvrir une multitude d’applications pratiques pour CUDA. Avec une large base déployée de composants compatibles CUDA, la puissance des cartes graphiques NVIDIA commence également à se faire remarquer dans certains projets de calcul distribué comme BOINC, Folding@home ou SETI@home.

Plus proches de nous, certaines applications bénéficient aujourd’hui des techniques d’accélération GPGPU. C’est le cas de la physique (dans les jeux), de l’encodage de vidéos ou du traitement d’images. Par exemple, Adobe utilise une sous-couche GPGPU (en OpenGL) pour l’ensemble des logiciels de la Creative Suite 4. Les divers ouvrages que nous avons consultés sur la question nous donnent quelques pistes intéressantes pour les applications GPGPU personnelles du futur : chiffrement, détection de virus, bases de données, etc.

Malheureusement, tout ceci tarde à apparaître. Nous pouvons tout d’abord constater un problème de besoin : aujourd’hui, encoder un film en Divx se fait rapidement, même avec le seul processeur de l’ordinateur. L’intérêt du GPGPU ne transparait donc pas clairement. Mais il en ira tout autrement avec les codecs de nouvelle génération, plus performants, mais aussi plus complexes. Avec Dirac, qui est extrêmement gourmand en termes de calculs, l’utilisation de la puissance de la carte graphique devient presque obligatoire.

Un autre point explique ce manque d’applications pratiques du GPGPU dans le monde ‘non scientifique’. Paralléliser du code nécessite un élément devenu rare aujourd’hui : des compétences avancées en algorithmie. Ces dernières années, l’industrie du logiciel a demandé toujours plus de développeurs capables de fournir du code au kilomètre, en utilisant des kits de développement extrêmement évolués ou des RAD (Rapid Application Development). Ceci s’est fait au détriment de certaines catégories de programmeurs comme les architectes logiciels et les ‘algorithmiciens’ (toutes nos excuses pour ce barbarisme). Le GPGPU manque donc cruellement de bras.

teslapersonalsupercomputer.jpg