AMD a-t-il triché sur le nombre de cœurs de leur GPU ?

30

Voici le nouveau Quicky, celui-ci parlant d’une tricherie Marketing ayant sévit il y a plusieurs années dans le secteur des cartes graphiques.  Méconnue du public, la notion d’architecture vectorielle était très floue, sans compter que la plupart des utilisateurs lambda ne se sont pas intéressés sur ce point. Une ignorance qu’AMD a exploité à merveille.

Allez c’est parti !

Difficulté : Expert

Comme vous le savez sans doute, les cartes graphiques AMD/ATI antérieures aux HD 7000 n’utilisaient pas une architecture scalaire, mais vectorielle : VLIW5 pour les HD 2000, 3000, 4000 et 5000, et VLIW 4 pour les HD 6000. Et la marque rouge nous avait fait éloge de ses puces graphiques d’anciennes générations possédant beaucoup d’unités de calculs face aux GeForce de Nvidia.

Publicité

Posséder beaucoup d’unités de calcul permet aux cartes de calculer rapidement. Pour plus de détails, consultez ce Quicky, qui parle des unités de calcul. De ce fait, annoncer un grand nombre de Stream Processor permettait de mettre en avant sur le papier des puissances de calcul démentielles pour l’époque, faisant botter Nvidia en touche.

HD 2900 XT PCB

Cela a commencé par la HD2900 XT (photo de la carte ci-dessus) et ses 320 Stream Processors, faisant passer la 8800 GTX pour une carte d’amateur avec ses 128 SP. Ceux qui connaissent ces cartes savent qu’en pratique, la hiérarchie est inversée. Cela a continué avec la HD 4870 , vendue alors 250 €, qui faisait passer les GTX 260 et 280 (et les 192 et 240 SP) pour de très mauvaises affaires. Bon cette fois-ci c’était Nvidia qui avait reçu une correction. Mais la HD 5870 a explosé les compteur avec ses 1600 SP. Que pouvait faire sur le papier une GTX 480 et ses 480 SP ?

Bref, vous l’aurez compris, il y a un problème. Une architecture différente, expliquant des techs specs très éloignées ? De telles spécifications étaient-elles réelles ?

Passons aux explications :

Nvidia ayant sorti en premier la première famille de GPU unifié, Nvidia a bien précisé que la G80 dispose de 128 processeurs de flux scalaires. AMD a décidé de faire de même afin d’attirer les foules en disant que sa HD 2900 XT abritait 320 processeurs de flux scalaires. Oui, AMD a bien dit « scalaire », mais c’est du pur marketing, car la puce R600 de la 2900 XT n’a rien de scalaire.

Les puces Radeon sont en effet vectorielles, non scalaires. (Pour savoir comment ça fonctionne, référez vous au dossier complet sur l’architecture VLIW). Pour résumer, c’est une puce qui peut calculer plusieurs éléments de manière simultanée. En réalité, la HD 2900 XT ne dispose pas de 320 processeurs de flux, mais 64 Processeurs de flux en vec5. Sauf que ATI avait alors jugé plus avantageux sur le plan marketing de parler de 320 unités. Pour le côté visuel, cliquez sur l’image pour l’agrandir. Si vous comptez le nombre de carrés rouges dans “Stream Processing Units” vous en compterez bel et bien 64, tous divisés en 5 cartes jaunes.

HD 2900XT GPU

Sauf que 64 unités vec5 n’a jamais et n’aura jamais les performances de 320 unités “vec1” en pratique ! La Radeon HD 2900 ne monopolisant pas toutes les unités pour effectuer des instructions, on ne peut vraiment pas dire que cette puce à 320 unités fonctionnant à plein temps, mais plutôt 64 unités composées de 5 parties qui font chacune une instruction. Contraire donc du scalaire de Nvidia où les 128 unités fonctionnent à 100% sur une tâche. En clair, les “320 unités” ne tourneront jamais à 100 %, ou presque.

