Werbung
Die Turing-Architektur beherrscht mehr als die Hardwarebeschleunigung durch RT und Tensor Cores. Auch wenn der Fokus auf den neuen Funktionen wie den RTX-Effekten und dem Deep Learning Super Sampling liegt, so bieten die Turing-Shader auch noch dedizierte INT32-Recheneinheiten, eine größere und effizientere Cache-Hierarchie und optimierte Shading-Prozesse wie das Variable Rate Shading (VRS), welches in erster Umsetzung als NVIDIA Adaptive Shading (NAS) implementiert wird.
Den wohl größten Effizienzsprung machte NVIDIA durch Änderungen in der Art und Weise, wie der Rasterizer der Maxwell- und Pascal-Architektur im Vergleich zur Fermi- oder Kepler-Architektur arbeitet. Seit der ersten Maxwell Generation wendet NVIDIA das sogenannte Tile Based Rendering bzw. eine Tile Based Rasterization an. Dies setzte sich mit Pascal und Volta fort. Mit der Turing-Architektur scheint NVIDIA ebenfalls einige Verbesserungen vorgenommen zu haben, die sich durch die größeren Caches (L1 und L2) und verringerten Latenzen ergeben.
L2-Cache | |
GF100 (Fermi) | 768 kB |
GK107 (Kepler) | 256 kB |
GK104 (Kepler) | 512 kB |
GM107 (Maxwell) | 2.080 kB |
GM204 (Maxwell) | 2.048 kB |
GM200 (Maxwell) | 3.072 kB |
GP104 (Pascal) | 2.048 kB |
GP102 (Pascal) | 3.072 kB |
GP100 (Pascal) | 4.096 kB |
GV100 (Volta) | 6.144 kB |
TU102 (Turing) | 6.144 kB |
TU106 (Turing) | 4.096 kB |
TU116 (Turing) | 1.536 kB |
Das Tile Based Rendering ist keine neue Erfindung und wird auch nicht nur von NVIDIA angewendet. Imagination Technology oder ARM wenden das Tile Based Rendering bei den PowerVR- und Mali-Designs schon seit geraumer Zeit an. Das Gegenkonzept zu Tile Based Rendering ist das Immediate Mode Rendering, wie es bei AMD verwendet wird. Dabei wird der Rasterization-Prozess über den kompletten Frame angewendet, während beim Tile Based Rendering der Frame in viele kleine Tiles, also rechteckige Blöcke aufgeteilt wird.
Grundsätzlich gilt: In je mehr Kacheln (Tiles) der Frame aufgeteilt werden kann, desto effizienter kann der Rasterizer diesen abarbeiten. Viele Tiles bedeutet aber auch, dass in den Caches und Registers viele kleine Abfragen stattfinden. Der Verwaltungsaufwand der Parallelisierung wird also größer. Zu groß dürften die Kacheln jedoch nicht werden, damit die in einer Kacheln befindlichen Daten, noch in den Caches verbleiben können. Der Rasterizer bestimmt in Abhängigkeit der vorhandenen Komplexität, wie groß und damit wie viele Kacheln angewendet werden, um den Frame abzutasten.
Wie sich die Größe des L2-Caches im Verlaufe der verschiedenen Generationen und Ausbaustufen der Chips verändert hat, zeigt obige Tabelle ganz gut. Waren 768 kB beim großen GF100 auf Basis der Fermi-Architektur damals schon groß bemessen, sind wir über 3.072 kB beim großen GM200 der zweiten Maxwell-Generation nun bei 6.144 kB für die großen Ausbaustufen von Volta und Turing gelandet. Eine TU102-GPU bietet also gegenüber einer GP102-GPU einen doppelt so großen L2-Cache. Die Kacheln des TBR scheinen um den Faktor zwei bis vier größer zu sein. Der doppelt so große Cache spielt also nur teilweise eine Rolle bei der Größenzuteilung des Rasterizers. Die geringeren Latenzen des Caches spielen ebenfalls eine Rolle.
Inwieweit der nur 1.536 kB große L2-Cache der TU116-GPU auf der GeForce GTX 1660 Ti hierbei eine Rolle spielt, können wir derzeit nicht abschätzen. Im Vergleich zur TU106-GPU mit 4.096 kB hat NVIDIA diesen mit den besagten 1.536 kB in der TU116-GPU deutlich reduziert. Warum die TU116-GPU über einen im Verhältnis derart geringen L2-Cache verfügt, ist nicht bekannt.
Seit der Einführung des Tile Based Rasterization mit der Maxwell-Architektur im Februar 2014 hat sich viel getan. Für die Maxwell- und Pascal-Architektur musste sich NVIDIA einige Tricks einfallen lassen, damit das Tile Based Rendering seine Effektivität ausspielen kann. Dazu gehört ein spezieller DirectX-Code, der sich spezifisch an die Triangle-Rasterization richtet. Inzwischen ist dies anders und TBR hat sich als Methode für das Rasterization durchgesetzt.
Für den Spieler spielt es letztendlich keine Rolle, wie groß die Kacheln sind, wie der Rasterizer vorgeht und welche Cache-Größen dafür verantwortlich sind, dass die Tile Based Rasterization effektiver ablaufen kann. Aus technischer Sicht ist es aber durchaus interessant zu wissen, dass es auch beim TBR Änderungen gibt bzw. der Rasterizer auf die größeren Caches reagiert. Zu einem gewissen Teil ergeben sich daraus die Verbesserungen in der Rechenleistung auf die einzelnen Shader bezogen. TBR ist also nur ein Rad im Motor einer modernen GPU, ist aber ein wichtiger Bestandteil – auch mit der Turing-Architektur von NVIDIA.