Infinity Cache, entdecken Sie seine Nützlichkeit, Funktionsweise und Geheimnisse

Der Infinity-Cache ist der bemerkenswerteste Unterschied zwischen den kürzlich eingeführten Grafikkarten der RX 6000-Serie (RX 6800, RX 6800 XT und RX 6900) Xbox Serie X SoC GPU, ebenfalls basierend auf RDNA 2. ¿Aber was genau ist der Infinity Cache, wozu dient er und wie funktioniert er? Wir werden Ihnen alle seine Geheimnisse erzählen.

Seit den Wochen vor der Präsentation des RX 6000 wissen wir von der Existenz dieses riesigen Speicherpools in der GPU, riesig, weil wir über den größten Cache in der Geschichte der GPUs mit ungefähr sprechen 128 MB Kapazität . Aber AMD hat nicht viele Informationen darüber gegeben, es hat uns einfach über seine Existenz erzählt.

Infinity-Cache

Aus diesem Grund ist eine ausführliche Erklärung erforderlich, um zu verstehen, warum AMD in der Version seines RDNA 2 für PC einen Cache dieser Größe platziert hat.

Suchen des Infinity-Cache

Navi21 Infinity-Cache

Der erste Punkt, der notwendig ist, um zu verstehen, welche Funktion ein Teil in der Hardware hat, besteht darin, seine Funktion von seiner Position innerhalb des Systems abzuleiten.

Da RDNA 2 ist eine Weiterentwicklung von RDNA Zunächst müssen wir uns die erste Generation der aktuellen AMD-Grafikarchitektur ansehen, von der wir zwei Chips kennen, Navi 10 und Navi 14.

Wenn der Infinity-Cache in RDNA implementiert worden wäre, wäre dies der Teil, in dem Infinity Fabric des Diagramms angegeben ist. Auf der Ebene der Cache-Organisation würden wir also davon ausgehen:
Jerarquía speichert GPU-RDNA
Wenn die an den GPU-Hub angeschlossenen Beschleuniger (der Videocodec, der Display-Controller, die DMA-Laufwerke usw.) keinen direkten Zugriff auf die Caches haben, nicht einmal auf den L2-Cache.

Caches RDNA2-Diagramm

Mit dem Hinzufügen des Infinity-Cache ändern sich die Dinge bereits „ein wenig“, da die Beschleuniger nun Zugriff auf diesen Speicher haben.

Dies ist sehr wichtig, insbesondere für den Display Core Next, der für das Lesen des endgültigen Bildpuffers und dessen Übertragung an den entsprechenden Display-Port oder die entsprechende HDMI-Schnittstelle verantwortlich ist, damit das Bild auf dem Bildschirm angezeigt wird. Dies ist wichtig, um die Zugriffe zu verringern zu VRAM durch diese Einheiten.

Erinnern an das RDNA-Cache-System

AMD 6900 Tamano

In RDNA sind die Caches folgendermaßen miteinander verbunden:

RDNA zwischenspeichern

Der L2-Cache ist nach außen mit 16 Kanälen zu je 32 Bytes / Zyklus verbunden. Wenn wir uns das Navi 10-Diagramm ansehen, werden Sie sehen, wie diese GPU funktioniert 16 L2-Cache-Partitionen und ein 256-Bit-GDDR6-Bus mit denen sie verbunden sind.

Beachten Sie, dass GDDR6 verwendet 2 Kanäle pro Chip die parallel arbeiten, jeweils 16 Bit.

Canales DDR6

Mit anderen Worten entspricht die Anzahl der L2-Cache-Partitionen in RDNA-Architekturen der Anzahl der 16-Bit-GDDR6-Kanäle, die mit dem Grafikprozessor verbunden sind. In RDNA und RDNA 2 ist jede Partition 256 KB groß. Dies ist der Grund, warum die Xbox Series X mit einem 320-Bit-Bus und daher 20 GDDR6-Kanälen über etwa 5 MB L2-Cache verfügt.