Mais il faut dire que Nvidia parlait alors de “coeurs” pour sa 8800 GTX, qui inaugurait l’architecture scalaire chez eux. Cela leur permettait de dire “vous voyez comme vos CPU dual Core sont faibles à côté des 128 cores de nos GPU ?”, sauf que bien sûr, ce que Nvidia appelle “cores” n’a rien, mais alors rien du tout à voir avec les Cores CPU. En effet, ce ne sont ni plus ni moins que des unités de calcul, complètement différent d’un core tel qu’on l’entend sur nos CPU x86.

AMD a choisi de continuer dans la logique de Nvidia et de parler à son tour de “cores”. Sauf qu’au lieu de compter chacune de ses unités de calcul vectorielles comme des cores,  AMD a choisi de présenter chaque sous-unité de son unité vectorielle comme un core. C’est ainsi que la HD 2900XT s’est retrouvée avec 320 “cores”.

Et cela a continué On se retrouve donc pour la Radeon HD 5870 avec 1600 SP !! Les 480 unités de la GeForce GTX 480 font sacrement tache à coté, vous ne trouvez-pas ?

Mais voilà, la Radeon HD5870 a des performances quasi identiques à la GTX 480, bien sûr à cause de cette différence sur le comptage des cores. Si c’était vraiment du scalaire, la HD 5870 ne se retrouverait certainement pas ex-aequo avec la GTX 480, mais très largement au-dessus. Nous avons donc 320 SP vec5. La aussi, vous pouvez les compteur sur l’image ci-dessous :
2 SIMD contenant chacun 10 lignes qui contiennent 4 blocs de 4 unités : ce qui fait 2x10x4x4 = 320 le compte est bon ! Remarquez qu’on peut toujours distinguer les sous unités, mais il faut avoir de bons yeux.

Pour aller plus loin :
Test - REDMAGIC Nova Gaming Tablet

HD 5870 GPU

Pour son successeur, la Radeon HD6970, le nombre de processeurs de flux a étrangement diminué à 1536 mais elle dépasse la HD5870 sur le plan des performances. Pourquoi ? Car la HD 6970 a été basée sur du vec4, donc des unités pouvant calculer 4 éléments par cycle. 384 unités vec4 pour être précis, ce qui fait plus d’unités que les 320 vec5 de la HD5870 (mais moins de “coeurs”). Petit calcul : toujours 2 SIMD, mais contenant cette fois-ci 12 lignes de 16 unités. Donc total de 2x12x4x4=384 le compte est bon !

GPU HD 6970

Les Radeon GCN (HD 7000 et Rx 200) étant scalaires, on peut vraiment parler de 2816 unités pour la Hawaii XT (R9 290X). Et puis d’ailleurs, on peut mieux les comparer les GeForce et les GCN, étant toutes 2 scalaires. Et finalement, la GeForce GTX 780 Ti et Radeon R9-290X ont sensiblement le même nombre d’unités, et globalement leurs perfs sont du même ordre (une petite dizaine de pourcent près).

Au final, y a-t’il eu tricherie sur le nombre de processeur de flux des vieilles cartes AMD/ATI ? Dur de répondre. Car clairement, il y a 320 unités vec5 dans une HD 5870 et non 1600 unités scalaires vec1. Par contre, pour la défense d’ATI, sur le plan strictement théorique, un vec5 est bel et bien capable de calculer 5 fois plus vite qu’un scalaire et en est donc l’équivalent… Bien sûr ces performances théoriques sont inapplicables dans une utilisation Gaming par exemple, à cause de la parallélisation limitée de ce genre d’application, ce qui fait que les Radeon ne faisaient pas mieux que leurs homologues Geforce malgré une puissance théorique largement supérieure (2720 GFLOP pour la HD 5870 par exemple contre 1344 GFLOP pour la GTX 480, aux performances globalement similaires)

