Intel Larrabee: mais qu'est ce que c'est que ce truc?

samedi 16 mai 2009 22h09

Intel ne se contente plus du marché des processeurs et essaye de répandre l'architecture x86 dans de nouveaux marchés. De ce changement, on a vu la naissance du processeur Atom qui fait le succès des petits ordinateurs Netbooks. Le processeur Atom va aussi servir à attaquer le fief de ARM: les téléphones portables.

Intel a aussi des ambitions dans les cartes graphiques. Pour se démarquer de la concurrence, Intel se lance dans des architectures déjanté, dont nous allons voir le Larrabee.

Larrabee est une nouvelle architecture de processeur graphique en cours de développement. Cette architecture se distingue par le fait qu'elle n'est pas spécialisée uniquement dans les opérations du pipeline graphique. Il s'agit d'un grand nombre de cœurs généralistes équipés de nouvelles instructions vectorielles.


Architecture

Beaucoup de cores, beaucoup de threads

L'architecture Larrabee est composée de nombreux cores x86.

Contrairement aux processeurs x86 modernes, ces cores exécutent les instructions dans l'ordre (in-order). Cette particularité reporte l'optimisation de l'utilisation du pipeline vers le programmeur. Pour faciliter cette tâche, chaque core peut exécuter 4 threads simultanément. Ce multithreading par core permet de réduire les bulles dans le pipeline, car si un thread doit attendre des données, un autre thread peut prendre le relai. Cela n'est évidemment efficace que si les 4 threads travaillent sur les mêmes données afin que le cache soit utilisé au mieux.

Chacun de ces petits cores x86 a son propre cache L1 et L2, et est connecté à un bus d'interconnexion. La mémoire des cohérentes entre les caches, ce qui original et assez remarquable vu le nombre de core impliqués.

Un nouveau jeu d'instruction SIMD

Intel n'irait pas bien loin dans le secteur graphique si l'arme absolue était une pile de vieux x86. Pour atteindre des performances raisonnables sur les opérations graphique, un nouveau jeu d'instruction a été créé pour les opérations véctorielles: LRBni.

LRBni est un jeu d'instruction vectoriel, tout comme SSE, mais là ou les vecteurs de SSE font 128 bits, les vecteurs de LRBni font 512 bits! La taille des données du vecteur est limité à 32 ou 64 bits, mais le jeux d'instruction est bien plus fournit que celui de SSE.

Chaque core SIMD possède 32 registres de 512 bits, pour chaque thread! Cela laisse de la marge pour optimiser de petites suites d'opérations graphique.

Qu'est ce que ça vaut?

Processeur graphique

L'architecture de Larrabee est curieusement générale pour un processeur graphique. Il est difficile à croire qu'Intel parviendra à battre les processeurs graphiques spécialisé à l'aide d'une architecture x86.

Il n'existe pas encore de données pour comparer les performances de Larrabee aux processeurs graphique de Nvidia et ATI. Néanmoins, l'architecture et les premières données sur les prototypes laissent penser que les processeurs seront plus gros, plus cher à produire, et consommerons plus d'énergie.

Coprocesseur

Les fondeurs sont devant un problème pour continuer a améliorer la puissance des processeurs. Augmenter la fréquence n'est plus viable, ce qui a poussé à la multiplication des cores. Hélas, ces nouveau processeurs multi-core sont très difficile à concevoir à cause de la cohérence du cache, et les programmeurs sont frileux à utiliser les cores car ils y a trop de compromis en jeux.

Une alternative en pleine croissance est l'utilisation les capacités vectorielles des processeurs graphique pour accélérer les programmes. C'est ainsi qu'on voit apparaître la tendance du GPGPU (General-purpose computing on graphics processing units) et les API pour programmer ce modèle (FireStream, Cuda et bientôt OpenCL).

Face à la croissance de cette tendance, Larrabee pourrait tirer son épingle du jeux. Moins bon en 3D mais meilleur en calcul général, il pourrait accélérer les applications de bureau tout en permettant de jouer.

Si Intel parvient à obtenir des performances graphiques raisonnable avec son architecture, cela pourrait suffire à faire le succès de ce nouveau processeur. De par son architecture généraliste, Larrabee est un parfait candidat pour être un coprocesseur destiné à accélérer les opérations de compression d'image, audio, vidéo, les opérations graphique diverse, la simulation physique, etc.

Pour conclure

L'avenir nous dira a quel point l'architecture Larrabee est exploitable pour nos applications. Larrabee a emprunté pas mal de concepts au processeur Cell d'IBM, et le Cell est connu pour son modèle de programmation particulièrement difficile.

Ce qui est sûr, c'est que les coprocesseur vectoriels sont en train de devenir l'objet de toute l'attention des fondeurs. Avec l'API OpenCL qui arrive, cette puissance pourra être exploité dans nos programmes.

Exploiter la puissance d'un ordinateur n'aura jamais été aussi difficile, et il reste a créer les outils pour diminuer cette complexité afin que ces technologies se répandent.