Thursday, June 26, 2014

Choisir sa carte graphique en fonction de sa référence


Les conseils pour le choix d'une carte graphique sont donnés dans l'astuce : 

Ici, on va essayer donner les clés de décodage pour comprendre comment les fabricants nomment leurs différentes cartes graphiques, dans la mesure du possible, car la logique n'est pas toujours de la partie, puis on essayera de comparer d'un point de vue théorique les performances des cartes d'après leur structure interne. 
Le composant déterminant sur une carte graphique est le processeur graphique, GPU en anglais, auquel est associé de la mémoire pour le stockage des données. 
Le GPU est composé d'Unités de Calculs appelés Processeurs de Flux (Stream Processors, SP), faisant l'essentiel des calculs, d'unités de texturing (TU) , rajoutant les textures pour chaque pixel, et de ROP's(Raster Operators), traitement final sur les pixels, en charge en autres de l'anti aliasing (AA) . 
Plus un GPU aura d'Unités de Calcul (Stream Processors), mais aussi Unités de Texturing et ROP's, plus il sera puissant. 

Deux fabricants se partagent le marché de la carte graphique séparée : ATI (racheté par AMD maintenant) et nVidia. 
Dans la gamme grand public, les cartes nVidia sont toutes appelées GeForce, et les cartes ATI/AMD se nomment toutes Radeon et ce, depuis l'an 2000 environ. 

HP HSTNN-OB80 HSRNN-I57C 493529-371 battery

Sommaire : 

Comment identifier les performances d'une carte graphique ATI/AMD par sa référence

On peut dire que chez AMD les appellations suivent à peu près un ordre logique : 

Anciennes séries 3000, 4000, 5000, 6000 et 7000 :
  • Le chiffre des milliers caractérise la famille du GPU : plus il est élevé, plus la carte est récente ; par exemple, la série 6000 est plus récente que la série 5000.
  • Une 7870 est nettement plus puissante qu'une 7770 : le chiffre plus élevé des centaines indique un GPU supérieur ;
  • Une 7850 est un peu moins puissante qu'une 7870 : ici, seul le chiffre des dizaines a changé : il s'agit du même GPU, avec un peu moins d'unités de calcul pour la HD 7850.

HP Mini 1000 1001 1014 1010NR 1035NR 1050 battery 
On peut comparer des cartes de générations différentes, mais pas des cartes dont la référence est complètement différente : une 6850 est moins puissante qu'une 7850 (un seul chiffre d'écart), mais on ne peut rien dire a priori sur les performances comparées d'une 6850 et d'une 7770 : 
la 7770 est plus récente (chiffre des milliers = 7> 6), mais le chiffre des centaines est inférieur (7 < 8) : il faut aller regarder la structure de leur GPU pour pouvoir en dire plus. 
Il y a malheureusement des cas où cette logique de numérotation n'est pas respectée, comme nous verrons plus loin avec les HD 6800. 

Nouvelles séries R7 / R9 : 
Pour l'instant c'est très facile, R7 désigne les CG d'entrée de gamme, R9 celles du milieu et haut de gamme. 

Par contre elles ne correspondent pas toutes à une nouvelle architecture, certaines sont des reprises des anciennes séries : 
Radeon R9 280X (GPU Tahiti, utilisé sur les HD 7900) 
Radeon R9 270X (GPU Pitcairn, utilisé sur les HD 7800) 
Radeon R7 260X (GPU Bonaire, utilisé sur les HD 7790) 
Source 

Comment identifier les performances d'une carte graphique nVidia par sa référence

Chez nVidia, la numérotation suit aussi un ordre à peu près logique : 

GeForce GT/GTS/GTX séries 100 à 700 :
  • le chiffre des centaines caractérise la famille du GPU, donc à peu près l'année de sortie. Par exemple, une GT 250 est plus ancienne qu'une GT 450 . Le préfixe GT/ GTS / GTX indique simplement une carte de plus en plus puissante, c'est redondant avec la numérotation, et la limite entre GT et GTX est assez floue actuellement (le GTS ayant disparu) : c'est plutot d'ordre commercial que technique.
  • le chiffre des dizaines qui augmente correspond à un GPU plus puissant, mais basé en principe sur la meme architecture : par exemple, la GTX 780 est plus puissante que la GTX 770, basée sur le meme GPU, avec des unités de traitement désactivées.


Mais il y a malheureusement de plus en plus d'exceptions à cette règle de numérotation : 

- La GTX 550 Ti est en fait une GTS 450 boostée, lire ici ; elle aurait donc du s'appeler plutot GTX 450 par exemple, car elle est moins puissante qu'une GTX 460, voir les tests sur le meme lien ; 

- La GTX 650 n'a pas plus d'unités de calcul que la GT 640, c'est le meme GPU associé avec de la mémoire GDDR5 , lire  
cette carte aurait du s'appeler en fait GT 640 Ti par exemple, mais l'appellation GTX fait davantage vendre ;) 