Il y eu volonté réelle d’enjoliver les specs. Mais ce n’est pas une tricherie car les spécification techniques ne reflètent au final que la puissance théorique, et en aucun cas les performances réelles. C’est un débat très actuel, car en ce moment c’est Nvidia qui se retrouve au pilori pour avoir traficoté les spécifications d’une de ses cartes phares. Plus de détails ici.

nvidia-amd

Résumé :

Pour résumer, AMD restait sur une architecture vectorielle tandis que Nvidia était passé au scalaire. La firme rouge avait donc deux choix : soit laisser ses tech specs en vec5 (par exemple parler de 64 unités vec pour la 2900XT au lieu de 320 unités vec1) au risque que la carte n’ait pas de jolies specs (car il ne faut pas oublier que 64 vec5 reste largement plus puissant que 64 scalaires), soit de “traduire” en scalaires, ce qui est correct uniquement lorsque tout fonctionne de manière optimale lors des traitements, c’est à dire seulement en théorie.

Dans tous les cas, le problème vient à la base du mot “core”, très mal adapté pour les cartes graphiques, surtout quand celles-ci sont organisées tellement différemment que dans tous les cas, ce mot n’aura pas la même signification pour l’une que pour l’autre. Et si on pousse encore plus loin, le problème vient que l’on donne trop d’importances aux spécifications techniques, dont certains éléments flous (comme la notion de “cores”) peuvent être manipulés. Car au final, qu’une carte graphique ait 10 “cores” ou 2000, qu’est-ce que ça change ? Ses performances sont ce qu’elles sont. Malgré tout, il est vrai qu’en tant que consommateur, on n’aime pas que ces chiffres soient manipulés par les constructeurs, comme Nvidia l’a fait avec sa GTX 970 par exemple. On aime bien qu’il y ait de la cohérence derrière, pour pouvoir expliquer les résultats que l’on obtient.

Donc c’est vous qui voyez : soit vous considérez que la HD 5870 a 320 unités de calcul, chacune bien plus efficace que les 480 unités de la GTX 480. Soit vous considérez que la HD 5870 a 1600 “cores”, mais tous bien moins efficaces que ceux d’une GTX 480.

Selon vous, AMD/ATI avait-il fait le bon choix d’employer le mot “core” pour ses GPU ?

Article écrit conjointement par Geekosa et Trinitas

