GTX 970 Texelfüllrate schlechter als bei GTX 770 - Auswirkungen?

Ostfriese

Forenkasper
Registriert
Dez. 2001
Beiträge
2.387
Moin.

Soweit ich das richtig sehe ist die Texelfüllrate der GTX970 geringer als die der GTX770.

Ist dieses nur ein theoretischer Wert, der in der Praxis keine Relevanz hat?

Wie man schon feststellen konnte, ist die GTX970 (und auch die GTX980) bei 2D-Anwendungen scheinbar alles in allem langsamer als eine GTX770.

Die Texelfüllrate bezieht sich aber ja auf die 3D-Funktion der Karte, worin sie eine GTX770 und auch GTX780 ja übertrumpft.

Meine Frage:

Ist die Texelfüllrate, die den rohen Zahlen nach niedriger ist als bei einer GTX770, dank der Architektur/Effizienz der GTX970 doch gleichwertig oder gar höher?

Ich denke das kann nur von den wirklichen Experten hier beantwortet werden. Mir ist natürlich klar, dass eine GTX970 mit einer GTX770 den Boden aufwischt, wenn es um die FPS in 3D-Spielen geht (und es geht ja im Grunde bei Grakas von heute um nichts anderes) - dennoch interessiert mich dieses Detail bzgl. des Umgangs mit den Texturen.

Danke für jede sinnvolle und mich erleuchtende Info im Voraus! Genau deswegen bin ich seit 13 Jahren hier. :)
 
In der 2D Welt gibt es keine Texturen.

Was ist der Hintergrund Deiner Frage? Stell Dir vor. Die 900er Serie ist nicht nur da schlechter. Auch ihre CUDA Leistung hingt der ihrer Vorgänger hinter her. Aber ob es eine Rolle für Dein Anwendungsszenario spielt, das lässt sich in Deiner Frage nicht erkennen.
 
Die Frage ist eher eine theoretische Frage mit dem Ziel Wissen zu gewinnen, nicht ein Problem zu lösen. Daher muss ich leider sagen, dass ich die Antworten von promashup und BlubbsDE ziemlich schlecht finde.

Die Texelfüllrate beschreibt die Fähigkeit einer GPU, Pixel oder sichtbare Polygone mit Textur-Informationen zu füllen. Da dies idR. nur einen recht geringen Anteil der eigentlichen GPU-Arbeit ausmacht sondern mehr Zeit für Transformationen, Beleuchtungen, Schatten und Reflexionen aufgewendet wird, ist eine enorm hohe Texelfüllrate gar nicht notwendig. Wählt man die Texturen groß genug, so bremst die Texelfüllrate die Bildwiederholrate tatsächlich. Praktisch ist das aber ein eher unrealistisches Szenario, welches selbst diverse Texture-Mods für bekannte Spiele kaum nachbilden können. Die Rohleistung auf diesem Gebiet ist noch immer über alle Szenarien erhaben, sodass du dieses "Manko" nicht in absehbarer Zeit erleben wirst. Die nicht-texturierte 3D-Leistung wird früher zu einem Problem als die Texturen ;) (Auch weil so große Texturen so viele GB an Grafikspeicher vernichten, dass die 4GB der GTX 970 zu klein wären - oder die Shader überarbeitet werden sollten, die die Texturen anwenden)
 
Super vielen Dank für Deine mir nun einleuchtende Antwort auf meine eher theoretisch ausgerichtete Frage, SoDaTierchen. :)

:schluck:
 
Und was genau sagt Dein Text jetzt mehr aus als das, die 2D Füllrate ist irrelevant. Bei dem Level, den jede GPU heute schafft.
 
Ist die Texelfüllrate, die den rohen Zahlen nach niedriger ist als bei einer GTX770, dank der Architektur/Effizienz der GTX970 doch gleichwertig oder gar höher?
Ich weiß leider nicht, ob NVIDIA die innere Architektur der Texture-Units so überarbeitet hat, dass sie eine höhere Effizienz besitzen.

Was ist der Hintergrund Deiner Frage? Stell Dir vor. Die 900er Serie ist nicht nur da schlechter. Auch ihre CUDA Leistung hingt der ihrer Vorgänger hinter her. Aber ob es eine Rolle für Dein Anwendungsszenario spielt, das lässt sich in Deiner Frage nicht erkennen.
Es gibt keine "CUDA-Leistung" in dem Sinne . . . .