- Dans la série 7 ca devient assez incompréhensible, le chiffre 7 ne garantissant pas la dernière génération de cartes, comme expliqué en détail au paragraphe suivant. 

Comparaison théorique des cartes ATI/AMD entre elles et nVidia entre elles

Pour avoir une idée plus précise des performances théoriques de carte d'un même fabricant entre elles, il faut regarder la structure du GPU. 
Ensuite, on peut comparer les fréquences de fonctionnement du GPU et de la mémoire, mais ca n'a de sens que pour des modèles très voisins. 
En effet, comparer la fréquence GPU d'une HD 5850 (725MHz) avec une HD 5870 (850Mhz) a un sens , car les 2 cartes sont basées sur le meme GPU, avec un nombre différents de processeurs de flux, mais ca n'a aucun sens entre une HD 5850 et une HD6950 (800MHz), car la structure du GPU est nettement différente. 

Chez AMD: 

Comme évoqué plus haut, la logique n'a pas fonctionné chez AMD pour les HD 6800 : 
Par exemple, entre la HD 5850 et la HD 6850, la comparaison des chiffres des milliers indique que la HD 6850 est plus récente, et c'est vrai. 
Mais la logique s'arrete là : 
le chiffre des centaines identique devrait signifier que la HD 6850 est supérieure à la HD 5850, or il n'en est rien. 
Il faut regarder les unités internes du GPU pour comprendre : 
HD 5850 : processeurs de flux : 288 vec5, souvent comptabilisés 1440 (288x5), 72 unités de texturing et 32 unités Raster (ROP's). 
HD 6850 : processeurs de flux : 192 vec5 comptés 960 (192x5), 48 unités de texturing et 32 unités Raster (ROP's). 

Ici, on constate facilement une quantité plus importante de processeurs de flux et d'unités de texturing sur la HD 5850. 
L'optimisation du traitement de la tesselation et les fréquences plus élevées sur la HD 6850 permettent de réduire l'écart, mais les faits sont là : 
la HD 5850 est plus puissante que la HD 6850 dans les tests réels sur jeux, alors que ca devrait etre l'inverse, d'après la numérotation ! 
On obtient la meme chose avec les HD 5870 et HD 6870, c'est la première qui est la plus puissante, contrairement à ce que la numérotation laisse penser. 

Pour la génération suivante de cartes graphiques AMD, les HD 79XX, l'architecture "Graphics Core Next" est encore différente : 
Depuis la série 5000 des Radeon HD, AMD propose un modèle d'architecture basé sur le VLIW ou Very Large Instruction Word. En clair, il s'agit pour les unités de la puce d'exécuter d'un seul coup plusieurs instructions simultanément (selon le codage) : C'est ce que l'on peut qualifier de comportement vectoriel. 
Avec Graphics Core Next, la firme tire un trait sur cette époque et propose une architecture comprenant une unité vectorielle + co-processeur scalaire, associé à un ordonnanceur /planificateur de l'exécution de taches:
Il s'agit ici de travailler sur une seule instruction par bloc, toujours sur plusieurs éléments à la fois. On a donc un découpage de la puce où les unités de calcul, autrement appelées CU ou Compute Unit, sont constituées de blocs SIMD (quatre par CU), chacun pouvant exécuter une instruction sur un maximum de 16 éléments. 
HP Compaq Mini 110c 102 CQ10-100 110 1101 battery 
Chez nVidia : 

Chez Nvidia, la logique de numérotation correspond généralement à la réalité mesurée ; mais certaines appellations sont trompeuses. 
Par exemple si on compare une GT 460 768Mo avec une GT 460 1Go : 
on pense qu'il s'agit du meme modèle de carte graphique, avec simplement la quantité de mémoire qui est moins importante sur la version 768Mo. 
Mais en regardant la structure de leur GPU, on trouve d'autres différences : 
Les 2 GPU ont chacun 336 processeurs de flux et 56 unités de texturing, mais la version 1Go possède 32 unités ROP's, contre 24 pour la version 768Mo, et la largeur de bus est plus grande (256 bits contre 192) sur la version 1Go : 
- les ROP's intervenant pour les filtrages, la version 1Go est plus adaptée pour ceux qui jouent avec A-A (Anti Aliasing). 
- la largeur de bus intervenant dans la vitesse des échanges entre GPU et mémoire, la version 1Go sera un peu plus rapide que la version 768Mo. 
Ce sont en fait ces 2 caractéristiques "cachées" qui font la différence de performances entre les 2 cartes, et non la différence de mémoire, qui est somme toute assez faible. 

Dans la série 7 on n'arrive plus à savoir quelle est la vraie génération des cartes : 

Les GTX 750 et 750 Ti sorties en début d'année 2014 sont basées sur une nouvelle architecture appelée Maxwell, ce sont pour l'instant les seules représentantes de cette architecture en Juin 2014. 
Donc pour respecter la logique de numérotation, les GTX 750/750 Ti auraient du s'appeler GTX 850/850Ti. 

A contrario, la GTX 770 est en fait une remise à niveau de la GTX 680, lire  
Cette carte aurait du s'appeler GTX 680 Ti par exemple. 

Dorénavant, on ne peut donc plus vraiment se baser sur la numérotation pour avoir des infos pertinentes sur une carte graphique chez Nvidia... 

L'intérêt d'analyser la structure interne permet de voir comment est construit le GPU, mais ne permet pas de tout voir : 
l'exemple du meilleur traitement de la tesselation sur la série HD 6800 n'apparait pas dans la structure interne du GPU ; de meme, la capacité de traitement GPGPU des HD 5800 (absente sur les HD 6800) n'apparait pas non plus : il faudra donc se fier aux informations commerciales ou aux tests indépendants. 

Comparaison théorique des cartes ATI/AMD et Nvidia entre elles

Pour comparer les performances d'une carte graphique Nvidia et d'une carte AMD, c'est beaucoup plus compliqué, voire impossible : 
On peut essayer comme précédemment de comparer le nombre de processeurs de flux, d'unités de texturing et de ROP's, mais l'architecture assez différente des GPU chez Nvidia et AMD , notamment concernant les processeurs de flux, oblige à rentrer un peu plus dans le détail, et on tombe rapidement sur une impasse. 

En effet, depuis les 8800 première version, NVIDIA propose une architecture qu'il qualifie de SIMT c'est-à-dire « Single Instruction, Multiple Threads » et qui correspond dans la pratique à l'application d'une opération sur plusieurs threads (fils d'exécution) par opposition à l'architecture retenue par ATI qui est dite SIMD «Single Instruction, Multiple Data », où une instruction de plusieurs opérations est appliquée à un élément. 
Techniquement, qu'il s'agisse d'architecture SIMT ou SIMD, les puces sont dans tous les cas dotées d'unités scalaires. En théorie, le SIMT est censé être plus efficace, le programmeur n'ayant pas à se soucier du remplissage de l'unité vectorielle, ce qui n'est pas le cas du SIMD. Bien que les puces d'AMD et de NVIDIA proposent toutes deux des architectures graphiques unifiées, l'architecture SIMT ou SIMD induit une comptabilisation différente des processeurs de flux, car chez AMD chaque processeur de flux peut contenir jusqu'à 5 instructions (4 sur les HD 69XX). 
Et donc la simple comparaison brute du nombre d'unités ne permet pas d'estimer la puissance d'une puce face à l'autre. 
Toute la difficulté consiste à savoir combien d'unités de traitement vectoriel sont utilisés simultanément , car ca va dépendre des instructions, et donc du codage des jeux. 
Avec la dernière architecture d'AMD, le Graphic Core Next, c'est aussi compliqué, car malgré une apparence scalaire du point de vue développeur, il y a toujours des unités vectorielles. 

C'est donc pratiquement mission impossible de comparer une carte AMD et une carte Nvidia sans benchs à l'appui. 

Cartes graphiques de portables

D'une manière générale les cartes graphiques de portables sont identifiées par le suffixe M (comme mobiles)
Par contre, elles sont beaucoup moins puissantes que la meme référence pour PC de bureau 
Par exemple une GTX 770M n'a rien à voir avec la GTX 770, elle correspond environ à une GTX 750 Ti de bureau... 
De plus, certaines références très récentes correspondent à des cartes très peu puissantes, n'ayant aucun intérêt par rapport à une puce graphique intégrée dans le CPU , tout en consommant davantage ! 
Par exemple la GeForce 820M n'a aucun intérêt en tant que carte graphique séparée, ne faisant pas mieux niveau performances que la puce Intel HD Graphics 4600 des CPU Intel ... 

Coté logique de numérotation, ce n'est pas beaucoup mieux que pour les cartes graphiques de bureau 

Pire, certaines références correspondent à 2 produits différents ! 
Par exemple la GTX 860M peut correspondre à une carte d'architecture Maxwell, avec 640 unités de calcul, consommant peu (TDP=40W), ou à une ancienne carte d'architecture Kepler, consommant beaucoup plus (TDP=75W), avec 1152 unités de calcul, lire ici 
Meme si la carte Kepler est un peu plus puissante, consommer presque le double sur un portable peut changer considérablement l'autonomie ! 

Il faut donc lire vraiment en détails les informations techniques avant tout achat, l'échange d'une carte graphique de portable étant impossible dans la quasi totalité des cas. 

Conclusion

La numérotation des cartes graphiques permet de moins en moins de savoir à quoi s'en tenir niveau architecture et génération de la carte, aussi bien pour les modèles de PC de salon que pour les cartes de portables : il faut impérativement lire en détail la fiche technique. 

L'analyse de la structure du GPU permet d'aller plus loin dans la prévision des performances des cartes, avec une moindre précision que des tests pratiques, qui restent dans tous les cas la référence. 
Si cette méthode donne de bons résultats au sein d'une meme marque, elle trouve ses limites en comparant les cartes graphiques des 2 principaux constructeurs : 
la structure assez différente de leurs GPU rend très difficile, voire impossible, la comparaison purement théorique des unités de calcul.

No comments:

Post a Comment