Nicht ganz Lübke, 5D nennt man auch "Vektorshader", 1D hingegen "Skalarshader". Wer in Mathe aufgepasst hat weiß, dass ein Vektor aus mehreren Skalaren(=Zahlen) besteht. Sobald man mit diesem Vektor rechnet, muss eine Operation auf alle Skalare angewendet werden. Betonung auf "eine". Auf die bis zu 5 Werte im Register des Shaders einer aktuellen ATi-GPU wird also stehts dieselbe Operation angewendet. IT-Fachausdruck dazu: SIMD - Single Instruction (with) Multiple Data.
Krux: hat man zu einer anstehenden Operation nur ein Datenwert, bleibt der Rest des Registers leer. Und selten finden sich gleich 5 Werte an, die mit der gleichen Operation behandelt werden wollen. Durch Caching, Prefetching und Reorg der eingehenden Shaderrequests kann der Treiber versuchen, seine Vektorshader möglichst gut auszulasten. Als Faustregel kann man annehmen, dass sich im Mittel vielleicht so 2-3 Werte im Shaderregister einfinden. Ausnahme: streng monotone Algorithmen wie Encoding oder aber auch sowas wie Furmark, wo wenige Operationen auf Unmengen von Daten ausgeführt werden.
Hat man nur Skalarshader, kann man sich einiges an treiberseitiger Shaderoptimierung sparen, da man hier dieses Auslastungsproblem nicht hat.
Zurück zum Thema: dann hätte der neue R8xx-Chip ja ein 192er Interface, wenn wir beim RV870 von einer Dual-Chip-GPU ausgehen...
Krux: hat man zu einer anstehenden Operation nur ein Datenwert, bleibt der Rest des Registers leer. Und selten finden sich gleich 5 Werte an, die mit der gleichen Operation behandelt werden wollen. Durch Caching, Prefetching und Reorg der eingehenden Shaderrequests kann der Treiber versuchen, seine Vektorshader möglichst gut auszulasten. Als Faustregel kann man annehmen, dass sich im Mittel vielleicht so 2-3 Werte im Shaderregister einfinden. Ausnahme: streng monotone Algorithmen wie Encoding oder aber auch sowas wie Furmark, wo wenige Operationen auf Unmengen von Daten ausgeführt werden.
Hat man nur Skalarshader, kann man sich einiges an treiberseitiger Shaderoptimierung sparen, da man hier dieses Auslastungsproblem nicht hat.
Zurück zum Thema: dann hätte der neue R8xx-Chip ja ein 192er Interface, wenn wir beim RV870 von einer Dual-Chip-GPU ausgehen...
Zuletzt bearbeitet:
(Instruction, not Operation in SIMD...)