Die Texelfüllrate beschreibt die Fähigkeit einer GPU, Pixel oder sichtbare Polygone mit Textur-Informationen zu füllen

Das ist m.E. falsch. Die Texelfüllrate beschreibt wie oft die Texture-Units pro Sekunde eine Textur samplen können. Das Sampling kann an vielen verschiedenen Stellen für viele unterschiedliche Zwecke geschehen. Es kann beispielhaft nicht nur dazu dienen um im Fragmentshader einen Pixel einzufärben oder im Vertexshader den Eckpunkt eines Dreiecks gemäß einer Textur zu bewegen (Displacement-Mapping), sondern auch dafür um in CUDA oder OpenCL ein Bild per Gaussian-Blur zu glätten bzw. verschwimmen zu lassen.


Da dies idR. nur einen recht geringen Anteil der eigentlichen GPU-Arbeit ausmacht sondern mehr Zeit für Transformationen, Beleuchtungen, Schatten und Reflexionen aufgewendet wird, ist eine enorm hohe Texelfüllrate gar nicht notwendig.

Das ist auch irgendwo falsch. Die GPU kann *gleichzeitig* mit den Textur-Units und mit den übrigen Rechenkernen wie den CUDA-Cores (ALUs FPUs, wie auch immer NVIDIAs und cos. Marketinggeblubber sie jetzt nennen mag) rechnen. Dementsprechend kosten die Zugriffe auf Texturen keine Rechenzeit der CUDA-Cores. Jedoch dienen in den Shadern Texturen relativ oft bei vielen Verfahren als "Eingangsdaten" für die Berechnungen der CUDA-Cores. Kommen die Textur-Units nicht hinterher, so bleiben auch die CUDA-Cores untätig. Ein gutes Beispiel sind die von der genannten Punkte wie Schatten oder Reflexionen. Schatten werden über Shadow-Maps erzeugt. Für sanfte Schatten muss die GPU die Shadow-Map-Textur extrem oft samplen. Dadurch ist das ganze wieder Texelfüllratenintensiv. Reflexionen werden über das Sampling von Cube-Maps erzeugt, wodurch sie auch (wenige) Texturzugriffe benötigen. Alternativ kann man Verfahren wie SSAO betrachten. Um die Umgebungsverdeckung per SSAO in einem Bild zu berechnen muss im Shader ermittelt werden, wie die Tiefenwerte um den entsprechenden Pixel aussehen. Dafür muss der Shader sehr oft eine Tiefentextur samplen. Dadurch ist SSAO beispielhaft texelfüllratenlimitiert.

Wählt man die Texturen groß genug, so bremst die Texelfüllrate die Bildwiederholrate tatsächlich. Praktisch ist das aber ein eher unrealistisches Szenario, welches selbst diverse Texture-Mods für bekannte Spiele kaum nachbilden können.

Das ist wieder falsch. Die Texturauflösung ist unabhängig von derjenigen Texelfüllrate, welche man benötigt um sie zu zeichnen. Die benötigte Texelfüllrate ist primär abhängig von:
-Der Zahl der Texturzugriffe im Shader. So brauchen qualitativ hochwertige Shader in der Regel mehr Texturzugriffe.
-Die Qualität der Interpolation des Texturzugriffs: Nearest billiger als linear, linear billiger als triliniar, trilinear billiger als anisotrop
-Die Genauigkeit des Datentyps der Textur: FP32-Texturen sind teurer als FP16-Texturen, welche wieder teuer als INT8-Texturen sind.
-Der Zahl der Kanäle der Textur: Eine vierkanälige Textur kann teurer sein als eine einkanälige Textur (sogar wenn ich bei NVIDIA-Karten bei selbst geschriebenen Benchmarks keine Unterschiede gemerkt habe)
-Der Zahl der Primtive, die der Shader verarbeitet. Also Pixel oder in der Regel Vertexe, sofern man im Vertex-Shader Geometry-Shader oder Tess-Shader ebenfalls Texturzugriffe verwendet.

