L’évolution des architectures: CPU Vs GPU

13 comments

Posted on 15th novembre 2006 by Le_Poilu in Informatique

Chez qui travaillent les meilleurs ingénieurs?

L’arrivée (très) récente de la nouvelle puce de Nvidia m’a amené à me faire une petite réflexion quant au décalage flagrant entre le développement d’architectures pour GPU et pour CPU.

Il est un fait que ces dernières années l’extrême concurrence entre les deux principaux fabricants de chips graphiques (ATI et Nvidia) a provoqué une course à l’armement sans précédent. De l’autre côté, on ne peut nier que AMD et Intel ont aussi une rude bataille en cours. Pourtant en y regardant de plus prêt l’évolution des architectures des GPU est bien plus rapide que celle des CPU.

Alors qu’il faut attendre (en général) moins de deux ans pour voir un GPU entièrement neuf remplacer l’existant, pour qu’un nouvelle architecture CPU arrive ça se chiffre plutôt en … dizaines d’années. Voyons cela en détail.

Les GPU

Comme je le disais en introduction, le tout dernier chip made in Nvidia (Alias le G80) vient de faire son apparition, avec lui une toute nouvelle façon de voir les GPU.
Ainsi la famille G8x rompt totalement avec ses prédécesseurs, la famille des G7x. Aidé pour cela par le support de la nouvelle API de Microsoft: DirectX 10. En effet, une fois n’est pas coutume le géant du logiciel prend le partie de casser la loi de la rétrocompatibilité afin de faire une profonde remise à niveau de son API. Partant de là les concepteurs de GPU n’ont guère d’autres choix que de suivre et donc de repenser l’architecture des GPU. La plus grosse évolution étant l’unification des shaders, mais je n’entrerais pas plus dans les détails techniques, pour cela je vous invite à lire les quelques dossiers concernant DirectX10 et le chip G80 que l’on trouve ici et là:

Du côté d’ATI, même causes mêmes effets, le futur R600 supportant DirectX 10 devrait aussi marquer une sérieuse rupture avec les R5x0 actuels (Nom de code des Radeon X1900 et dérivés).

Continuons le voyage dans le temps: Le G70 n’était qu’une évolution des Geforce 6 (Nom de code NV40), d’ailleurs à ce propos les rumeurs précédents sont arrivé faisaient état d’un nom de code NV47 ou NV48.
La précédente rupture ayant eut lieu entre le NV40 et le NV30, alias Geforce FX. En fait l’habituelle étape de l’évolution précédant un changement d’architecture a été oubliée avec les Geforce FX, ce dernier n’ayant pas tenu ses promesses.
Car là aussi le NV30 était une nouvelle architecture succédant à la gamme NV2x (Geforce 3 et GeForce4). Et si l’on continu nous arrivons aux NV1x, à savoir les Geforce256 (NV10) et GeForce2 (NV15)… Nous arrêterons là le voyage dans le temps, mais je pourrais continuer avec les chip TNT qui ont précédé aux Geforce.

Maintenant voyons un peu les dates d’arrivée de tout ces protagonistes, ainsi que la version de DirectX correspondant:

  • GeForce256 (NV10) : Aout 1999 – DirectX 7 (Apparition du Transform & Lightning)
  • GeForce 2 (NV15) : Avril 2000 – DirectX 7
  • Geforce 3 (NV20) : Fevrier 2001 – DirectX 8.0 (Apparition des Shaders)
  • GeForce 4 (NV24) : Février 2002 – DirectX 8.1
  • GeForce FX (NV30) : Novembre 2002 – DirectX 9
  • GeForce 6 (NV40) : Avril 2004 – DirectX 9.0c (Shaders evolués)
  • GeForce 7 (G70) : Juin 2005
  • GeForce 8 (G80) : Novembre 2006 – DirectX 10

Note: Les dates concernent la présentation officielle des chips et non leur disponibilité réelle, celle-ci pouvant intervenir plusieurs mois après (parfois plus de 4 mois!).

En caractères gras j’ai fait apparaitre les changements d’architectures, en italiques, les évolutions. Un rapide coup d’œil nous confirme des changements « radicaux » tous les 18-24 mois en moyenne. Seul le G80 aura mis un peu plus de temps que ses ainés (2 ans 1/2), cela étant sûrement due à la profonde différence qui existe entre un DirectX 9.0c et un DirectX 10, car on constate aussi que les changements se font principalement en suivant l’évolution de l’API de Microsoft.

Il serait facile, mais surtout inutile, de poursuivre le même raisonnement avec les chips conçus par ATI. En effet, l’évolution des chips se fait peu ou prou en parallèle chez les deux constructeurs, à nouveau on note une évolution principalement dictée par les mises à jour de DirectX.

Les CPU