Xbox Series X Architektur

Eine neue Cache-Ebene: der Infinity-Cache

Pie de Página Infinity Caché

Da es sich um eine zusätzliche Cache-Ebene handelt, muss der Infinity-Cache direkt mit dem L2-Cache verbunden werden. Dies ist die vorherige Ebene in der Cache-Hierarchie. Dies wird uns von AMD selbst in einer Fußzeile bestätigt:

Messung berechnet von AMD-Ingenieuren auf einer Karte der Radeon RX 6000-Serie mit 128MB AMD Infinity Cache und 256-Bit-GDDR6. Messung der durchschnittlichen AMD Infinity Cache-Erfolgsrate in 4k-Spielen von 58% über die wichtigsten Spieletitel hinweg, multipliziert mit der theoretischen maximalen Bandbreite des 16 64B AMD Infinity Fabric-Kanäle Verbinden des Caches mit der Grafik-Engine mit einer Boost-Frequenz von bis zu 1.94 GHz.

Die im RX 6800, RX 6800 XT und RX 6900 verwendete GPU ist Navi 21 mit einem 256-Bit-GDDR6-Bus, hat also 16 Kanäle und daher sind die 16 Partitionen von Caché L2 jeweils mit einer Partition des Infinity Cache verbunden.

Das Problem der „Trefferquoten“ von 58% ist komplizierter und wird im Folgenden erläutert.

Kachel-Caching auf NVIDIA-GPUs

NVIDIA GPU

Bevor wir mit dem Infinity Cache fortfahren, müssen wir die Gründe für seine Existenz verstehen und uns ansehen, wie sich die GPUs in den letzten Jahren entwickelt haben.

Beginnend mit der NVIDIA Maxwell, GeForce 900 Series, NVIDIA nahm eine wesentliche Änderung an ihren GPUs vor, die sie Tile Caching nannten. Bei dieser Änderung wurden der ROPS und die Rastereinheit mit dem L2-Cache verbunden.
Gekacheltes Caching NVIDIA
Mit dieser Änderung hat der ROPS aufgehört, direkt in den VRAM zu schreiben. Der ROPS ist in allen GPUs gleich und für die Erstellung der Bildpuffer im Speicher verantwortlich.

Dank dieser Änderung konnte NVIDIA die Auswirkungen auf die Energie auf den Speicherbus reduzieren, indem die Anzahl der Übertragungen zum und vom VRAM reduziert wurde. Auf diese Weise gelang es NVIDIA, mit den Architekturen Maxwell und Pascal Energieeffizienz von AMD zu erzielen.

DSBR, das Tile Caching auf AMD-GPUs

AMD hingegen hat während aller Generationen der GCN-Architektur vor Vega die Render Backends (RB) direkt mit dem Speichercontroller verbunden.

GCN PreVega L2

Beginnend mit dem AMD Vega nahm er zwei Änderungen an der Architektur vor, um Tile Caching zu seinen GPUs hinzuzufügen. Die erste bestand darin, die Rastereinheit zu erneuern, die er in DSBR, Draw Stream Binning Rasterizer, umbenannte.

AMD DSBR

Die zweite Änderung bestand darin, dass die Rastereinheit und ROPS mit dem L2-Cache verbunden wurden, eine Änderung, die in RDNA und RDNA 2 noch vorhanden ist.

RDNA L2-Cache

Das Dienstprogramm von DSBR oder Tile Caching

Das Tile Caching oder DSBR ist effizient, da es die Geometrie der Szene entsprechend ihrer Position auf dem Bildschirm anordnet, bevor sie gerastert wird. Dies war eine wichtige Änderung seit den GPUs vor der Implementierung dieser Technik bestellte die bereits strukturierten Fragmente kurz vor dem Senden an den Bildpuffer.

Letzte Sortierung

In Tile Caching / DSBR wird Folgendes getan Ordnen Sie die Polygone der Szene an, bevor sie in Fragmente umgewandelt werden von der Rastereinheit.

