Grafikkarten Speicher

Hallo,
angenommen man spielt auf der Auflösung 1280x1024. Dann macht das
1310720 px
Dazu eine Farbtiefe von 32 bit/px:
41943040 bit
Jetzt schaltet man noch 4x Anti-Aliasing an. Also wird das Bild in beide Richtung viermal größer berechnet (x16 im Gesamten):
671088640 bit = 83886080 byte = 81920 kbyte = 80MB
Stimmt es also, dass pro Frame also ein 80MB großes Bild bei diesen Enstellungen im Grafikspeicher abgelegt werden muss?
Bei einem 128MB großen Speicher würden dann nur noch 48MB für Texturen etc. übrig bleiben. Dann ist es doch wenn man auf solchen Einstellungen spielen will besser man wählt eine Karte mit 256MB statt 128MB oder?
Ich schwanke da nämlich zwischen einer
6600GT mit 256MB [email protected] (xfx)
und einer
6800XT mit 128MB DDR@700MHz (asus)

Der Chip der 6800xt ist sicherlich besser als 6600gt. Aber mit weniger und auch noch langsamerem Speicher bestückt. Wirkt sich das dann nicht wiederrum negativ aus?

Gruß,
Ulrich

hi Ulrich,

Ich schwanke da nämlich zwischen einer
6600GT mit 256MB [email protected] (xfx)
und einer 6800XT mit 128MB DDR@700MHz (asus)

All die Berechnungen sind Sinnlos, wenn man in Erwägung zieht, dass eine 6600 GT einfach zu langsam ist um so grosse Texturen mit hoher AA-Einstellung noch flüssig darzustellen. Billig GPU´s werden nur durch viel Speicher „aufgewertet“ damit unbetagte einen Grund zu haben glauben diese zu kaufen.

Der Chip der 6800xt ist sicherlich besser als 6600gt. Aber mit
weniger und auch noch langsamerem Speicher bestückt. Wirkt
sich das dann nicht wiederrum negativ aus?

Zusätzlicher Speicher auf Grafikkarten bringt nur etwas, wenn er auch genutzt wird. 256 mb Versionen mit derselben GPU sind zumeisst langsamer als 128 mb Versionen. Weil der Verwaltungsaufwand grösser ist. Das ändert sich erst bei höheren Auflösungen ÜBER 1280 x 1024.

Bei GPU´s in dieser Preisklasse würd ich nicht auf die Menge des Speichers sehen sondern die Geschwindigkeit der Grafikkarten vergleichen und zwar bei den Spielen die ich spiele.

Zusätzlich wirkt sich die Speicheranbindung sehr stark aus. Dies wird in Bit angegeben. 256-Bit sollten es sein… 128-Bit sind Billigkarten. Beachte, dass es sich dabei um die Geschwindigkeit der Anbindung des Grafikkartenspeichers zur GPU handelt und nicht um die Menge des Speichers.

Webseiten gibts genug:
http://www.firingsquad.com
http://www.tomshardware.de oder .com
http://hardtecs4u.de
http://www.computerbase.de
sind nur einige wenige davon.

lg,
fred

Moien

angenommen man spielt auf der Auflösung 1280x1024. Dann macht
das
1310720 px
Dazu eine Farbtiefe von 32 bit/px:
41943040 bit

Ja, so gross muss der RAMDAC sein. Aber das was als „Speicher“ der Graka bezeichnet wird hat damit nix zu tun. Die Graka muss das gesamte Bild gar nicht speichern.

Die Grösse des RAMDAC nirgends explizit genannt. Man kann sie sich aber aus der maximalen Auflösung (und der Farbtiefe) die die Karte produzieren kann errechenen.

Jetzt schaltet man noch 4x Anti-Aliasing an. Also wird das
Bild in beide Richtung viermal größer berechnet (x16 im
Gesamten):

Auch da muss die Graka das Bild nicht speichern. Die cachen nur 2-3 Zeilen, mehr nicht. (Wieso sollte man auch das ganze Bild 4x rechnen und erst danach die endgültigen Werte berechnen ? Man kann doch auch die 4 Subpixel aus denen ein Pixel rechnen, die 3 die man nochmal braucht cachen und den Rest wegschmeissen)