Passons maintenant à l’évolution des CPU.
Là c’est un peu plus complexe à suivre, ici aussi la concurrence est rude et les évolutions fréquentes. Mais autant chez AMD que chez Intel les (vraiment) nouvelles architectures se font rares…. très rares, comme nous allons le voir. Cependant je vais limiter cette analyse aux processeurs les plus courants qui équipent la majorité des PC (au bas mot 90% du parc informatique), c’est à dire ceux de la famille x86. Les processeurs x86 ne sont pas les seuls, on dénombre les processeurs RISC tels que les IBM PowerPC, ou les Sun UltraSparc, ou encore l’architecture IA-64 ou EPIC des Itanium de Intel, et j’en passe …
Si je me limite c’est tout simplement parce que ce sont les CPU qui concernent le plus de monde mais surtout pour la simple raison que ce sont ceux subissant le plus d’évolutions de part la concurrence acharnée du secteur.

Voyons comment les processeurs Intel ont évolué depuis l’arrivée des Pentium en 1993. Mais plutôt qu’un long discours voyons un petit tableau récapitulatif des architectures Intel basés sur le x86 (IA-32 chez Intel).

IA32_Intel

Comme le montre ce tableau, dans la famille IA-32 de Intel on a quatre sous-familles: P5, P6, Netburst et Mobile. Aujourd’hui nous pourrions ajouter la sous-famille Core et Core 2.

Le Pentium de 1993 utilisait l’architecture P5, succédant au processeur nommé 486.
En 1995 arriva le Pentium Pro, premier enfant de la branche P6, cette branche sera bien plus prolifique que P5. Car les Pentium II et Pentium III ne seront que des évolutions (parfois mineurs) du P6. Deux ans ont séparé P5 et P6, mais comme je viens de le dire, P6 aura une durée de vie bien plus longue (est-ce la faute au manque de concurrence à ce moment là?). Il faudra attendre l’an 2000 pour que se pointe, tel un bug millénaire, le premier Pentium IV. Bien que conservant la marque Pentium, ce dernier n’a absolument rien à voir avec les Pentium à base de P6. Là Intel inaugure une microarchitecture entièrement nouvelle: Netburst. Fait relativement rare dans le monde du CPU pour être souligné.

Netburst avait pour ambition de porter les CPU Intel à des fréquences inavouables, il puisait sa « force » dans la course aux Mégahertz.
Parallèlement aux diverses évolutions du Pentium IV (pas loin d’une demi-douzaine), Intel aura développé un processeur dédié aux ordinateurs portables. Ces derniers ayant des besoins particuliers en matière de consommations et d’émissions de chaleur, le Pentium IV ne pouvait satisfaire à ce cahier des charges.

En 2003 Intel dévoile donc le Pentium M (M comme Mobile), mais cette fois-ci le lien de parenté avec les précédent Pentium à base de P6 est réel. Le Pentium M est une (grosse) évolution de P6. Contrairement au Netburst, l’architecture Pentium M n’est pas réellement nouvelle. A vrai dire, il y a un peu de Netburst dans Pentium M: le Bus système (Alias FSB) utilise le Quad Pumped du Pentium IV, tout comme le prédicateurs de branchement ainsi que les jeux d’instructions SSE2.

Pentium IV et Pentium M vont évoluer conjointement durant quelques années, jusqu’au jour fatidique ou Intel devra jeter l’éponge et se rendre à l’évidence: Netburst ne pourra pas tenir ses promesses. La montée en fréquence (fer de lance de cette microarchitecture) se voit stoppée nette par des problèmes de consommation et de chauffe excessive des processeurs. Alors qu’une ultime évolution de Pentium IV (nom de code Tejas) aurait du permettre d’atteindre les 7 voir 10Ghz, Intel arrêta le tire avant, en constatant qu’au-delà de 3Ghz les techniques actuelles sont à la peine.
Tandis que Netburst s’essoufflait, Pentium M se trouvait une descendance avec l’arrivée en janvier 2006 des Core solo et Core Duo
Mais comme son nom ne le laisse pas penser, Core n’a rien de bien nouveau. Il s’agit d’une évolution de Pentium M (qui, je rappel, était une évolution de P6 avec quelques ajouts provenant de Netburst). Mis à part les quelques optimisations de rigueur, Core apporte les instructions SSE3 mais surtout le (vrai) Bi-cœur dans les CPU Intel.
L’été 2005 vu la naissance des Pentium D, à savoir, des Pentium IV double cœur. Mais ces derniers semblaient avoir été faits à la hâte, en collant littéralement deux CPU sur un socket sans chercher à optimiser quoique ce soit. Core proposera enfin une solution digne de ce nom.

