Taille de bus mémoire/débit/fréquence - Carte graphique - Hardware
Marsh Posté le 12-10-2015 à 14:35:25
Salut,
En générale il ne faut pas trop comparer des cartes de générations différentes, l'architecture évolue et les besoins en bande passante mémoire aussi.
Et particulièrement avec Maxwell (les GTX 900) qui permet de réduire significativement la bande passante mémoire tout en ayant de meilleurs performances.
Sur une ancienne GTX 570, les 320Bits ne devrait pas être superflus, alors que aujourd'hui un GM206 avec 128Bits c'est parfait dans la majorité des cas.
Marsh Posté le 12-10-2015 à 14:36:25
Tu n'as pas de formule fixe car cela évolue en fonction de l'architecture et des pilotes. Tu peux très bien avoir une carte avec moins de bande passante mais de bien meilleures performances (gtx 960 vs gtx 570).
Marsh Posté le 12-10-2015 à 16:26:26
Merci pour vos réponses,
J'essaye de comprendre en détail à quoi ça correspond pour ma culture personnelle.
Memory Clock c'est simplement la fréquence de la RAM?
Pour la bande passante, est-ce le débit "réel" (tant de bits/s qui transitent) ou le débit "pratique" (une fois compressé, il y a l'équivalent de tant de bits/s qui transitent)?
De plus, est-ce le débit entre la CG et la CM=>proc ou entre le GPU et la DDR5?
Et enfin la taille du bus est simplement une valeur physique correspondant au nombre de canaux entre la CG et la CM=>proc?
Merci
Marsh Posté le 12-10-2015 à 16:41:51
the_skwi a écrit : Memory Clock c'est simplement la fréquence de la RAM? |
Oui. En MHz le plus souvent.
the_skwi a écrit : Pour la bande passante, est-ce le débit "réel" (tant de bits/s qui transitent) ou le débit "pratique" (une fois compressé, il y a l'équivalent de tant de bits/s qui transitent)? |
La je ne sais pas trop ... Ce qui est sûr, c'est que si tu compare des cartes graphiques avec les mêmes architectures (même compression), celle qui a une bande passante plus large est avantagée.
the_skwi a écrit : De plus, est-ce le débit entre la CG et la CM=>proc ou entre le GPU et la DDR5? |
Non, la il s'agit des caractéristiques du bus PCI-E (2.0 pour les cartes mères plus ancienne) : bus bidirectionnel, 16 lignes généralement, à 500Mo/s théoriques par ligne.
the_skwi a écrit : Et enfin la taille du bus est simplement une valeur physique correspondant au nombre de canaux entre la CG et la CM=>proc? |
Le bus dont on parlait plus tôt est celui entre la CG et sa mémoire graphique. Le "bus" de communication entre la CG et la CM c'est le PCI-Express.
Marsh Posté le 12-10-2015 à 16:42:27
the_skwi a écrit : Merci pour vos réponses, |
C'est la fréquence de la VRAM pour être plus précis.
Il s'agit plutôt d'un "debit max".
C'est entre le GPU et la mémoire.
La taille du bus c'est le nombre d'octets max transféré par "transfert".
Pour ta culture je vais étoffer :
Ta mémoire a une fréquence, disons de 1750 MHz. Ta carte graphique a de la GDDR5 soit 4 transferts par cycle (la GDDR3 c'est 2). Par abus de langage ta carte est capable d'une fréquence de 7000MHz (on va plutôt parler de 7GTransferts/sec). Supposons que ton bus soit de 256 bits (soit 32 octets), tu auras alors une bande passante de 7*32 = 224 Go/sec.
Marsh Posté le 12-10-2015 à 18:20:59
D'accord, merci pour la précision !
la VRAM c'est bien la RAM dédiée et intégrée dans la CG? À l'instar des barrettes de RAM utiles pour le CPU.
La GTX570 avait une fréquence plus élevée, mais la GDDR5 n'était pas là et devaient donc se contenter de 2 cycles en GDDR3. Ils ont été "obligé" de faire un bus de 40 octets (surement 32+8) pour profiter pleinement des carac?
Ce qui entraine une nouvelle question, comment obtiennent-ils la taille de bus optimale pour leur carte graphique?
S'ils avaient mis un bus de 80 octets, la bande passante aurait été doublée. J'imagine qu'ils ne l'ont pas fait pour une raison particulière, quelle est-elle?
Mathématiquement je comprends ton exemple (encore heureux ), mais je crois que ce qui m'échappe c'est la relation entre la fréquence et la taille du bus, en quoi augmenter la taille du bus augmente le débit?
Si on reprend ton exemple, à quoi correspondent les 7Giga d'opérations par secondes (cycle?) c'est quel type de "données"? Ces 7 Giga/s possibles sont utilisés par le GPU pour avoir des données utiles graphiques?
Je crois que je me perds un peu :').
Marsh Posté le 12-10-2015 à 18:39:00
the_skwi a écrit : Ce qui entraine une nouvelle question, comment obtiennent-ils la taille de bus optimale pour leur carte graphique? |
Ha ça ...
Ce qui est déjà arrivé, c'est de réduire la taille du bus pour réduire les perf et proposer une carte inter-gamme. Comme la 660 Ti, qui est une 670 mais avec un bus (192Bits) plus petit.
the_skwi a écrit : S'ils avaient mis un bus de 80 octets, la bande passante aurait été doublée. J'imagine qu'ils ne l'ont pas fait pour une raison particulière, quelle est-elle? |
Probablement le prix, ainsi que la capacité du GPU à exploiter la bande passante. Tu imagine bien qu'il ne suffit pas de mettre un bus de 512Bits pour rendre n'importe quel GPU 4 fois plus performant.
the_skwi a écrit : Mathématiquement je comprends ton exemple (encore heureux ), mais je crois que ce qui m'échappe c'est la relation entre la fréquence et la taille du bus, en quoi augmenter la taille du bus augmente le débit? |
La fréquence c'est la dimension temps qui s'exprime. Le bus correspond à des canaux.
Imagine une autoroute, chaque voies correspond à 1 bits, le nombre de voiture par seconde correspond à la fréquence. Si tu compare deux autoroutes, la 4 voies permettra un débit de voiture 2 fois supérieur à une 2 voies.
the_skwi a écrit : Si on reprend ton exemple, à quoi correspondent les 7Giga d'opérations par secondes (cycle?) c'est quel type de "données"? Ces 7 Giga/s possibles sont utilisés par le GPU pour avoir des données utiles graphiques? |
Ça correspond au "data rate" (3800 pour la 570) le débit pour 1 canal. Pour la 570 : 3,87GTransferts/sec * 40 octets (320Bits) = 152 Gio/s.
Marsh Posté le 12-10-2015 à 21:57:29
the_skwi a écrit : |
Oui
the_skwi a écrit : |
Pourquoi tu divises les octets ? 40 octets c'est 40 octets, je vois pas trop le problème. C'est parce que c'est pas une puissance de 2 ? ^^
the_skwi a écrit : |
Y'a pas de raison, c'est une question de coût. Quand ton patron te dit "t'as X€ pour cette CG" alors tu fais en sorte que ce soit le plus équilibré possible. Et la GDDR5 coûte cher.
the_skwi a écrit : |
La formule c'est : bande passante = fréquence * nombre_de_transfert_par cycle * taille_du_bus/8 (pour être en octet et pas en bits). Si tu augmentes la taille du bus tu augmentes donc la bande passante.
the_skwi a écrit : |
Là c'est des questions un peu plus poussées, mais puisque tu demandes...
Il faut bien comprendre que ce qu'on lit ici c'est un signal carré, pas des "données". Ainsi lorsqu'on parle de "transferts" par cycle on parle en fait de détection par cycle : en effet un signal peut être détecté au niveau bas (0), au niveau haut (1), sur front montant (passage de 0 à 1) et sur front descendant (passage de 1 à 0). D'où les 4 transferts par cycle en GDDR5 (en tout cas c'est comme ça que je vois ça, il faudrait que je me renseigne). La taille de ton bus est de X, ainsi à chaque transfert, tu as X bits, soit X/8 octets qui sont lus en mémoire. Un cycle, c'est un "tic" d'horloge, soit une période du signal. Une période c'est un niveau bas, un front, un niveau haut, un front. Donc sur un cycle, quatre lectures en GDDR5. La fréquence c'est : 1/T. Hors T c'est la durée de ta période. Donc si on te dit que ta fréquence est de 1750 Mhz c'est que tu as un temps pour chaque période très petit. Du coup en une seconde tu fais 1750*10^6 fois ton cycle en une seconde, soit 1750*4*10^6 fois une lecture du bus.
Je passe à la deuxième partie de la question : ces données ça peut être tout. Pour l'électronique sous jacente c'est juste des 0 et des 1 qui peuvent représenter une donnée (image, texture, position) ou une instruction. Ce qui est important car plus le pilote est optimisé, plus le jeu d'instruction est optimisé, et plus les calculs iront vite.
Marsh Posté le 13-10-2015 à 08:45:03
Merci pour tes explications détaillés encore une fois
Pour le 40 oui, ça me perturbait que ce ne soit pas une puissance de 2.
Quand on parle de débit, on parle en fait de débit max non? Si on fait un bus de 60 octets, on aura un débit max de 60*cycle*fréquence. Cependant il ne pourra pas être exploité au maximum.
Si on prend le schéma complet d'architecture, corrigez-moi si je me trompe, il y a les informations sur le HDD/SSD, elles sont envoyées au CPU qui fait un premier traitement, met en RAM certaines données et envoie la partie "graphique" à la CG. Les données transitent par le port PCI/-e pour arriver où? dans la VRAM, dans le GPU, dans les deux? L'échange de données entre la VRAM et le GPU se fait dans les deux sens? Une fois que tout est interprété, le flux vidéo est envoyé depuis le GPU vers les différents ports de la CG?
En relisant ton message, je me dis que le schéma doit être plutôt celui là :
(HDD> )RAM>CPU>VRAM>GPU>écran ?
Les informations dans la VRAM sont accessibles par le GPU via son bus, donc plus le bus est grand, plus le nombre d'info sont accessibles par le GPU. Ce dernier peut faire (fréquence*cycle) lectures de bus par seconde.
À quel moment et à travers quoi le signal vidéo est-il généré? Y aurait-il un côté pour échanger avec la VRAM via son bus et un autre côté pour sortir le flux vidéo?
Pour le grand public, à quoi ça nous sert de connaitre le débit entre la VRAM et le GPU, simplement marketing pour dire qu'ils ont la plus grosse? Car si le débit importe peu en fonction de l'archi qu'il y a derrière, ce n'est pas très indicatif, si?
Marsh Posté le 13-10-2015 à 09:03:52
Drapal
Sinon ouais, pour la plupart des ignares que nous sommes face aux caractéristiques des cartes graphiques (et pas que, on peut aussi parler des autres composants), les détails techniques indiqués sur la boiboite sont purement marketting, et la plupart des gens s'y réfèrent.
A l'instar des SSD par exemple, le débit en lecture/écriture est indiqué, et on voit très souvent des utilisateurs sur le forum qui nous disent "je préfère prendre ce SSD car les débits sont plus importants", sans même savoir à quoi correspond ce débit, et si le choix qu'ils font est justifié quand à l'utilisation dudit SSD.
Ou encore, avec la mémoire vive, et la notion de fréquence liée à celle du CAS (le temps de réponse de la ram en quelque sorte). En gros, t'as des barettes en DDR3 d'une telle fréquence et d'un tel CAS qui sont aussi performantes que des DDR4 avec une fréquence plus élevée et un CAS aussi plus élevé.
Marsh Posté le 13-10-2015 à 09:17:47
the_skwi a écrit : Pour le grand public, à quoi ça nous sert de connaitre le débit entre la VRAM et le GPU, simplement marketing pour dire qu'ils ont la plus grosse? Car si le débit importe peu en fonction de l'archi qu'il y a derrière, ce n'est pas très indicatif, si? |
Oui c'est très souvent marketing. AMD et nVidia n'ayant pas les mêmes architectures, les bandes passantes mémoires sont différentes à performance équivalente.
Du coup il est bien vu de mettre sous le nez des consommateurs des specs auxquels ils ne comprennent rien et dire "c'est moi qui ai la plus grosse"; c'est pareil avec la quantité de VRAM (les R9 390 avec 8Go pour l'exemple).
Pour ceux qui s'y connaissent un peu plus, ça peut aider à faire le choix entre deux cartes graphiques de même génération quand la situation se complique (promo, prix très proche, specs quasi identique).
Marsh Posté le 13-10-2015 à 09:25:03
Pour la RAM il me semble qu'il suffit juste de faire le ratio fréquence/CAS pour comparer deux barrettes. Le mieux étant une grosse fréquence avec un petit CAS.
(trouvé ce lien http://www.commentcamarche.net/faq [...] de-la-ram)
Marsh Posté le 13-10-2015 à 10:38:34
the_skwi a écrit : Merci pour tes explications détaillés encore une fois |
Ca nous sert à rien, et je ne suis pas vraiment sûr que ce soit indiqué en gros sur la boiboite. La quantité de VRAM est inutile ici, à part dans les grosses résolutions où l'impact en perf sera significatif. En effet, comme tu l'indiques, les données sont chargées par le PCI Express depuis la RAM ou le HDD. Parfois ce débit ne suffit plus pour les grosses textures d'où l'intérêt des CG avec beaucoup de mémoire. Mais c'est uniquement valable à haute résolution (ou avec une antialiasing qui calcule X fois ton image pour ensuite la downscale).
Pour le fonctionnement du PCI-E c'est vraiment spécial en fonction des chipset Intel et des carte-mères. Il faut vraiment imaginer que le PCI-Express c'est un fil qui relie deux composants entre eux, donc tu n'es même pas obligé de passer par le CPU. La norme PCI-Express spécifie un fonctionnement "point to point". Et on rentre alors dans le modèle OSI (c'est plus simple pour les ingénieurs en électronique peut-être les techniciens aussi, je ne sais pas) et la couche physique gère comme il faut la communication entre deux périphériques. Regarde le câblage d'une CM en Z87.
En haut à gauche tu as les lignes PCI-Express 3.0 qui sont effectivement reliées au CPU directement. Mais le processeur est ensuite relié au Z87 qui gère le Sata. Si on pousse un peu plus loin, on peut voir qu'on tape dans le Hub Pci-express qui rajoute deux ports Sata via le contrôleur Maxwell (d'où des perfs inférieures pour ces deux ports). Mais il faut bien comprendre que le processeur est en quelque sorte "invisible" pour la donnée, même s'il dédie une partie de sa puissance au transfert. Tu remarqueras aussi que dans le cas d'une architecture en SLI, les deux CG communiquent directement en *16 *8 via un switch PCI-Express (en fait ça donne du *8 *8 puisque la ligne tout en haut, en SLI, devient *8 et non pas *16, vu que la ligne reliée par le switch est une *8, d'où un SLI *8 *8). Cela permet de libérer le processeur lors d'un SLI et d'utiliser autant de processeur que lors d'une seule carte (en théorie, car en pratique, les cartes calculant plus vite, elles utiliseront plus de données). Tu peux aussi voir que la RAM (Dimm) est directement sur le proc. Donc la donnée de la RAM est très proche de celle des cartes.
Du coup je dirais que ça donne plus, RAM > VRAM ou HDD > VRAM, et ensuite c'est le norme PCI-Express qui se charge du reste.
Je vais partir sur des hypothèses du coup, mais pour charger en mémoire il faut connaître l'adressage de la mémoire. Si tu fais CPU > VRAM alors il faudrait que le CPU connaisse l'adressage de toutes les CG qu'on lui donne, ce qui n'est pas le cas, trop compliqué. Je verrais plus quelque chose comme CPU > controleur CG > VRAM ou plutot CPU > GPU > VRAM, l'impact sur le GPU sera minime car c'est une architecture ultra parallélisée et chaque extrémité connaît son propre adressage.
Edit : j'ai pas parlé du flux vidéo. Il faut comprendre que le flux vidéo est totalement autre chose, c'est ce qui va du GPU aux sorties vidéos, donc oui c'est d'un autre côté.
Marsh Posté le 13-10-2015 à 11:20:31
Golbam a écrit : Tu peux aussi voir que la RAM (Dimm) est directement sur le proc. Donc la donnée de la RAM est très proche de celle des cartes. |
Je quote cette phrase pour ma culture perso
On voit bien la flèche CPU <-> RAM, mais il y a aussi une flèche RAM <-> Chipset Z87.
Perso ça me perturbe un chouilla, est-ce que ça signifie que sur une carte non Z87, la flèche pour le chipset disparait, étant donné que c'est le CPU qui importe ?
Sur un autre topic où il me semble que tu es intervenu, j'ai pu voir que sur une carte mère H81, malgré le support de la 1600Mhz par ce chipset, le fait d'avoir un CPU qui ne supportait pas au dessus de la 1333 Mhz, la ram ne pouvait pas fonctionner plus haut.
J'en déduis que la fameuse flèche qui fait discrètement le tour de ton schéma de cablage n'est pas présente sur le H81, ou alors j'me gourre ?
Marsh Posté le 13-10-2015 à 11:47:58
artouillassse a écrit : |
Pour te répondre et parce que c'est toi : j'en sais rien Tu poses des questions comme si je câblais les CM wesh allo quoi.
Enfin un peu quand même : Intel établit le support. Si Intel dit 1333 Mhz max sur son chipset/processeur alors tu n'auras pas plus en terme de support "sûr". Là d'après ce que j'ai pu voir sur google, le H81 supporte le 1600 Mhz. Après t'as plein d'éléments à côté, s'il a pas assez alimenté sa RAM il ne montera pas en fréquence, si ses timing sont trop bas, pareil. Je pense pas qu'on puisse conclure par rapport à un seul cas spécial. Le constructeur de la CM peut faire ce qu'il veut aussi, amplifier les signaux, les diminuer, faire un truc sale. Surtout les cartes "bas de gamme", personne ne regarde ça en temps normal...
Marsh Posté le 13-10-2015 à 11:58:46
Golbam a écrit : Pour te répondre et parce que c'est toi : j'en sais rien Tu poses des questions comme si je câblais les CM wesh allo quoi. |
Nabilla sors de ce corp, non mais allo quoi !
Sinon merci pour l'expligaston.
Marsh Posté le 13-10-2015 à 12:50:23
Ce que je vois sur le schéma de cette CM c'est que le proc est directement relié aux ports PCI-E.
En fait il faudrait plutôt le schéma d'une carte graphique pour comprendre en détail son fonctionnement
Je suppose que le signal arrive par le port PCI-E, arrive dans la VRAM, est interprété par le GPU (l'échange se faisant plus ou moins rapidement en fonction de la fréquence et de la taille du bus) qui est ensuite transformé en signal vidéo compréhensible par l'écran (via hdmi/display & cie).
Marsh Posté le 13-10-2015 à 14:32:31
the_skwi a écrit : |
La donnée + instruction arrive dans le port PCI-E (pas le choix de toute manière), va vers le GPU probablement qui attribue la mémoire, est stocké en mémoire. Les instructions sont exécutées par le GPU qui pioche de temps en temps dans la mémoire pour créer l'image et l'image est ensuite envoyé sous forme numérique (plus analogique car il n'y a plus de VGA ni sur les CM depuis le Z170, ni sur les CG) vers l'écran.
Marsh Posté le 13-10-2015 à 14:58:26
Pour en revenir au sujet initial, plus le bus est large, plus sa capacité pour échanger avec la VRAM est importante. Mais il y a un moment où ce n'est plus utile car le GPU n'aura jamais besoin d'utiliser tous les canaux du bus pour récupérer la quantité d'information dont il a besoin.
Finalement on retombe sur ce qu'a dit Crashdent dès le début, ça ne sert à rien de comparer les débits/bus des différentes générations car l'archi est différente et les échanges entre le GPU et la VRAM ne sont pas optimisé de la même manière.
Merci pour vos réponses en tout cas, je comprends mieux les mécanismes.
Marsh Posté le 10-10-2015 à 20:46:03
Bonjour,
Je me pose une question au niveau des caractéristiques des cartes graphiques, en particulier au niveau de la taille du bus.
Je voulais comparer ma CG actuelle GTX 570 avec la GTX 970:
http://www.geforce.com/hardware/de [...] ifications
http://www.geforce.com/hardware/de [...] ifications
GTX 570 Memory Specs
Memory Clock 1900 MHz (3800 data rate)
Standard Memory Config 1280
Memory Interface GDDR5
Memory Interface Width 320-bit
Memory Bandwidth (GB/sec) 152.0
GTX 970 Memory Specs:
Memory Clock 7.0 Gbps
Standard Memory Config 4 GB
Memory Interface GDDR5
Memory Interface Width 256-bit
Memory Bandwidth (GB/sec) 224
Je me demandais simplement si la taille de l'interface sur la GTX 570 était vraiment utile/bien dimensionné. Si j'ai bien compris, la taille de ce bus correspond au nombre de "canaux" qui sont disponibles pour échanger avec la RAM de la CG.
Quelle est la "formule" pour mettre en relation la fréquence, le débit, la taille du bus pour saturer la RAM?
Merci par avance