cu

Mahlzeit!

angenommen man spielt auf der Auflösung 1280x1024. Dann macht
das
1310720 px
Dazu eine Farbtiefe von 32 bit/px:
41943040 bit

Ja, so gross muss der RAMDAC sein. Aber das was als „Speicher“
der Graka bezeichnet wird hat damit nix zu tun. Die Graka muss
das gesamte Bild gar nicht speichern.

http://de.wikipedia.org/wiki/RAMDAC
Lesen bildet.

Die Grösse des RAMDAC nirgends explizit genannt. Man kann sie
sich aber aus der maximalen Auflösung (und der Farbtiefe) die
die Karte produzieren kann errechenen.

Falscher geht es nicht mehr. Das Ding heißt "RAM"DAC, weil da
in der Regel noch eine LUT (Look Up Table) drin aber sonst gar
nichts. Das Bild wird natürlich im Speicher der Graka gehalten und
bei diesen Dingern ohne Speicher sogar im Haupspeicher des Rechners
und von dort mit Pixelfrequenz mal Pixeltiefe zyklisch gelesen.

Jetzt schaltet man noch 4x Anti-Aliasing an. Also wird das
Bild in beide Richtung viermal größer berechnet (x16 im
Gesamten):

Auch da muss die Graka das Bild nicht speichern. Die cachen
nur 2-3 Zeilen, mehr nicht. (Wieso sollte man auch das ganze
Bild 4x rechnen und erst danach die endgültigen Werte
berechnen ? Man kann doch auch die 4 Subpixel aus denen ein
Pixel rechnen, die 3 die man nochmal braucht cachen und den
Rest wegschmeissen)

Woher weißt du denn vorher welche 3 du nochmal brauchst. Das Bild
wird nicht von links nach rechts von oben nach unten berechnet,
sonder so wie das Prgramm es am praktischsten findet.

Gruß
Stefan

1 Like

Hallo Ulrich,

angenommen man spielt auf der Auflösung 1280x1024. Dann macht
das
1310720 px
Dazu eine Farbtiefe von 32 bit/px:
41943040 bit
Jetzt schaltet man noch 4x Anti-Aliasing an. Also wird das
Bild in beide Richtung viermal größer berechnet (x16 im
Gesamten):
671088640 bit = 83886080 byte = 81920 kbyte = 80MB
Stimmt es also, dass pro Frame also ein 80MB großes Bild bei
diesen Enstellungen im Grafikspeicher abgelegt werden muss?

Muß nicht, könnte aber. Das hängt davon ab wie Anti-Aliasing auf der
Karte implementiert ist. Meistens wird während des Zeichnens schon
auf eine kleinere Auflösung skaliert, nicht zwingend direkt zur
ausgegebenen Auflösung.

Das qualitativ beste währe natürlich wenn die Karte es so macht wie
du beschreibst aber ich wage dies zu bezweifeln.
Bei 80Hz benötigst du dann allein für den Bildaufbau 6,4GByte/s
Bandbreite zum Graka RAM.

Bei einem 128MB großen Speicher würden dann nur noch 48MB für
Texturen etc. übrig bleiben.

s.o. ich denke es bleibt mehr über.

Der Chip der 6800xt ist sicherlich besser als 6600gt. Aber mit
weniger und auch noch langsamerem Speicher bestückt. Wirkt
sich das dann nicht wiederrum negativ aus?

Das hängt vom Spiel ab.

Gruß
Stefan

Hallo Fred,

All die Berechnungen sind Sinnlos, wenn man in Erwägung zieht,
dass eine 6600 GT einfach zu langsam ist um so grosse Texturen
mit hoher AA-Einstellung noch flüssig darzustellen.

Wäre die 6800XT denn dazu in der lage? In Benchmarks schneidet einen einach 6800 immer besser ab, allerdings ist da die Speicherverteilung halt genau anders rum, wobei die 6800 immer etwas langsamer getaktet war als 6600GT.