Devant l’essoufflement de Netburst, et constatant le succès (technique et commercial) des Pentium M et Core, le fondeur va alors faire une sorte de mea culpa en effectuant un virage à 90°. Exit Netburst, place à la microarchitecture Core, le successeur du Pentium IV ne sera plus un Pentium. Eté 2006 voit l’avènement des premiers Core 2 Duo (et tout récemment, les Core 2 Quad comportant 4 cœurs).
Cela peut paraitre étrange, mais l’annonce officielle de la naissance de la microarchitecture Core de Intel se fera pour le Core 2, en effet Core Solo et Core Duo étaient des rejetons de l’architecture Mobile, héritiés de Pentium M.
L’explication est plus marketing que technique, Core solo et Core Duo étaient des CPU entièrement destinés au marché des ordinateurs portables, ils n’avaient pas d’équivalent « desktop », or sur le marché du portable c’est bel et bien le Pentium M au travers du label Centrino qui dispose d’une belle aura. Il n’aura donc pas été nécessaire d’en faire plus que cela lors de la présentation des Core Solo et Core duo: Ici c’est Centrino qui est important. Core 2 quand à lui est justement là pour marquer un tournant sur le marché du CPU Desktop: il doit remplacer la marque Pentium (c’est à dire 13 ans de présence!!) et faire oublier les derniers Pentium IV qui n’étaient plus à la hauteur. Il fallait donc pour Intel marquer le coup, ainsi l’arrivé sur le marché du Core 2 Duo se fera au-travers de la présentation de la microarchitecture Core qui à terme devra être utilisée pour toutes les solutions Intel: Desktop, Serveur puis Mobile, c’est l’unification des architectures.
Malgré tout il faut se dire que Core 2 reste une amélioration de Core (avec optimisations et ajouts) et n’a rien de fondamentalement nouveau. Pour le marché des PC de bureau son architecture peut effectivement être considérée comme nouvelle, le dernier représentant connu de cette lignée étant le PentiumIII, entre ces deux il y a assez de différences pour cela. Mais personnellement je considère qu’il n’est pas juste de séparer les CPU desktop des CPU « Laptop » (pour ordinateur portable), après tout ils sont conçus de la même façon, répondent aux mêmes besoins de compatibilité x86 et on peut utiliser l’un sur la platerforme de l’autre sans soucis (en-dehors des histoire de socket).

Récapitulons un peu tout ça:

  • P5 : Pentium – 1993
  • P6 : PentiumPro – PentiumII/III – 1995
  • Netburst: PentiumIV – PentiumD – 2000
  • PentiumM – 2003 (Evolution de P6 + quelques ajouts provenant de Netburst)
  • Core – Janvier 2006 (Evolution de PentiumM)
  • Core 2 – Juillet 2006 (Evolution de Core)

A nouveau, en gras les « révolutions » et en italique les « évolutions ».
Bien sûr si on regarde avec un peu de recul on se rend compte que entre un Core 2 et un Pentium Pro il y a plus que quelques évolutions, il ne faut pas se leurrer, si le Pentium Pro était aussi efficace ça se saurait. Mais il ne faut pas oublier que Core 2 n’est autre que le fruit de « petites » évolutions successives. Contrairement à Netburst qui était entièrement nouvelle (mais qui répondait toujours aux jeux d’instructions x86, bien sûr), Core et Core2 n’apportent rien de foncièrement nouveau, juste un mix de l’ancien franchement optimisé.
Pour en revenir à l’évolution précédente: En 13 ans nous avons trois changement majeurs d’architecture, les deux premiers à 2 ans d’intervalle, puis le troisième 5 ans plus tard, pour enfin n’avoir que des évolutions et améliorations de l’existant.
Nous sommes là bien loin des 18-24mois que l’on a pu constater au niveau des GPU. Sur la période allant de 1999 à nos jours, les GPU (Nvidia) ont connus cinq architectures! Alors que dans le même laps de temps les CPU Intel n’ont finalement connu que deux grandes familles de CPU x86 différents: Netburst en 2000 et Pentium M (et les dérivés: Core et Core2) à partir de 2003.

Jetons un rapide coup d’œil aux CPU AMD.

Pour concurrencer les premiers Pentium, AMD met sur le marché en 1995 le K5, il connaitra deux petites évolutions en 1996. Rapidement le K6 va arriver, en 1997 pour être exact. Ce dernier est dit de « classe Pentium », il a d’ailleurs été co-conçu par le concepteur des Pentium. K6 est totalement différent de K5 en cela qu’il résulte du rachat de NexGen, ceux-ci ayant développé un processeur nommé Nx686 qui sera finalement vendu par AMD sous le nom que nous connaissons.
K6 va connaitre une première évolution en 1998, avec l’apparition du K6-2. Le plus gros changement entre les deux étant l’apport des instructions SIMD 3DNow! devant concurrencer les SSE de Intel.
Début 1999, ultime évolution du K6 : Le K6-III, qui n’est ni plus ni moins qu’un K6-2 avec un cache L3.

