Generelle Fragen zum Thema Ram und Grafikkartenspeicher

Kleebl00d

PC-Selbstbauer(in)
Hallo Leute,

heute richte ich mich mal an die technisch versierteren unter euch.
Ich habe da 2 Fragen:

1.: Grafikkarten haben ja immer eine bestimmte Breite der Anbindung an den Speicher (128 Bit, 192 Bit, 256 Bit,...).
Wie sieht das da bei Prozessoren, gerade mit integrierter Grafik, aus?
Mal ganz Laienhaft: hat ein 64 Bit-Prozessor eine 64 Bit breite Speicheranbindung?
Und wenn ja, was passiert dann bei Dual-, Tri- bzw. Quadchannel-Speicher?

2.: Warum profitieren Grafikchips von Speicher, der höher taktet als der Chip selber?
Kann der Chip bzw. die einzelnen Ausführungseinheiten, während eines Cycles, Daten in den Speicher schreiben bzw. daraus lesen?
Wobei die ja eigentlich während eines Arbeitszyklus einfach nur eine Operation abarbeiten und dann die nächste Operation zugeteilt bekommen und diese abarbeiten, oder?

Vielen Dank, ich hoffe, die Fragen sind nicht zu einfältig ^^
 
1.: Grafikkarten haben ja immer eine bestimmte Breite der Anbindung an den Speicher (128 Bit, 192 Bit, 256 Bit,...).
Wie sieht das da bei Prozessoren, gerade mit integrierter Grafik, aus?

Diese benutzen den normalen RAM und dessen übliche Bandbreite. Das ist nicht direkt vergleichbar. IGPUs profitieren daher aber recht stark von schnellem RAM.

Mal ganz Laienhaft: hat ein 64 Bit-Prozessor eine 64 Bit breite Speicheranbindung?
Und wenn ja, was passiert dann bei Dual-, Tri- bzw. Quadchannel-Speicher?

Nein, das 64bit bei CPUs hat absolut nichts mit der Speicherbandbreite zu tun, es bezeichnet den Adressraum (genauer: die Wortbreite, eine 64bit-CPU kann theoretisch 8 Byte pro Takt verarbeiten, am besten liest du den Wiki-Artikel dazu:https://de.wikipedia.org/wiki/64-Bit-Architektur), keine Bandbreite oder Verbindung.
Dual, Tri und Quadchennel bedeutet schlicht, dass der Speichercontroller der CPU 2, 3 oder 4 RAM-Bänke gleichzeitig ansprechen kann was theoretisch die Bandbreite verdoppelt bis vervierfacht - mehr nicht.

2.: Warum profitieren Grafikchips von Speicher, der höher taktet als der Chip selber?
Kann der Chip bzw. die einzelnen Ausführungseinheiten, während eines Cycles, Daten in den Speicher schreiben bzw. daraus lesen?
Wobei die ja eigentlich während eines Arbeitszyklus einfach nur eine Operation abarbeiten und dann die nächste Operation zugeteilt bekommen und diese abarbeiten, oder?

Du unterliegst dem Irrtum, dass jede Operation zwangsläufig daten aus dem vRAM benötigen würde und dass GPU und RAM Synchron laufen müssten, dem ist nicht so ;-)
Der RAM ist im Vergleich zur GPU (und auch zu CPUs) sehr langsam - das darfst du nicht am Takt ablesen (denn nicht bei jedem Taktschritt kann RAM Daten liefern... dazwischen gibts Latenzen)! Die allermeiste Zeit ist die GPU damit beschäftigt, interne Rechenoperationen im Chip und dessen Cache selbst durchzuführen ohne dass der RAM davon irgendwas wüsste. Auf dieser Ebene gesehen brauchts nur hier und da mal neue Rohdaten aus dem RAM die dann wieder aufwendig verwurschtelt werden.

Ich weiß nicht wirklich wie man das anschaulich beschreiben soll aber ich versuchs mal mit dem Künstler (=GPU), der Bilder auf ne Leinwand malen soll. Alles was der Kerl kann, die Technik wie er malt sozusagen, macht die GPU. Aus dem RAM (seinem Schrank) braucht er nur alle paar Tage ne neue Leinwand, nen zettel wo draufsteht was er malen soll und alle paar Stunden mal nen neuen Pinsel und Farbe. Die allermeiste zeit ist er schlicht mit arbeiten beschäftigt und kann den Schrank zu lassen. So verhält es sich bei Grafikkarten prinzipiell auch.
Wenn du jetzt den RAM übertaktest bedeutet das schlicht, dass die Schranktüren schneller auf gehen oder die Post beim Farbe liefern etwas schneller da ist was den Gesamtprozess natürlich beschleunigen kann (aber nicht muss - wenn die Post/Schrank eh schnell genug ist dass der maler immer genug Farbe hat bringt auch schnellerer RAM keine Mehrleistung mehr).
 
Zuletzt bearbeitet:
2.: Warum profitieren Grafikchips von Speicher, der höher taktet als der Chip selber?