Zusätzlicher Speicher auf Grafikkarten bringt nur etwas, wenn
er auch genutzt wird. 256 mb Versionen mit derselben GPU sind
zumeisst langsamer als 128 mb Versionen. Weil der
Verwaltungsaufwand grösser ist. Das ändert sich erst bei
höheren Auflösungen ÜBER 1280 x 1024.

Na wenn das so ist, mein TFT geht eh nicht über 1280…

Bei GPU´s in dieser Preisklasse würd ich nicht auf die Menge
des Speichers sehen sondern die Geschwindigkeit der
Grafikkarten vergleichen und zwar bei den Spielen die ich
spiele.

Vermutlich ist das doch bei den meisten Spielen sehr ähnlich, außer wenn sie sehr stark auf Shaderberechnung etc. optimiert sind.

Zusätzlich wirkt sich die Speicheranbindung sehr stark aus.
Dies wird in Bit angegeben. 256-Bit sollten es sein… 128-Bit
sind Billigkarten. Beachte, dass es sich dabei um die
Geschwindigkeit der Anbindung des Grafikkartenspeichers zur
GPU handelt und nicht um die Menge des Speichers.

Das ist natürlich ein Argument. Die 6600GT hatte nur 128-Bit, die andere hingegen 256.

Webseiten gibts genug:
http://www.firingsquad.com
http://www.tomshardware.de oder .com
http://hardtecs4u.de
http://www.computerbase.de

Ich habe bei Google etc. und diversen Seiten leider vergeblich nach einem Bench gesucht, der 6800(XT)-128 mit 6600GT-256 vergleicht.
Gruß,
Ulrich

Hallo,

Woher weißt du denn vorher welche 3 du nochmal brauchst. Das Bild
wird nicht von links nach rechts von oben nach unten berechnet,
sonder so wie das Prgramm es am praktischsten findet.

Wie funktioniert denn dann so in etwa so eine Berechnung, schließlich schreibst Du auch weiter oben, dass nicht alles (80MB) gespeichert wird. Das kam mir im Übrigen auch ausgesprochen viel vor…
Gruß,
Ulrich

Hallo!

Wie funktioniert denn dann so in etwa so eine Berechnung,
schließlich schreibst Du auch weiter oben, dass nicht alles
(80MB) gespeichert wird. Das kam mir im Übrigen auch
ausgesprochen viel vor…

Wenn dich die interne Signalverarbeitung der Grafikkarten so ausgesprochen interessiert, dann würde ich dir ans Herz legen, mal im Forum von http://www.3dcenter.org zu fragen, wo die echten Nerds auf dem Gebiet rumhängen. :smile:
Die Materie ist nämlich nicht so einfach, dass es mit 3 Worten zu erklären wäre. Im Gegenteil, das ist alles außerordentlich komplex. Es fängt schon damit an, dass eine Grafikkarte das Bild keinesfalls in einem Rutsch berechnet, sondern in mehreren Layern (meist 4 oder 5), die erst zum Schluss übereinandergelegt werden und ein fertiges Bild ergeben. Sogar die Beleuchtung und der Schattenwurf kann per separater Bildebene erzeugt werden. Auf der anderen Seite gibt es wieder ausgeklügelte Kompressionsmechanismen, die die Bilddaten quasi „zippen“, bevor sie in den Speicher wandern und es werden auch nicht alle Bildbereiche immer berechnet und gespeichert, was wiederum Transferkapazität und Grafikspeicher spart. Die Grafikkarte schaut bei der 3D-Berechnung oft erst einmal nach, welche Elemente im fertigen Bild im Hintergrund liegen würden und texturiert diese gar nicht mit. Trotzdem können schon viele Daten oftmals in den Grafikspeicher verschoben und wieder zurückgeladen werden, bis mal ein fertiges Bild entsteht. Wenn eine Grafikkarte gemäß deiner Theorie mit jedem Arbeitstakt ein fertiges Bild erzeugen würde, müsste ich ja mit meiner Radeon X800XT-PE eine Framerate von fast 600 fps erreichen. Ich bin dagegen bei einigen Spielen schon froh, wenn ich konstant über 30 Bildern pro Sekunde bleibe (ohne AA)… :smiley:

LG Jesse

Hallo.

Wenn dich die interne Signalverarbeitung der Grafikkarten so
ausgesprochen interessiert, dann würde ich dir ans Herz legen,
mal im Forum von http://www.3dcenter.org zu fragen, wo die
echten Nerds auf dem Gebiet rumhängen. :smile:

OK!

Wenn eine Grafikkarte gemäß deiner Theorie mit jedem
Arbeitstakt ein fertiges Bild erzeugen würde, müsste ich ja
mit meiner Radeon X800XT-PE eine Framerate von fast 600 fps
erreichen. Ich bin dagegen bei einigen Spielen schon froh,
wenn ich konstant über 30 Bildern pro Sekunde bleibe (ohne

Ich wusste gar nicht, dass ich diese Theorie hatte. Wenn die Graka bei jedem Takt etwas erzeugt wären dass doch eher noch mehr oder hat die nur 600Hz? Ist ja auch egal, da es eh nicht stimmt.
Gruß,
Ulrich

Ich wusste gar nicht, dass ich diese Theorie hatte. Wenn die
Graka bei jedem Takt etwas erzeugt wären dass doch eher noch
mehr oder hat die nur 600Hz?

Ja, ich takte sie mit dem ATI Tool soweit herunter, um Strom zu sparen. Nee. Okay, ich kann nicht rechnen - du hast mich erwischt. :smile:

Es kam mir halt so vor, da du meintest, dass alle Bilddaten (Geometriedaten + die fertig gerenderten Texturen) gleichzeitig in den Speicher der Grafikkarte passen müssen. Sorry für die Unterstellung.

Gruß Jesse

Hallo,

Es kam mir halt so vor, da du meintest, dass alle Bilddaten
(Geometriedaten + die fertig gerenderten Texturen)
gleichzeitig in den Speicher der Grafikkarte passen müssen.
Sorry für die Unterstellung.

Nene schon ok, hatte ich ja auch gemeint aber eben nicht, dass dies ständig neu berechnet wird. Also ich meinte z.B. dass die Grafikkarte x Millisekunden lang rendert und das Ergebniss dabei nach und nach im Speicher landet und das fertige Bild dann 80MB beansprucht.
Gruß,
Ulrich

Ich schwanke da nämlich zwischen einer
6600GT mit 256MB [email protected] (xfx)
und einer
6800XT mit 128MB DDR@700MHz (asus)

Da ich mich schon weiter hinten eingemischt hab, will ich es nun auch bei der Ursprungsfrage tun. Was willst du denn überhaupt mit einer dieser beiden Karten mit 4xAA spielen? Aktuelle Spiele laufen auf diesen Karten ja nicht mal mehr unter 1280x1024, wenn du völlig auf AA verzichtest. Und das hat gar nix mit der Größe des Grafikspeichers zu tun.

Der Chip der 6800xt ist sicherlich besser als 6600gt.

Die 6800 XT ist eine extrem abgespeckte GF6800 - Karte, die statt 16 nur 8 Pipelines hat und regulär eigentlich mit 600 MHz Speichertakt läuft. Eine echte GF 6800 mit 16 Pixelpipelines sollt die 6600 GT wegen der doppelten Renderleistung und breiteren Speicheranbindung trotz des viel geringeren Taktes eigentlich in den meisten Anwendungen schlagen. Die abgespeckte 6800 XT oder LE mit 8 Pipelines ist der GF6600 GT auch chipmäßig nicht mehr überlegen und hat nur noch das 256bittige Speicherinterface auf der Habenseite. Das reicht aber nicht, um die viel höher getaktete GF6600 GT zu schlagen.

Aber mit
weniger und auch noch langsamerem Speicher bestückt. Wirkt
sich das dann nicht wiederrum negativ aus?

Wichtiger als der Speichertakt ist auf jeden Fall die Busbreite, mit welcher der Speicher angebunden ist. Bei einer GF6800 ist diese doppelt zu groß (256bit) wie bei einer GF6600 GT, so das - stark vereinfacht - eine GF6600 schon mit 1400 MHz Speichertakt laufen müsste, um einer GF6800 mit 700 MHz Speichertakt Paroli bieten zu können.
Da aber die Rechenleistung des Chips bis zu einer gewissen Texturgröße mehr limitiert, als das Speicherinterface, kommt eine abgespeckte GF6800 XT gegen die mit gleicher Anzahl paralleler Rendereinheiten ausgestattete, aber zusätzlich chipseitig höher getaktete GF6600 GT nicht an. Eine GF 6800 oder gar die höher getaktete GF 6800 GT macht die GF 6600 GT dagegen wegen der doppelten Renderleistung quasi in jeder Lebenslage platt.

Ob der kleinere Speicher was ausmacht, hängt vom Computerspiel und der gewählten Qualtiätseinstellung ab. Ich würde mal fast zu behaupten wagen, dass weder auf einer 6800 XT/ LE noch auf einer 6600 GT mehr als 128 MB Grafikspeicher Sinn machen, weil entsprechend aufwändige Spiele bzw. entsprechend hohe Qualitätseinstellungen/ AA-Modi mit den Karten nicht machbar sind.

LG Jesse

Hallo,
ich hab inzwischen auch rausgefunden, dass die 6800XT eigentlich 6800LE heißen müsste. XT hörte sich irgendwie so an, als ob die Karte etwas besser ist als 6800. Aber das stimmt ja nun nicht. Zum anderen habe ich noch die V9999 6800TD entdeckt, bei der ich vermutlich noch paar Pipes freischalten kann und somit etwas näher an die teurere 6800gt rankommen würde.
Was ich damit spielen will? Das steht noch nicht fest… Sehr moderne Spiele à la Oblivion werden es auf jeden Fall nicht.

Dann hol ich mir wahrscheinlich die V9999 für etwa 150 Euronen, da die etwas besser sein soll als die „normale“ 6800.
Gruß,
Ulrich

Dann hol ich mir wahrscheinlich die V9999 für etwa 150
Euronen, da die etwas besser sein soll als die „normale“ 6800.

AGP-Slot? Hast du was gegen ATI? Falls nicht, würd ich für 150 EUR eine Radeon X800 GTO kaufen. Die ist schon etwa auf GF6800 GT - Niveau, wenn du keine 16 Pipelines freigeschalten bekommst und in diesem Preissegment IMHO die beste Wahl. Von Club3D gibt es für ca. 150 EUR eine X800 GTO, die eigentlich wie eine X800 Pro getaktet ist (12 Pipes, 450/ 900 MHz). Das ist AFAIK die beste Wahl, weil auf der Karte 2,0 ns - Speicher verbaut ist, wie auf den normalen GTO-Karten, so dass du mit dem ATI-Tool speicherseitig auch problemlos deren 980 MHz erreichen solltest.

LG, Jesse

AGP-Slot?

Ja…

Hast du was gegen ATI?

Nein, allerdings gegen ihre Linux-Treiber. Die scheinen bei NVidia wohl sehr sehr viel besser zu sein.
Gruß,
Ulrich

Abend Ulrich!

Wie funktioniert denn dann so in etwa so eine Berechnung,
schließlich schreibst Du auch weiter oben, dass nicht alles
(80MB) gespeichert wird. Das kam mir im Übrigen auch
ausgesprochen viel vor…

Eine kurze Frage eine lange unübersichtliche Antwort, das ist
nicht ganz so einfach zu beantworten aber ich versuch es mal.

Nehmen wir an unser Monitor hätte eine Auflösung von 2*2 Pixel
(naja wir haben halt alle mal klein angefangen :smile:). Ein richtiges
4 fach anti aliasing würde ein Bild mit 8*8 nutzen und während der
Ausgabe auf den Monitor das Bild auf 2*2 scalieren.
Bandbreitentechnisch ist das natürlich der Horror und wird so auch
nicht realisiert (oder besser sehr selten), von der Qualität der
Ausgabe wäre es allerdings perfekt.

Was heißt denn anti aliasing? Das ist nichts anderes wie Pixel auch
zu färben die nicht zu mehr als 50% in der zu zeichnenden Fläche
liegen.

Lass uns ein einfaches Beispiel machen, auf unserem 2*2 Bild (mit
den Koordinaten 0,0 bis 1,1) zeichen wir eine weiße Linie von
0,0 nach 1,1 und eine blaue von 0,1 nach 1,0. Alles auf schwarzem
Hintergrund (z-buffer und so’n Zeug ignorieren wir jetzt mal), die
Linien haben beide eine Dicke von einem Pixel.

Als erstes rendern wir die weiße Linie Pixel 0,0 wird zu 100% weiß,
Pixel 1,1 wird zu 100% weiß und die Pixel 0,1 und 1,0 zu jeweils 50%,
da die Linie ja zu 50% diese Pixel abdeckt.
Wie zeichnet man nu 50% irgendwas, überlicherweise in dem man die
Ursprungsfarbe des Pixels mit der neuen Farbe wichtet. Also
Pixel 1,0 und 0,1 werden zu 128,128,128 (RGB). Nu zeichen wir die
blaue Linie, 1,0 und 0,1 werden zu blau (0,0,255) und 1,1 und 0,0
zu???
Ja, ja die sind schon weiß also (255,255,255) gewichtet mit blau
wird das dann irgendwas wie (192,192,255).
Dies funktioniert also solange prima, solange die Reihenfolge des
Zeichnens nicht geändert wird.

Ganz bescheiden wird es wenn Bereiche des Bildes nachgezeichnet werden
müssen. Eine ansatzloses Nachzeichen eines Teilbereiches ist nahezu
unmöglich (z.B. Figur bewegt sich ein bischen und nur der verdeckte
Hintergrund soll nachgezeichnet werden).

Ein echtes 8*8 Pixel Bild hätte diese Probleme nicht, da alle Pixel
nur gesetzt werden oder nicht (eine Linie z.B. mit einem simplen
Bresenham gezeichnet wird).

Ich hoffe mit ein bischen nachdenken konnte man mir folgen, ansonsten
einfach noch mal nachfragen.

Gruß
Stefan

Hallo,
so wäre es natürlich möglich, aber wird das wirklich so gemacht? Ich dachte immer das geht eher so mit Supersampling oder wie auch immer man das nennt, dass man also ein großes Bild mit den entsprechenden Filtern herunterrechnet. Nun, vielleicht habe ich mich ja auch getäuscht, allerdings hätte so AA gar keinen Einfluss mehr auf den Speicher…
Gruß,
Ulrich

Abend Ulrich!

so wäre es natürlich möglich, aber wird das wirklich so
gemacht? Ich dachte immer das geht eher so mit Supersampling
oder wie auch immer man das nennt, dass man also ein großes
Bild mit den entsprechenden Filtern herunterrechnet. Nun,
vielleicht habe ich mich ja auch getäuscht, allerdings hätte
so AA gar keinen Einfluss mehr auf den Speicher…

Ganz so ist es natürlich nicht, abhängig von dem verfügbaren Speicher
und/oder Bandbreite wird der Treiber versuchen das optimalste
für die jeweilige Situation zur Verfügung zu stellen.

Gruß
Stefan

PS: Speicher hilft bei Spielen eigentlich immer.

Hallo,

Ganz so ist es natürlich nicht,abhängig von dem verfügbaren Speicher
und/oder Bandbreite wird der Treiber versuchen das optimalste
für die jeweilige Situation zur Verfügung zu stellen.

Klinkt irgendwie logisch.
Gruß,
Ulrich

PS: Speicher hilft bei Spielen eigentlich immer.

Also doch lieber 256? Bei Benchmarks schien es mir so als wäre kein großer Unterschied (1-2 Fps) zwischen 128 und 256MB. Allerdings waren die Benchs leider schon was älter (2003). Damals hatten die Spiele vermutlich noch nicht so hoch auflösende Texturen.