C’est en juin 1999 que la prochaine grosse évolution architecturale aura lieu chez AMD. Mais point de table rase. K7 s’appui bel et bien sur K6 pour donner naissance aux premiers Athlon. Cependant vu l’importance des changements on peut considérer qu’il s’agit là d’une nouvelle architecture. En effet AMD adopte (entre autre) le Bus EV6 développé par DEC pour l’Alpha, il s’agit d’un bus type DDR (Double Data Rate), une première à l’époque.
Pour la petite histoire l’Athlon sera le premier processeur grand public à atteindre officiellement la barre mythique du 1000Mhz (le fameux Gigahertz) … mais à quel prix me diront ceux qui s’en souviennent (l’équivalent de 1500€ le CPU!).
Viendra en 2001 l’AthlonXP (entre temps nous auront eu le fameux Athlon type Thunderbird alias T-bird), première évolution majeure de l’architecture K7.

K7 donnera naissance à une multitude d’évolutions mineures jusqu’en septembre 2003, date de la présentation de l’Athlon64 basé sur l’architecture K8.
Comme K7 en son temps, K8 est une profonde évolution de K7 et non une remise à zéro des plans. Ainsi K8 apporte dans son cartable des petites choses comme: Intégration du contrôleur mémoire au CPU, intégration du contrôleur Entrées/Sorties Hypertransport, Extension des instructions x86 au 64bits, avec doublement de la taille des registre pour le mode 64bits. Les instructions x86-64 de MAD seront finalement entièrement reprises par Intel dans l’EMT64 des Pentium4 et Core 2.
Depuis l’arrivée de K8, la seule chose que l’on aura véritablement à se mettre sous la dent seront les AthlonX2, premiers processeurs double-cœur, en avril 2005.
Nous attendons dorénavant K8L qui devrait montrer ses transistors en 2007 avec quelques nouvelles cochonneries dans ses poches, mais rien se rapportant à une nouvelle architecture au final.

Donc voyons le traditionnel récapitulatif:

  • K5 – 1995
  • K6 – 1997
  • K6-2 – 1998
  • K6-III – 1999
  • Athlon (K7) – 1999
  • AthlonXP (K7) – 2001
  • Athlon64 (K8) – 2003
  • Athlon64 X2 (K8) – 2005
  • K8L – 2007 (?)

Le parallèle avec la chronologie Intel est vite fait: peu de profonds bouleversements ces dix dernières années. A nouveau sur la période courant de 1999 à nos jours nous n’avons que 2 nouvelles architectures. Mais contrairement à Intel avec son Netburst tout beau tout neuf (tout loupé…) AMD n’aura fait table rase que pour le K6 en 1997, depuis ce ne sont que de profonds remaniement qui auront donné vie aux K7 et K8.

Bon ben alors, ils sont pas doués les ingénieurs d’AMD et Intel ?

Il serait facile de se dire qu’Intel et surtout AMD ne font pas grand chose pour faire « évoluer » les choses plus vite, facile mais certainement pas correct vis-à-vis du marché qu’ils occupent.
Mais pourquoi AMD et Intel ne sortent-ils pas de nouvelles architectures tous les 18-24 mois comme Nvidia ? Ce n’est pas un problème de manque de concurrence, celle-ci étant acharnée dans les deux domaines (CPU et GPU).

En fait les fabricants de CPU pour les « PC compatibles » sont victimes de leur succès, et de celui de Microsoft Windows. Ils sont maintenant totalement liés au jeu d’instruction x86 apparu il y a 26 ans! Largement démocratisée avec les Pentium et autre K5/K6, l’architecture basée sur les instructions x86 ne peut plus être remise en question sur la simple volonté d’une équipe d’ingénieurs.
Comme je viens de le dire, ces CPU sont intimement liés au succès de Microsoft Windows. Celui-ci s’appui entièrement sur les instructions x86 et n’est absolument pas conçu pour tourner sur autre chose. Il existe bien des versions 64bits (en particulier de XP et du nouveau Vista), mais un XP 64bits est loin d’être aussi répandu que son homologue 32bits, et les processeurs 64bits non x86-64 (tels que l’Athlon64) ne sont pas donnés à tout le monde (par exemple l’Itanium2 de Intel, basé sur l’architecture EPIC qui succède au RISC).
Bref, le fait est que 90% des ordinateurs de bureau dans le monde utilisent un processeur x86 avec Windows pour le faire tourner. Même la simple évolution vers le x86-64 n’est pas gagnée, car au-delà du système d’exploitation c’est tout l’environnement logiciel qui doit évoluer, ainsi que les pilotes de matériel, etc.
Pour s’en rendre compte il suffit d’utiliser le contre-exemple du couple x86-Windows: Les Macintosh. MacOS 9 et MacOS X ont longtemps fait les beaux jours des processeurs IBM PowerPC basés sur une architecture type RISC. Or tout récemment c’est un vrai revirement que l’univers Mac vient de connaitre: MacOS X tournant sur des CPU Intel x86, les Core et Core 2. Ce revirement a été possible essentiellement parce que MacOS représente quelques 5% (grosso-modo) du marché des ordinateurs de bureau, avec le panel logiciel que cela suppose, c’est à dire bien plus réduit que celui de Windows).
Un tel virage serait extrêmement difficile à opérer sur le marché des « PC compatibles ».