Ist dieses nur ein theoretischer Wert, der in der Praxis keine Relevanz hat?
Die Rohleistung auf diesem Gebiet ist noch immer über alle Szenarien erhaben, sodass du dieses "Manko" nicht in absehbarer Zeit erleben wirst.
Dann noch hierzu oder wie sich eine niedrigere Texelfüllrate allgemein auf die Performance auswirkt: Der Zeichenprozess bei Spielen ist nicht *homogen*, sonden er besteht aus einer Folge von stark unterschiedlichen Algorithmen beziehungsweise Pässen. Dadurch kann es vorkommen, dass der Shader bei einem ersten Pass gar keine Texturzugriffe tätigt, wodurch die Textur-Units untätig sind. Im nächsten Pass wird ein Shader verwendet, welcher viele Texturzugriffe tätigt. Dadurch ist die Performance in diesem Zeitraum nur durch die Texture-Units limitiert. Je nachdem wie viele texturzugriffslästige Pässe es gibt und wie viel sie von der Gesamtlaufzeit ausmachen, kann die Performance mal stärker mal weniger stark durch eine zu niedrige Texelfüllrate limitiert sein. Wie viel das genau ausmacht, ist, da Spiele extrem unterschiedlich sind, wohl von Spiel zu Spiel und von Einstellung zu Einstellung verschieden. Interessanterweise schreibt NVIDIA im GTX 980 Whitepaper dazu:
Based on efficiency and workload analysis, and math vs texture processing requirements of modern
games, NVIDIA engineers determined that eight texture units per SMM is the best architectural balancefor Maxwell therefore the total number of texture units is the same as Kepler, 128 (Anmerkung: 770 GTX meinen sie hier). However, thanks to GeForce GTX 980’s higher clocks, texture fill rate improves by 12% from one generation to the next.
Somit glauben die NVIDIA-Ingenieure, dass sie durch weniger Texture-Units und mehr übrigen Zeugs wie mehr CUDA-Cores, die Performance der GPU insgesamt in der Mehrheit der Anwendungsfälle steigern kann.

Fazit: Je nachdem wie das Spiel aufgebaut ist, könnte die GPU die Rechenleistung ihrer CUDA-Cores insgesamt etwas besser auslasten, wenn sie eine höhere Texturfüllrate hätte. Ob die GPU dadurch in Zukunft im Vergleich zu anderen GPUs deutlich schlechter wird, ist davon abhängig wie sehr sich in zukünftigen Spielen das Verhältnis zwischen Textur-Samples und Textur-Qualität zur übrigen Rechenlast ändern wird.
 
Zuletzt bearbeitet:
Auch Dir vielen Dank für die umfassende Antwort samt Richtigstellung, Nai.

Alles in allem braucht also nur eine neue Grafik-Engine auftauchen, die durch ihre Shader die Maxwells so in die Knie zwingt, dass auf einmal ein gleich getakteter Kepler aufgrund seiner höheren Texelfüllrate im Vorteil ist. (also z.B. GTX970 vs. GTX770 - sprich: GM204-200 vs. GK104-425-A2)

Sehe ich das richtig?

Wie sieht es mit Modifikationen wie "Enhanced Shaders" für z.B. Skyrim aus? Ist durch Verwendung einer solchen Mod ein Vorteil für Kepler gegeben? (Und sei es auch nur, dass sich Kepler und Maxwell von der Geschwindigkeit her näher kommen als ohne diese Mod.)
 
Alles in allem braucht also nur eine neue Grafik-Engine auftauchen, die durch ihre Shader die Maxwells so in die Knie zwingt, dass auf einmal ein gleich getakteter Kepler aufgrund seiner höheren Texelfüllrate im Vorteil ist. (also z.B. GTX970 vs. GTX770 - sprich: GM204-200 vs. GK104-425-A2)

Sehe ich das richtig?

Ja das *kann* sein. Es ist allerdings sehr schwer diesbezüglich irgendwelche Zukunftsvorhersagen zu treffen. Selbst die GPU Entwickler können das schlecht vorhersagen, weshalb sie regelmäßig ihre GPUs wie in diesem Fall etwas umbalancieren, in der Hoffnung, dass das neue Design für die meisten Anwendungsfälle besser sein wird.

Wie sieht es mit Modifikationen wie "Enhanced Shaders" für z.B. Skyrim aus? Ist durch Verwendung einer solchen Mod ein Vorteil für Kepler gegeben? (Und sei es auch nur, dass sich Kepler und Maxwell von der Geschwindigkeit her näher kommen als ohne diese Mod.)

Ohne die verbesserten und unverbesserten Shader auf eine Limitierung durch die Texture-Units untersucht zu haben, kann ich auch hier keine vernünftige Aussage treffen.
 
Zurück
Oben