En septembre 2007, le Livre Guinness des records mondiaux a annoncé le nouveau détenteur du record du système de calcul distribué le plus puissant au monde. Il ne s’agissait pas d’un cluster traditionnel d’ordinateurs à haute performance, mais d’un réseau mondial composé de PC ordinaires et de consoles PlayStation 3 (PS3). Appelé Folding@Home, ce système de calcul distribué simule le repliement des protéines afin d’analyser l’origine des maladies.
Avant l’arrivée des PS3, le réseau n’était capable que de 0,25 pétaflops (250 000 000 000 000 d’opérations en virgule flottante par seconde). Mais lorsque le client Folding@Home a commencé à fonctionner sur les PS3, la vitesse de calcul a quadruplé en six mois, faisant de Folding@Home le premier système de calcul distribué à franchir la barrière de 1 pétaflops.
Le tableau 1.1 clarifie l’importance des PS3 dans le réseau Folding@Home. Il n’y a pas autant de consoles que de PC, mais elles fournissent plus de puissance de calcul que les ordinateurs Windows/Mac/Linux réunis.
Tableau 1.1. Statistiques de performance de Folding@Home (enregistrées le 16 avril, 2008)
Type de système d’exploitation |
Pflops actuels |
Unités centrales actives . |
Total CPUs |
Windows |
190,892 |
1,986,517 |
|
Mac OS X/PowerPC |
8,478 |
114,326 |
|
Mac OS X/Intel |
7,428 |
45,480 |
|
Linux |
27,796 |
286,172 |
|
PlayStation 3 |
40 880 |
492,491 |
L’énorme puissance de calcul de la PS3 est fournie par le moteur à large bande Cell, communément appelé processeur Cell ou simplement Cell. Développé par l’Alliance STI (Sony, Toshiba et IBM), le Cell combine les capacités polyvalentes de l’architecture PowerPC d’IBM avec suffisamment de calculs pour satisfaire les joueurs et les développeurs graphiques les plus exigeants.
Que cela signifie-t-il pour vous ? Cela signifie que vous pouvez profiter du meilleur des deux mondes : flexibilité et puissance de calcul. D’une part, vous pouvez installer un système d’exploitation courant, tel que Linux, sur le Cell et exécuter des applications aussi commodément que si elles tournaient sur un PC. D’autre part, vous pouvez mettre en œuvre des algorithmes intenses en calcul à des vitesses qui dépassent de loin les CPU ordinaires et même rivaliser avec les supercalculateurs.1 Plus incroyable encore, vous pouvez faire les deux en même temps.
Le Cell rend cela possible grâce à une division du travail sur la puce : Le système d’exploitation s’exécute sur un seul élément de processeur PowerPC (PPE), et le calcul à haute vitesse est effectué par une série d’éléments de processeurs synergiques (SPE). Ces deux types de cœurs sont spécifiquement conçus pour leurs tâches, et chacun supporte un jeu d’instructions différent.
Pris individuellement, ces éléments de traitement sont faciles à comprendre et simples à programmer. La partie la plus difficile est de coordonner leur fonctionnement pour tirer le meilleur parti de leurs forces. Pour y parvenir, un codeur doit connaître les commandes de programmation spécifiques au Cell et avoir une solide connaissance de l’architecture du dispositif : ses éléments de traitement, ses interconnexions et sa structure de mémoire.
Le but de ce livre est de couvrir ces sujets de manière suffisamment approfondie pour vous permettre de créer des applications qui maximisent les capacités du Cell. Une grande partie de ce traitement approfondit l’architecture du processeur, mais seulement les aspects que vous pouvez utiliser et configurer dans le code. Certains sujets peuvent sembler écrasants pour ceux qui n’ont pas l’habitude de penser comme des architectes informatiques, mais ne vous inquiétez pas : Tout sera expliqué au fur et à mesure que le besoin s’en fera sentir. Et le but de ce livre est toujours le logiciel.
Le but de ce chapitre est d’expliquer, à un niveau de base, ce qu’est le processeur Cell et comment il fonctionne. La discussion commence par une description du contexte du Cell, y compris son histoire et ses capacités, et se poursuit par la présentation de l’architecture de base du processeur.
1.1 Contexte du processeur Cell
Le Cell est si différent de ses prédécesseurs qu’il est utile de savoir pourquoi il a été créé et les forces corporatives qui ont façonné sa conception. Lorsque vous verrez pourquoi l’Alliance STI a consacré tant de temps et d’efforts au Cell, vous aurez une meilleure idée de la raison pour laquelle il vaut la peine d’en apprendre davantage.
Histoire du Cell
Sony a terminé le développement de la PlayStation 2 en 1999 et l’a commercialisée l’année suivante. Malgré son énorme succès, Nobuyuki Idei, alors PDG, était nerveux : comment la console de prochaine génération de Sony pourrait-elle surpasser la PS2 ? Que pouvaient-ils faire de plus ? La réponse, a-t-il décidé, était double : La prochaine offre devait intégrer des capacités multimédia à large bande et apporter des améliorations spectaculaires au traitement graphique. Ces objectifs élevés nécessitaient un matériel entièrement nouveau et, pour y parvenir, il s’est entretenu avec Louis Gerstner, alors PDG d’IBM. Ensemble, ils ont façonné le concept qui allait finalement aboutir au processeur cellulaire.
Le chef de Sony Computer Entertainment, Ken Kutaragi, a étoffé les besoins en matériel et a formulé des exigences qui allaient bien au-delà de l’état de l’art. Envisageant chaque processeur comme un bloc de construction d’une entité plus grande, en réseau, Ken Kutaragi a appelé l’appareil la Cellule. Conformément à l’intention initiale de Nobuyuki-san, le projet a été baptisé Cell Broadband Engine (CBE). Cela reste le nom officiel du processeur Cell.
Toshiba a exprimé son intérêt pour l’utilisation du Cell dans ses appareils électroniques grand public, et en 2001, Sony, Toshiba et IBM ont annoncé la formation de l’Alliance STI. Leur intention déclarée était de rechercher, développer et fabriquer une architecture de processeur révolutionnaire. Ils ont formé le STI Design Center à Austin, au Texas, pour concrétiser les exigences du CBE.
En tant qu’architecte en chef de la cellule, Jim Kahle a vu que les exigences du CBE ne pouvaient pas être satisfaites avec un processeur traditionnel à un seul cœur – la demande en puissance serait trop importante. Il a donc opté pour une conception plus économe en énergie, intégrant plusieurs unités de traitement dans une seule puce. L’architecture finale était composée de neuf cœurs : un élément de traitement central et huit éléments dédiés au calcul à grande vitesse.
Au moment où nous écrivons ces lignes, le STI Design Center compte plus de 400 ingénieurs. Le Dr H. Peter Hofstee, l’un des concepteurs fondateurs de la cellule, occupe les postes de scientifique en chef et d’architecte en chef de la SPE. Dans une présentation récente, il a énuméré les principaux objectifs qui ont motivé la conception du Cell :
- Performances exceptionnelles sur les applications de jeu et multimédia
- Réactivité en temps réel pour l’utilisateur et le réseau
- Applicabilité à un large éventail de plateformes
En 2004, l’usine de fabrication de semi-conducteurs d’IBM à East Fishkill a produit le premier prototype du Cell. Les ingénieurs de la STI ont installé Linux et ont testé le processeur à des vitesses dépassant la plage communément déclarée de 3 à 4GHz. Le prototype a réussi. Au cours de l’année suivante, Sony et IBM ont travaillé fébrilement à l’intégration du dispositif dans la console de nouvelle génération de Sony, et les joueurs dans l’expectative ont eu un premier aperçu de la PlayStation 3 lors de l’Electronic Entertainment Expo (E3) de 2005.
Novembre 2006 a marqué la sortie commerciale complète de la PS3, et les récits de longues files d’attente et de consommateurs à peine sains d’esprit amuseront le personnel de vente au détail pendant des années. En plus de son puissant cerveau processeur Cell, la nouvelle console offrait une résolution allant jusqu’à 1080p et un lecteur Blu-ray pour la vidéo haute définition.
Cette même année, IBM a publié son premier kit de développement logiciel (SDK) CBE pour permettre aux développeurs de créer des applications pour le Cell. Le SDK fournit des compilateurs pour les deux types d’éléments de traitement, un simulateur/débogueur combiné, de nombreuses bibliothèques de code et un environnement de développement basé sur Eclipse. Une grande partie de ce livre concerne le SDK et la façon dont vous pouvez l’utiliser pour créer des applications.
A la mi-2008, le premier superordinateur basé sur Cell, appelé IBM Roadrunner, a été testé au Laboratoire national de Los Alamos. Contenant 12 960 processeurs Cell et 12 960 Opterons, le Roadrunner a atteint une vitesse de traitement de 1,026 pétaflops et est devenu le plus rapide des superordinateurs de la liste TOP500. Sa vitesse fait plus que doubler celle du superordinateur arrivé en deuxième position, BlueGene/L, avec 0,478 pétaflops.
Potentiel du processeur Cell pour le calcul scientifique
En 2005, le Lawrence Berkeley National Laboratory a étudié les performances de calcul du Cell et a consigné ses conclusions dans le rapport The Potential of the Cell Processor for Scientific Computing. Ils ont simulé un certain nombre d’algorithmes différents et ont comparé la vitesse de traitement du Cell à celle de processeurs similaires : l’AMD Opteron, l’Itanium2 d’Intel et le X1E de Cray. Le tableau 1.2 présente leurs résultats.
Tableau 1.2. Résultats de l’étude du Lawrence Berkeley National Laboratory (toutes les valeurs en Gflops/s)
Algorithme |
Cellule. Processeur |
Cray X1E |
AMD Opteron |
Intel Itanium2 |
Multiplication matricielle dense (simple précision) |
||||
Multiplication matricielle dense (double précision) Multiplication de matrice (double précision) |
||||
Matrice symétrique peu dense multiplication vectorielle (simple précision)1 |
– |
|||
Symétrique Multiplication de vecteurs matriciels épars (double précision)1 |
||||
Nonsymétrique Multiplication de vecteurs matriciels épars (simple précision)1 |
– |
|||
.
Multiplication vectorielle de matrices éparses non symétriques (double précision)1 |
||||
2-.D transformée de Fourier rapide (simple précision)2 |
||||
2-D transformée de Fourier rapide (double précision)2 |
Il y a deux points à garder à l’esprit. Premièrement, les résultats font référence à la vitesse de calcul en milliards de flops (opérations à virgule flottante par seconde), et non au temps nécessaire pour exécuter l’algorithme. Deuxièmement, comme les multiplicateurs du Cell de première génération sont en simple précision, le Cell de première génération est beaucoup plus performant avec des valeurs en simple précision qu’avec des valeurs en double précision. Mais la deuxième génération fournit une multiplication matérielle des valeurs en double précision.
Pour un ingénieur intéressé par le traitement du signal et les mathématiques computationnelles (comme moi), les résultats sont tout simplement stupéfiants. L’étude justifie les allégations marketing scandaleuses : Le Cell offre réellement des capacités de type superordinateur pour un coût et une puissance (environ 50 à 60 W) proches de ceux d’une unité centrale ordinaire.