Partant de là les concepteurs de CPU destinés aux PC ne peuvent pas innover comme ils pourraient le faire s’ils avaient carte blanche. Ils se doivent de respecter les bases du x86, même si tout cela a bien évolué en 26 ans.
Reprendre à zéro une architecture est au final très risqué, car de telles puces sont d’une complexité incroyable, il faut plusieurs années pour voir apparaitre les évolutions majeures.

Et là on me dire: « Oui mais un GPU aussi c’est très complexe! ». Il est vrai, mais pas tout à fait.
Effectivement si l’on s’en tient au nombre de transistors présent dans une puce, les GPU tiennent la dragée haute au CPU, prenons quelques exemples :

  • Core 2 Duo E6600 : 291 Millions
  • Code 2 Duo E6300 : 167 Millions
  • Pentium D 900 : 367 Millions
  • Athlon FX-62 : 227 Millions
  • Geforce 8800 GTX : 681 Millions
  • Geforce 7900 GS : 278 Millions
  • Radeon X1900 GT : 380 Millions

(En bleu les processeurs, en rouge les chips graphique)

Avant de comparer ces nombres de but en blanc il faut garder à l’esprit que pour les CPU un (très) grand nombre de transistors sont dédiés aux différents caches (L1, L2, plus rarement L3). Ceci explique la grande différence entre un Code 2 Duo E6600 et un E6300, le dernier ayant tout simplement deux fois moins de cache L2 partagé. De même pour le Pentium D qui a beaucoup plus de transistors que le plus récent Core 2 Duo: Le Pentium D n’avait pas de cache L2 partagé, mais des caches pour chaque cœur de processeur.
La différence entre l’E6600 et l’E6300 nous donne un ordre d’idée: la différence de 124 Millions correspond à 2 Mo de cache L2. Donc si nous retirons autant de transistors au E6300 (doté de 2Mo de Cache L2) on obtient un CPU de 43 Millions de transistors « seulement » (incluant le petit cache L1).
Les GPU n’ont pas de mémoire cache au sein de leur chip, tous les transistors sont des « éléments actifs », les nombres les concernant sont d’autant plus impressionnant.


Même en excluant le monstre qu’est le tout récent Geforce 8 (et ses presque 700 Millions de transistors!!), la différence entre CPU et GPU est assez flagrante, les GPU utilisent beaucoup (vraiment beaucoup) plus de transistors que les CPU : est-ce à dire qu’ils sont plus complexe à concevoir? Si oui comment ATI et Nvidia arrivent-ils à maintenir une telle cadence de renouvellement ?

Il y a plusieurs raisons à l’impressionnante obésité des GPU.
Déjà on peut tenir compte du fait que la plupart des GPU actuels (mêmes bas de gamme) travaillent en 128 voir même 256 bits. D’ailleurs le nom de la première Geforce n’est pas étranger à cela: GeForce256: le 256 indiquant la largeur du bus mémoire. Aujourd’hui le Geforce 8 exploite un inédit bus 384 bits … A comparer aux 32bits ou plus récemment 64 bits de nos CPU, cela explique déjà en partie le besoin en matière de transistors. Car travailler sur des bus et des données toujours plus larges signifie autant de transistors à ajouter à chaque « étage » du traitement du signal électrique.
Une autre raison à la taille des GPU vient du fait qu’ils sont conçus pour traiter un grand nombre de flux en parallèles. Ainsi leur conception s’articule autour de la multiplication de certaines unités de traitement, en gros de vulgaires copier-coller. Quand un GPU comme Radeon X1900 GT annonce disposer de 36 pixels pipelines, et de 8 Vertex pipelines, cela signifie qu’on a 36 fois et 8 fois les deux mêmes structures qui se répètent. Admettons, de manière purement arbitraire, qu’un pipeline de ce type utilise un peu plus 2 Millions de transistors, on aurait dejà prêt de 100 Millions de transistors de « copier-coller ». Ajoutons les circuits permettant d’interfacer tout cela, plus le reste des circuits nécessaires à la fabrication d’une image tels que les ROP (Raster OPeration : unités permettant la création proprement dite de l’image finale).
En gros un GPU est essentiellement composé de structures répétitives reliées entre elles, et destinées à traiter un nombre toujours croissant de données toujours plus « larges » en parallèle.

