Larrabee
est le nom de code du processeur graphique (GPU) qu'Intel développe en parallèle de ses puces intégrées aux cartes mères. Larrabee est également précurseur dans le domaine des GPGPU (General Purpose-GPU), qui représente l'avenir des super-calculateurs, et remplaceront peut être un jour tout simplement les CPU. Les premiers produits comportant des puces Larrabee sont attendus sur le marché début 2010, en même temps que la deuxième génération des CPU Core I7.

Qu'est-ce qu'un GPU, qu'est-ce qu'un GPGPU ?

Un GPU est une puce dédiée aux tâches graphiques d'un ordinateur, d'une station de travail ou d'une console de jeu. Les GPU mordernes sont très efficaces pour manipuler les objets graphiques, et leur structure très parallèle les rend beaucoup plus efficaces que les CPU pour de nombreux algorithmes complexes. On peut trouver des GPU sur les cartes graphiques, ou directement intégrés aux cartes mères. Plus de 90% des ordinateurs vendus aujourd'hui possèdent un GPU intégré.

Un General Purpose GPU ou GPGPU est une évolution du GPU, qui permet d'utiliser les très fortes capacités de calculs de flottants (nombre a virgules) d'un accélarateur graphique pour lui permettre d'effectuer des opérations habituellement faites sur un CPU. Dans certaines applications qui demandent beaucoup de calcul vectoriels (sur des tableaux), cela peut multiplier par 40 la puissance de calcul par rapport a un CPU classique. On peut déjà retrouver ce genre de technologies dans des applications de calcul distribué comme Folding@Home.

Récemment NVidia a commencé a sortir des cartes supportant l'API CUDA (Compute Unified Device Architecture), qui permet a des fonctions d'un programme en C de tourner sur les processeurs GPU de votre ordinateur. Cela permet aux programmes d'utiliser la grande puissance de calcul des GPU pour paralléliser des grosses opérations sur des tableaux, mais de continuer a faire les calculs sur le CPU quand celui-ci est plus approprié.


Le Concept de Larrabee


Larrabee peut être considéré comme un hybride entre un CPU multi-coeurs et un GPU, et essaie de tirer avantage des deux. Sa hiérarchie de cache cohérente et son architecture x86 permettent une compatibilité avec la plupart des CPU actuels, tandis que ses unités SIMD et ses composants d'échantillonage de textures se rapprochent davantage d'un GPU.
Comme GPU, Larrabee supportera les technologies traditionnelles DirectX et OpenGL pour les jeux. Mais il devrait également être capable de fonctionner comme un processeur de flux, executant des tâches comme le lancer de rayons (ray tracing) et les traitements physiques en temps réel, que ce soit pour  les jeux ou à l'intérieur d'un super-calculateur.

L'architecture de Larrabee


Comme on peut le voir sur le schéma qui avait été présenté a l'Intel Developpers Conference, chaque puce accordera une place centrale à un cache de niveau 2, muni de deux controleurs mémoire. On retrouvera les classiques pipelines Single Instruction on Multiple Data, ainsi que le Pipeline Fixed Function (FFP, qui permet de modifier la sortie graphique, comme un shader). On aura également un cache de textures de 32Ko, et des interfaces système et affichage spécifiques. L'innovation vient principalement ici du double anneau inter-processeurs de 512bits de largeur qui simplifie grandement l'architecture et permet très facilement la multiplication des coeurs en fournissant a chaque composant un accès direct (en passant par ce canal) aux autres.

Cell : Le concurrent le plus proche


Le concurrent le plus proche en terme d'architecture et de cible sur le marché est le Cell d'IBM, présent par exemple sur les consoles de salon PS3. Néanmoins son architecture est plus proche d'un GPU, avec en entrée l'Interface XDRAM, le controlleur mémoire, le cache et une puce programmable Power PC, et un simple bus reliant les unités de calcul graphique. En bout de puce on trouve le controlleur entrée sortie, cette disposition, plus rapide avec une seule puce, permet néanmoins beaucoup moins de modularité sur le nombre de cores et d'unités de calcul.

Premiers tests



Les premiers tests semblent très prometteurs, même si ils ont été réalisés en interne chez Intel. La courbe de progression nombre de coeurs/performance est linéaire et on perd donc très peu de puissance en parallélisant les coeurs, ce qui n'est pas le cas avec les CPU actuels où les changements de contexte coutent très cher en temps de calcul brut, mais sont très perfomants dans une utilisation multi-applications.

Conclusion

Si Larrabee n'est pas encore le compromis parfait entre GPU et CPU, il pourrait devenir un concurrent redoutable aux processeurs graphiques de NVidia et ATI. Sur un ordinateur destiné au grand public, il semble néanmoins qu'il faudra l'utiliser en parallèle avec un CPU.