Incredible Alk hat es schon recht gut erklärt. Ich wollte dazu noch sagen, dass Du hier einem sehr oft gemachtem Anfängerdenkfehler unterliegst. Ein höherer Takt sollte niemals pauschal mit einer höheren effektiven Geschwindigkeit gleichgesetzt werden, schon gar nicht technik- oder architekturübergreifend. Was auch sehr gerne falsch gemacht wird ist die GPU Leistung über AMDs Steam-Prozessoren und NVIDIAs CUDA Cores anhand ihrer Menge zu vergleichen.

Simples Beispiel was es ganz grob verdeutlichen soll: LKWs haben oft mehr als 500PS, schaffen aber nichtmal ansatzweise 200 km/h wie viele PKW mit weit weniger Leistung.
 
so, ich hoffe, auf diese nachricht reagiert noch jemand, ich versuchs einfach mal:
Danke, aber das Geschriebene war mir im Großen und Ganzen bekannt, bis auf die von mir gestellten Fragen :)

Was ich bei der 'GPU-Speicher-Takt gegen Chip-Takt' eigentlich meinte war folgendes:
Wenn z.B. die GPU mit 800 MHz taktet, der Ram jedoch mit 2500 MHz, wie kann die GPU den Speicher dann überhaupt richtig nutzen?
Sagen wir, die GPU beginnt zu rechnen, und das tut sie auch während der nächsten 1,25 ns, oder?
Aber währenddessen hat der Speicher alle 0,4 ns einen Takt'durchlauf', in dem die GPU doch aber rechnet und davon garnichts mitbekommt, oder?
Oder gibt rechnen die einzelnen Shader ein bisschen versetzt? Das heißt doch dann aber auch, dass ein deutlich höherer Referenztakt von Nöten ist, oder?

Vielen Dank für Antworten :)
 
so, ich hoffe, auf diese nachricht reagiert noch jemand
Hey, es gibt uns immer noch :ugly:

Was ich bei der 'GPU-Speicher-Takt gegen Chip-Takt' eigentlich meinte war folgendes:
Wenn z.B. die GPU mit 800 MHz taktet, der Ram jedoch mit 2500 MHz, wie kann die GPU den Speicher dann überhaupt richtig nutzen?
Sagen wir, die GPU beginnt zu rechnen, und das tut sie auch während der nächsten 1,25 ns, oder?
Aber währenddessen hat der Speicher alle 0,4 ns einen Takt'durchlauf', in dem die GPU doch aber rechnet und davon garnichts mitbekommt, oder?

Das ist leider alles viel zu "unkompliziert" gedacht^^

Du siehst die GPU als einen Block mit 800 MHz und den Speicher als einen Block mit 2500MHz und eine Verbindung dazwischen.
Da das asynchron ist hast du recht damit dass das kaum funktionioren würde.

Die Realität ist aber ungleich komplizierter - beispielsweise besteht die GPU aus tausenden von Untereinheiten die alle gleichzeitig verschiedene Aufgaben erledigen und entsprechend alle zu unterschiedlichen Zeitpunkten Daten aus dem RAM verlangen können (was der Speichercontroller der GPU verwaltet und optimiert). Dann gibt es innerhalb der GPU viele kleine superschnelle Zwischenspeicher (Caches), die kleine Datenpakete vorhalten, als Puffer anfordern können wenn sie wahrscheinlich gleich benötigt werden (prefetching) und vieles mehr. Da sind so viele Prozesse gleichzeitig am laufen dass man auf die Synchronität zwischen Hauptgputakt und RAMTakt pfeifen kann.

Ums nochmal deutlicher zu machen ein fiktives übertragenes Beispiel:

Angenommen du hast nen riesen automatischen Aktenschrank (=RAM) der 2500x pro Sekunde je eine Akte herausgeben kann.
Im Raum davor sitzen 500 Angestellte (=Shadereinheiten) die Akten abarbeiten.

Da die Arbeit aller Angestellten immer ein wenig unterschiedlich ist (es machen ja nicht alle exakt das gleiche) werden immer wild durcheinander irgendwelche Akten von den Leuten die gerade mit einer Akte fertig sind verlangt werden die der Aktenschrank dann möglichst schnell bereitstellen muss.

Je schneller/mehr der Schrank leisten kann desto schneller kommen die Angestellten an ihre Akten (bis er irgendwann so schnell ist dass alle immer beschäftigt sind, dann wird die Karte durch mehr RAM-Takt nicht mehr schneller ;-)). Es ist einfach nicht nötig das synchron zu machen wie du feststellst. Zur Not hat auch jeder Angestellte noch eine Ablage auf dem Schreibtisch wo er sich mal 2 oder 3 gleichzeitig aus dem Schrank holen und auf seinem Tisch zwischenlagern kann (=Cache ;-)), was das Problem nochmals entschärft.

Ich hoffe das war ausreichend anschaulich :D
 
Zurück