A côté de cela les CPU sont bien plus complexes malgré leur plus petite taille. Bien sûr les CPU ont aussi des pipelines, mais ils sont bien moins nombreux et moins profonds (la palme allant aux Pentium IV Prescott et Cedar Mill avec des pipelines de 31 étages). Pour fonctionner les CPU ont besoin d’unités de contrôle, d’unités d’instructions, d’unités de gestion des entrées-sorties, tout ça pour alimenter et gérer les différentes ALU (Arithmetical and Logical Unit) et FPU (Floating Point Unit), mais aussi de toute une série de registres.
Les optimisations par rapport au schéma de base vont inclure (par exemple) des prédicateurs de branchements: ce sont des circuits qui vont prédire les données qu’il faut charger dans les pipelines avant que les ALU/FPU ne le réclament, afin de gagner du temps sur les latences d’accès mémoire. Sur un Athlon64, le contrôleur mémoire fait désormais parti intégrante du processeur, etc.

Alors que concevoir un GPU consiste caricaturalement à multiplier des structures optimisées pour des traitements dédiés et plus ou moins figés par les API (DirectX et OpenGL), la conception d’un CPU elle, tient dans l’art de trouver le meilleur moyen d’accélérer le traitement d’instructions x86. Or un CPU est susceptible d’effectuer des traitements en tout genre, il est généraliste, alors que le GPU est un spécialiste. De ce fait on sait exactement quelles seront les types de données à gérer, leur forme et les traitements à leur appliquer, alors que dans le cas du CPU il faut être capable de traiter dans les meilleures conditions toutes les données possibles.
Pour cela les fondeurs ajoutent des jeux d’instructions (MMX, SSE, 3DNow et j’en passe) capables quand elles sont exploitées par les logiciels d’accélérer le traitement de tel ou tel type de données.

Ainsi concevoir un tout nouveau CPU en partant d’une feuille blanche est un exercice très couteux et extrêmement risqué, surtout, et paradoxalement, dans le contexte de forte concurrence actuel. Car une erreur de conception se paye au prix fort. Intel en a fait récemment les frais et a eu de la chance, Netburst n’a pas tenue ses promesses alors que les prévisions de départ lui donnaient une durée de vie bien plus longue. Si le marché de l’ordinateur portable grandissant n’avait pas poussé Intel à développer le Pentium M, puis le Core, alors ils auraient bien été embêtés avec le Netburst incapable de tenir tête à la concurrence.

Ceci explique Cela

Comme nous avons vu dans cet article l’évolution plus rapide des GPU par rapport aux CPU a de multiples raisons. Que ce soit la fonction du chip (spécialiste ou généraliste), la conception (répétition de structures identiques), la nécessité de suivre les directives d’une API (Support d’une nouvelle version de DirectX ou OpenGL), ou tout simplement l’héritage du passé (architecture x86 difficile à outrepasser), tout ces éléments font qu’il est parfaitement « normal » que les cycles de renouvellement des architectures de GPU soient bien plus court que ceux des CPU.
Et bien que NVidia et ATI ont annoncé retourner vers des durées de cycles plus long (on peut le voir avec le Geforce8 qui arrive deux ans et demi après son prédécesseur), on n’est pas prêt de voir un équilibre entre GPU et CPU à ce niveau là…

… sauf peut-être le jour pas si lointain où les CPU intégreront les GPU.