Mittlere Sortierung

Beim Kachel-Caching werden Polygone entsprechend ihrer Bildschirmposition in Kacheln angeordnet, wobei jede Kachel ein Fragment von n * n Pixeln ist.

Einer der Vorteile davon besteht darin, dass zuvor nicht sichtbare Pixel der Fragmente entfernt werden können, die in derselben Situation undurchsichtig sind. Dies ist nicht möglich, wenn die Elemente, aus denen die Szene besteht, nach der Texturierung sortiert werden.

Dreieck-Pipeline

Dies erspart der GPU Zeitverschwendung bei überflüssigen Pixeln und verbessert die Effizienz der GPU. Wenn Sie dies verwirrend finden, müssen Sie sich nur daran erinnern, dass in der gesamten grafischen Pipeline die verschiedenen Grundelemente, aus denen die Szene besteht, in den verschiedenen Phasen unterschiedliche Formen annehmen.

Tile Caching oder DSBR entspricht nicht dem Tile Rendering

Fliesen-Rendering

Obwohl der Name irreführend sein kann, entspricht Tile Caching aus folgenden Gründen nicht dem Tile Rendering:

  • Kachel-Renderer speichern die Szenengeometrie im Speicher, ordnen sie an und erstellen Bildschirmlisten für jede Kachel. Dieser Vorgang tritt bei Tile Caching oder DSBR nicht auf.
  • Beim Tile-Rendering werden die ROPS mit Scratchpad-Speichern außerhalb der Cache-Hierarchie verbunden und leeren ihren Inhalt erst dann in den VRAM, wenn diese Kachel zu 100% fertig ist, sodass die Trefferquote 100% beträgt.
  • Da beim Tile Caching / DSBR die ROPS / RBs mit dem L2-Cache verbunden sind, können die Cache-Zeilen von L2 zum RAM jederzeit verworfen werden, sodass nicht garantiert werden kann, dass sich 100% der Daten im L2-Cache befinden.

Da die Wahrscheinlichkeit groß ist, dass Cache-Zeilen im VRAM landen, hat AMD mit dem Infinity-Cache eine zusätzliche Cache-Schicht hinzugefügt, die die verworfenen Daten aus dem L2-Cache der GPU sammelt.

Der Infinity-Cache ist ein Opfer-Cache

Die Opfer Caché Idee ist ein Erbe von CPUs unter Zen-Architekturen, das an RDNA 2 angepasst wurde.

Opfer-Cache Zen

In den Zen-Kernen ist der L3-Cache das, was wir als Opfer-Caché bezeichnen, für den diese zuständig sind Sammeln der verworfenen Cache-Zeilen von der L2 anstatt Teil des Üblichen zu sein Cache-Speicher Hierarchie. Das heißt, in Zen-Kernen die Daten, aus denen sie stammen RAM folgt nicht dem Pfad RAM → L3 → L2 → L1 oder umgekehrt, sondern folgt dem Pfad RAM → L2 → L1, da der L3-Cache als Opfer-Caché fungiert.

Im Fall des Infinity Cache ist die Idee zu Retten Sie die Zeilen des L2-Cache der GPU ohne auf den VRAM zugreifen zu müssen Dies ermöglicht, dass der pro Befehl verbrauchte Energie viel niedriger ist und daher höhere Geschwindigkeiten erreicht werden können. Uhr.

Infinity-Cache-Verbrauch

Obwohl die Kapazität von 128 MB sehr hoch zu sein scheint, scheint es nicht ausreichend zu sein, zu vermeiden, dass alle verworfenen Leitungen im VRAM landen, da dies im besten Fall der Fall ist schafft es nur 58% zu retten . Dies bedeutet, dass es in zukünftigen Iterationen seiner RDNA-Architektur sehr wahrscheinlich ist, dass AMD erhöht die Kapazität dieses Infinity-Cache .