30 COMMENTAIRES

  1. Comme on dit, seul le résultat compte! Utilisant de l’AMD depuis toujours, je ne trouve rien à redire aux performances de cette marque. Mais je n’ai pas de point de comparaison non plus…

  2. Bonjour,

    Je pense qu’à vouloir faire de la polémique pour faire de la polémique on finit par s’emmêler les pinceaux 😉

    Certes par simplification les unités de calcul des GPU Nvidia étaient souvent décrites comme scalaires en opposition aux unités vec5/vec4 des GPU ATI/AMD. Mais il s’agit d’une simplification grossière pour faire comprendre des différences entre architectures, certainement pas d’éléments valables pour parler de tricherie.

    Il n’y a jamais eu d’unités de calcul scalaire dans les GPU Nvidia ou AMD (en dehors d’unités très spécifiques dont on ne parle jamais). Et c’est Nvidia qui a inauguré le bullshit du nombre de cœurs pour mettre en avant le GPU face au CPU. AMD s’est contenté de suivre le mouvement.

    Dans tous les GPU depuis les GeForce 8, on retrouve de grosses unités vectorielles. Par exemple dans les Radeon GCN et GeForce Kepler, on retrouve des unités vectorielles 16D. Oui, dans les deux cas. Lorsque l’on parle d’unités scalaires ou vec5, il s’agit plutôt de la manière dont sont exploitées ces grosses unités par le compilateur et par le scheduler du GPU, c’est différent de l’implémentation physique.

    Concernant le combat Nvidia/ATI de 2007, il ne faut pas oublier que les unités de calcul des GeForce 8 étaient “double pumped”. 128 unités de ce type sont équivalentes à 256 unités classiques. Par ailleurs les GPU Nvidia sont équipés d’unités supplémentaires dédiées aux instructions spéciales et jamais reprises dans le compte des “cores”. Enfin, une 8800 GTX disposait de 64 de filtrage des textures contre seulement 16 pour la 2900 XT. Ce sont en fait les raisons qui ont fait que les GeForce 8 ont pu battre la Radeon HD 2900.

    Ceci dit il est vrai que si un compilateur doit trouver 4 ou 5 instructions non dépendantes (et qui se suivent à peu près) pour alimenter toutes les unités, forcément ce ne sera pas toujours le cas et le rendement s’en ressentira. Mais à ce petit jeu les Radeon étaient devenues très efficaces. C’est avant tout le GPU computing qui a poussé les fabricants de GPU vers des compromis différents et aujourd’hui l’efficacité énergétique peut inverser la tendance.

    Tout comme les Radeon HD 6900 avaient un comportement vec4, les GPU Maxwell de Nvidia ont un comportement… vec2. A quand un article sur la tricherie de Nvidia ? 😮 Ce sera par contre moins facile d’expliquer que Nvidia triche en annonçant 2048 unités qui se comportent en fait comme 1024 unités vec2 mais parvient malgré tout à battre un GPU de 2816 unités qui ont un vrai comportement scalaire. Mais ça permettra peut-être de constater le grand n’importe quoi de cette discussion 😮

    • Salut,
      Enfin du constructif, ca change. Je commençais à désespérer quand je voyais certains autres commentaires. Merci pour ce message.

      Déjà, il est vrai qu’il y a eu un amalgame entre l’implémentation physique des unités et de la manière dont elles sont vues. Mais c’était volontaire car on ne voulait pas en faire un dossier complet sur l’architecture vectoriel.
      Celui-ci viendra peut-être par la suite (il était déjà semi-prévu. Je pense que ta remarque favorisera sa création).

      Ensuite, les SP de Nvidia ont fonctionné au double de la fréquence du GPU jusqu’au Fermi, ca non plus on ne l’a pas mis, il faut savoir poser des limites à un artcile, surtout que celui-ci se veut être un quicky donc plutôt court. J’irai même jusqu’à nuancer ce que tu dis : “128 unités de ce type sont équivalentes à 256 unités classiques.”. Non je dirai qu’une unité va deux fois plus vite à fréquence GPU identique. Car après tout, ca modifie la fréquence interne du SP et non le nombre. En plus, le côté “1 SP nvidia AMD en vaut 2 AMD grâce au double pumped” est encore plus à nuancer par le fait qu’à cause de ce double pumped, la fréquence GPU des NVidia étaient loin d’arriver à celle des GPU AMD (100-150 MHz d’écart environ). Donc le x2 devient vite un x1,5.
      Après c’est du chipotage, car le fond est là. Mais la fréquence est totalement indépendant du nombre de SP dans un GPU, d’où la non apparition de cette donnée dans l’article, j’espère que tu comprends ce choix.

      Je précise car il faut bien comprendre la nature de cet article : il est là pour répondre à une question. Cette question, en l’occurrence est “AMD a-t-il triché sur le nombre de cœurs de leur GPU ?” La réponse est difficile, car si on considère que tourner volontairement les spécifications à notre avantage est de la triche, oui ils ont triché. Si on considère que non, non ils n’ont pas triché. D’où la conclusion nuancée par ailleurs.

      Sinon, pour le comportement vectoriel de Maxwell, tu m’apprends un truc, merci. J’irai fouiller (quand j’aurais le temps :/)

  3. ben ils auraient triché si ils avaient fait passer des vectorielles pour des scalaires or c’est pas le cas puisque l’on savait déjà à l’époque qu’il s’agissait de vectorielles pour ati cet article est mauvais

    • Plutôt que de dire “on a 320 sp 5d” ils ont préféré dire “on a 1600 sp 1d” sur leurs techs specs officielles.
      Tu ne comprends visiblement pas, d’où ta logique erronnée sur la qualité de l’article.

      Je t’invite à écrire en brouillon un article expliquant que la hd 5870 a 1600 sp fonctionnant à leur plein potentiel. J’attends ce que tu vas me sortir ^^

      • Les faits, juste les faits, sont qu’ils n’ont jamais fait passer des vectorielles pour des scalaires, que t’apprécies ou pas la tournure de la phrase on s’en moque.
        Ils ont mis en avant les vectorielle sans les faire passer pour des scalaires pour avoir de meilleurs chiffres ils ont choisis de mettre en avant ceux là plutot que les autres
        Aux gens à se renseigner sur les termes.
        C’est comme par exemple le temps de réponse de gris à gris au lieu du noir à noir tant que c’est mentionner y a pas de tromperie sur la marchandise les spec sont correctes donc rien d’illégal donc y a pas de triche cqfd
        donc je le redis cet article est mauvais il est à la limite juste diffamant
        je te mets au défi de les faire condamner devant un tribunal par contre cet article il est condamnable juste pour cette phrase je cite

        “celui-ci parlant d’une tricherie Marketing ayant sévit il y a plusieurs années dans le secteur des cartes graphiques.”

      • Ils ont mis en avant les vectorielle sans les faire passer pour des scalaires
        => non, car comme je le répète depuis le début, s’ils avaient tourné les unités comme des vectorielles, il auraient dit 320 unités vec5 pour la 5870 et non 1600. J’ai l’impression de me répéter avec toi, c’est lassant.
        Alors qu’avant (à comprendre les X series) il n’y avait pas cette “conversion”. C’est apparu d’un coup. Le tout pour chambouler ce que les gens pensaient savoir.
        Mais d’un côté c’est nVidia qui a commencé à parler en “coeurs”, chose idiote du point de vue d’une carte graphique. AMD l’a suivi et a poussé la chose encore plus loin.

        C’est comme par exemple le temps de réponse de gris à gris au lieu du noir à noir tant que c’est mentionner y a pas de tromperie sur la marchandise les spec sont correctes donc rien d’illégal donc y a pas de triche cqfd
        => Sauf que pour les écrans ils précisent que c’est gris à gris. Mais tu as raison, c’est pas illégal, de la même manière qu’afficher “4L au 100” alors que ca a été testé vent dans le dos en descente (je schématise) n’est pas illégal, puisque issues de vraies mesures, même si elles ne sont pas applicables. Tu n’es pas sans savoir que les boîtes de ce types sont assez intelligentes pour tricher légalement 😉

        “je te mets au défi de les faire condamner devant un tribunal”
        => J’ai absolument pas envie de les faire condamner, je vois donc même pas une once de pertinence dans ce que tu dis. De plus à la fin, c’est précisé que c’est en quelques sortes une semi triche.

        Sinon, c’est bon tu as fini ?

  4. Wai c’est un peu la même histoire qu’avec les fréquences des GDDR5, ya une fréquence réel et une fréquence commercial avec un gros nombre de MHz pour faire jolie…

  5. Étant l’auteur de cet article, je tiens à dire une chose: je ne suis pas pro-nvidia,(Réponse à “LOG”). Et deuxio, une HD5870 par exemple dispose bien de 1600 unités physique, mais fonctionnant de manière vectoriel……1600 ça peut paraitre beaucoup, mais le vectoriel est plus économique à concevoir et donc la puce se retrouve plus petite qu’une puce scalaire.

    • Mea culpa, avec du recul je comprends l’intérêt du sujet qui sert aussi de guide technique, c’était juste que cela tombait en même temps que le shitstorm de la 970 avec la fausse comm de NV.

      Merci pour le contenu car c’est loin d’être facile à expliquer pour la plus grande “masse”.

  6. Amd c’est de la merde c’est tout, avec Nvidia je n’ai jamais eu de souci, je suis passer chez Amd pour tester et je fait que ça, avoir des problème graphique, freeze, coupure d’affichage etc !!

    Y a pas a chier, Nvidia et le top qualité et number one pour les jeux vidéo !!

    • Je n’ai pas de souci avec les GPU AMD, faut il en conclure que Nvidia c’est de la m.rde? Bah non.

    • Tous à fait de ton avis ,pareil j’étais chez Nvidia -> jamais de soucis et maintenant freeze ect.. –‘

    • Ah bah … Moi la seule Nvidia que j’ai eu elle me faisait planté le PC complet au bout d’une heure trente et monté a 117° assez facilement.
      “Nvidia c’est de la merde t’as vue” … Mais c’est sans doute pas la faute de MSI qui m’avais collé un rad 1 slot sur une 8800GT overclocké d’usine ou plus récemment la faute à Sapphir d’avoir sorti une série de merde sur les HD7850/7870 alors que les autres marque “no-prob”. La le problème est de conception de la “carte” voir des composant et pas de la puce, a un moment il faut arrêter de ce palucher sur les marques en pensant que ça fait de nous de meilleurs humains. Ce consumérisme devient débile.

  7. perso j’en pense que le rédacteur de l’article est clairement du coté de Nvidia, sinon pourquoi dire que ATi c’est Amd, c’est pas le cas …

    Amd a racheté ATi mais n’en était pas propriétaire a l’époque des faits !

    Or plusieurs fois dans l’article notamment dans le titre et dans la conclusion l’auteur remplace ATi par Amd ce qui est une erreur qui pourrait amener a croire que Amd dans le passé a menti…

    • En effet, surtout en ce moment en pleine histoire de mensonges avérés sur les 970, ça fait un peu troll de compensation de la part d’un fan.

      • Alors, qu’on mette les choses au clair, cet article était prévu depuis plusieurs semaines, bien avant que le problème de la GTX 970 ne fasse surface.
        De plus, amd a racheté ati avant les HD 2000, les premières cartes à avoir leurs techs specs “traduites” en scalaires. Les cartes gardaient le nom Ati pour ne pas perturber les utilisateurs. Et les HD 6000 portent le nom d’AMD Radeon et non ATI Radeon, car ils avaient décidé de laisser tomber le nom ATI.
        Ce choix des techs specs, dicté par le marketing (que je me leur reproche absolument pas d’ailleurs) incombe donc à AMD.

        Faut arrêter de voir un penchant pour un côté comme de l’autre, c’est lassant car entièrement faux

      • Ils n’ont pas mentis sur les perfs vu que les exemplaires de tests sont identiques et dons les **performances** sont celles promises et c’est bien l’essentiel au final. Le marketing a fait de la merde par contre ça oui.

  8. En abordant le fait d’un probable mensonge, il y a une rumeur qui traine sur le comportement du module GSync qui ne serait avant tout qu’un DRM, voir GAMENAB, c’est encore tôt pour se prononcer, mais plus rien ne m’étonne issu du marketing NV. D’autant que pourquoi les écrans support Freesync n’ont pas besoin de module?

  9. Reste qu’AMD est toujours meilleur mais que nVidia continue de faire en sorte que les jeux soient optimisés pour ses petites cartes et vend ce service très cher à comparer d’AMD qui pour moins cher ne cherche pas à tricher sur ce point et offre les même perf en jeu à moitié prix.

  10. J’en pense que j’ai toujours eu du Caméléon dans mes ordi !
    C’est quand même pas cool de leurs part de ne pas exposer la réalité !
    Comme pour beaucoup de chose, on joue sur les mots ^^

Commentaires fermés