13 Comments
  1. chicour-59 says:

    bon article :) :jap:

    15th novembre 2006 at 7 h 20 min

  2. nightbringer says:

    Excellent article :-)
    Petite précision: il me semble que les core premiers du nom n’étaient en fait qu’une évolution des pentium M (dothan), comme les pentium D des pentium 4, en mieux réussi.
    C’est les core 2 duo qui ont étrenné l’architecture core, les "core" solo et duos premiers du nom n’étant appelés ainsi que par marketing ;-)

    15th novembre 2006 at 18 h 26 min

  3. Le_Poilu says:

    Petite précision: il me semble que les core premiers du nom n’étaient en fait qu’une évolution des pentium M (dothan), comme les pentium D des pentium 4, en mieux réussi. C’est les core 2 duo qui ont étrenné l’architecture core, les « core » solo et duos premiers du nom n’étant appelés ainsi que par marketing ;-) Si je devais faire des interrogations écrites sur mes articles tu n’aurais pas la meilleure note pour le coup. Relis bien l’article et tu verra que ta « Petite précision » n’a pas vraiment lieu d’être ;)

    15th novembre 2006 at 19 h 09 min

  4. nightbringer says:

    Je te cite:
    "Tandis que Netburst s’essoufflait, Pentium M se trouvait une descendance avec l’arrivée en janvier 2006 des Core solo et Core Duo, étrennant par la même occasion la microarchitecture Core."
    Alors que ces 2 types de processeurs (core duo et solo premiers du nom) reposaient en fait sur l’architecture "mobile" et n’avaient rien a voir avec la "core"
    La vraie microarchitecture "core" est une nouvelle architecture, notamment avec un cache optimisé etc., choses qui ne sont pas présentes dans les core "1", ce qui explique aussi les différences de dénomination (T2*** pour les core et T5*** et 7*** pour les core 2 duo)

    15th novembre 2006 at 20 h 34 min

  5. Le_Poilu says:

    Voici les évolutions que presente un Core 2 par rapport à un Core: Wide Dynamic Execution : pipelines legerement plus long, quelques unites de calculs en parallele en plus. Ajout de la technique de macro-fusion en plus de celle de micro-fusion (des operations) apparu sur Pentium M Advanced Digital Media Boost : optimisation de l’exécution des instructions SIMD, nouvelle unite SSE, quelques instructions SSE4. Smart Memory Access : amelioration des techniques de prefetching Advanced Smart Cache : Gestion partagée du cache L2 par les 2 cores. Tout cela n’est qu’optimisation de ce que proposait déjà le Core. Donc je ne vois pas ce qui permet de dire que Core2 est une vrai nouvelle architecture alors que Core n’est qu’une évolution de Pentium M. Core 2 découle de Core qui découle de Pentium M, c’est comme ça. Au final on a effectivement un Core 2 qui ne ressemble au P6 de base que de tres loin, et qui est fortement amélioré par rapport au Pentium M, mais il reste le fruit de plusieurs évolutions successives dont l’étape principale fut Pentium M. D’ailleur on le voit dans la pratique: le Merom (Core 2 Duo pour mobile) n’apporte pas un gain fantastique par rapport au Yonah auquel il succède (le gain provenant essentiellement des ameliorations portées sur la gestion memoire)

    15th novembre 2006 at 22 h 32 min

  6. matth says:

    mais actuellement, est-ce que les processeurs n’évoluent pas plus vite que els gpu?

    15th novembre 2006 at 9 h 48 min

  7. nightbringer says:

    Je ne parle pas des améliorations a proprement perler, mais tu dis que les core duo premiers du nom étrennaient l’architeecture core, ce qui est faux, les premiers vrais core étant les core 2 duo
    les innovations en terme d’architecture sont tres importantes, plus que ce que tu as présenté.
    Certes les évolutions sont minimes en terme de perfs, mais le core duo et le pentium M appartiennent a la meme architecture, la "mobile", comme tous les p4 a l’architecture "netburst", les core 2 duo, eux, étrennent l’architecture core, et non pas les core "1" duo ;-)
    cf. cette page:
    http://www.anandtech.com/cpuchip...
    tu as pas mal de changements, comme par exemple le passage de 1 à 3 unités de traitement SSE, ce qui n’est pas qu’une simple optimisation ;)

    15th novembre 2006 at 18 h 43 min

  8. Le_Poilu says:

    tu as pas mal de changements, comme par exemple le passage de 1 à 3 unités de traitement SSE, ce qui n’est pas qu’une simple optimisation ;) Ajouter des unites de traitement pour moi ça n’est pas significatif de « nouvelle architecture », ça reste une optimisation pure et simple: on ne fait que « copier-coller » plusieurs fois ce qui existe deja (pour schématiser). La vrai innovation aurait ete de refondre ses memes unites pour les rendre plus efficaces (par exemple) Sinon il suffirait qu’un constructeur ajoute des unites par-ci par là pour dire à chaque fois qu’ils ont une nouvelle architecture sous la main… ce serait un brin reducteur Ceci dit je vois où tu veux en venir, et effectivement Intel a officiellement étrenné la microarchitecture Core avec le Core 2 Duo. Bien qu’il ne s’agisse là que d’une question d’ordre purement ethymologique et non déterminée par des caractères techniques (à mon sens) … Je corrigerai donc l’article dans ce sens ;) Edit: Voilà, j’ai remodelé le passage sur les Core et Core 2

    15th novembre 2006 at 21 h 00 min

  9. Le_Poilu says:

    J’ai failli oublié de repondre à Matth Il ne faut pas se fier à la multiplications des modèles de CPU. Ils sont loin d’evoluer aussi vite que les GPU. Je rappel qu’on change d’architecture GPU tous les 18-24mois, c’est tres loin d’etre le cas des CPU, meme (et surtout) aujourd’hui. En fait aujourd’hui il n’y a rien qui evolu plus vite que les GPU en matiere d’electronique grand publique, et plus particulierement d’informatique…

    15th novembre 2006 at 22 h 29 min

  10. Lord W says:

    Très bon article, bravo.

    D’après ce que j’ai pu lire, c’est vraiment Microsoft, faute de concurrence face à son DirectX, qui mène la danse dans le domaine des GPU, nvidia et ATi ne faisant qu’implémenter sur une carte physique les fonctionalités de l’API de MS… Et finalement, en y regardant bien, malgré ce monopole de MS en terme d’API graphique, on a quand même de grosses évolutions, ce qui n’est pas un mal. C’est à mettre au crédit de Microsoft.
    Il y a-t-il une quelconque concurrence possible ou existante pour DirectX ?

    Et en ce qui concerne les PPU, quelles sont les évolutions possibles, et en quoi un GPU peut-il remplacer un processeur PPU dédié, comme l’ont proposé nvidia et ATi pour concurrencer le PhysX d’Ageia (PPU) ?

    15th novembre 2006 at 17 h 18 min

  11. Le_Poilu says:

    Il y a-t-il une quelconque concurrence possible ou existante pour DirectX ? Oui: OpenGL qui avec sa version 2.0 fait au moins aussi bien. La preuve les moteurs OpenGL d’ID Software ne font pas pâle figure face aux autres Et en ce qui concerne les PPU, quelles sont les évolutions possibles, et en quoi un GPU peut-il remplacer un processeur PPU dédié, comme l’ont proposé nvidia et ATi pour concurrencer le PhysX d’Ageia (PPU) ? Cf les differents articles que j’ai redigié à ce propos ;)

    15th novembre 2006 at 17 h 43 min

  12. Lord W says:

    > Oui: OpenGL qui avec sa version 2.0 fait au moins aussi bien. La preuve les moteurs OpenGL d’ID Software ne font pas pâle figure face aux autres

    OpenGL, bien entendu. Mais j’ai l’impression qu’aujourd’hui, cet API ne fait que suivre les évolutions dictées par MS et son DirectX, et les frabriquant de cartes 3D avec leurs extensions propriétaires… Certes, il est utilisés par certains développeurs – qui se font de plus en plus rares – comme id Software, mais a-t-il encore une quelconque influence dans l’évolution des cartes 3D, comme DirectX aujourd’hui ?

    > Et en ce qui concerne les PPU, quelles sont les évolutions possibles, et en quoi un GPU peut-il remplacer un processeur PPU dédié, comme l’ont proposé nvidia et ATi pour concurrencer le PhysX d’Ageia (PPU) ?
    > Cf les differents articles que j’ai redigié à ce propos

    Je les avais lu. :)
    Mais je me demandais, avec toutes ces brillantes explications sur les GPU et les CPU, quelles étaient les marges de manoeuvre possible pour Ageia et son PPU, quelles sont les évolutions possibles d’un tel processeur, comparé à un CPU ou un GPU…
    Je dirais assez lente pour l’instant, vu qu’il faut encore que les développeurs et consort l’adoptent.
    Mais si Ageia fait évoluer son PPU, où va-t-on aller ? Comme un GPU, avec plus d’instructions disponibles, plus de routines accélérées en hardware, et un processeur plus rapide et multi-core ? Dans toutes ces possibilités, qu’est-ce qui est, à ton avis, le plus envisageable ?

    Evidemment, pour le reste, ton article "La prise en charge de la physique des jeux-videos par les PPU, GPU et CPU" répond très bien à ma question. :)

    15th novembre 2006 at 18 h 32 min

  13. Le_Poilu says:

    Concernant l’OpenGL il n’est pas specialement suiveur de ce que DX propose, d’ailleur OpenGL2.0 existe depuis un moment et prends en charge des « trucs » qui n’arrivent que avec Dx10. Son evolution est dictée par le consorsium qui le gère et comme son nom l’indique, c’est Open, donc chacun peu y aller de ses propres extensions. Mais je dirais que le plus gros de l’evolution de l’OpenGL ne se fait pas par et pour les jeux car en-dehors d’ID soft les jeux OpenGL sont en voie de disparition (malheureusement ….) . Non, c’est plutot du côté du marché de la CAO/DAO et de l’imagerie 3D professionnelle que l’OpenGL prend toute son ampleur et tout son sens. Des logiciels comme autoCAD, Solidworks, et autres modeleurs 3D ne sont rie nsans un bon support de l’OpenGL. (Pour preuve Solidworks est presque inutiisable sous Vista avec une carte ATI par manque de support OpenGL pour l’instant). A ce niveau là DX n’a quasiement aucune emprise … Tout au plus certains logiciels comme 3DS permettent de l’utiliser pour l’espace de travail, à coté d’OpenGL. Pour le PPU. Bien malin qui pourra en deviner les évolutions. Le marché n’existe meme pas encore, la demande est presque inexistante, et l’usage plus théorique que réelle (mais très prometteur). Mais il est clair que si cela devait evoluer ce serait vers une plus grande complexité d’instruction prises en charges. Le PPU n’ira surement pas vers la généralisation, mais vers la spécialisation, pour peut-etre finir comme les GPU avec quelque chose d’entierement programmable dans le type de traitement qui le défini. Peut-etre que les frequences vont monter, les unites de calculs se multiplier etc. Maintenant il faut savoir qu’on ne sait absolument RIEN sur l’architecture interne du PPU d’AGEIA. Donc partant de là on ne sait absolument pas comment il peut evoluer vers plus d’efficacité. Et à mon avis tant que la solution n’aura pas prouvée sa viabilité et que le concept ne sera pas massivement répandu on sera bien en mal d’en savoir plus et donc d’en dire plus.

    15th novembre 2006 at 19 h 21 min

Laisser un commentaire

Vous devez être connecté pour rédiger un commentaire.