> > > > AMD spricht über Delta Color Compression in der GCN-1.2-Architektur

AMD spricht über Delta Color Compression in der GCN-1.2-Architektur

Veröffentlicht am: von

amd radeon 2013Sowohl AMD wie auch NVIDIA setzen eine Komprimierung für Daten im Grafikspeicher ein. Diese sogenannte Delta Color Compression oder kur DCC ist ein wichtiger Bestandteil im Zusammenspiel zwischen Hardware und Codeimplementation. Bei der Delta Color Compression wird nur der Basispixelwert gespeichert und für die umliegenden Pixel in einer 8x8-Matrix nur noch der Unterschied (das Delta) gespeichert. Da das Delta ein deutlich kleinerer Wert ist, kann dieser schneller gespeichert werden und benötigt auch weniger Platz im Speicher. Es werden also weniger Daten in den VRAM geschrieben und müssen gelesen werden, sodass aus den 224 GB pro Sekunde 297 GB pro Sekunde werden sollen. NVIDIA führte Delta Color Compression mit der Maxwell-Architektur ein.

AMD hat nun einen Blogbeitrag veröffentlicht, der die Delta Color Compression noch einmal erläutert und zugeschnitten auf die Graphics-Core-Next-Architektur für Entwickler einige Empfehlungen gibt. So verbaut AMD zwar aktuell zusammen mit den Fiji-GPUs High Bandwidth Memory mit einem Speicherinterface mit einer Breite von 4.096 Bit, kommt derzeit aber dennoch "nur" auf 512 GB/s. Größere Sprünge werden erst mit HBM2 erwartet. Selbst bei 512 GB/s aber spielt es eine Rolle, wie viele (unnötige) Daten im Speicher geschrieben und gelesen werden müssen.

Speicherkomprimierung in de Maxwell-Architektur von NVIDIASpeicherkomprimierung in de Maxwell-Architektur von NVIDIA

Speicherkomprimierung in de Maxwell-Architektur von NVIDIA

Delta Color Compression ist auf allen diskreten GPUs von AMD aktiv, die auf der GCN-1.2-Architektur oder neuer basieren. Dies trifft auf alle Grafikkarten mit Tonga- und Fiji-GPU zu. Dies wären die Radeon Radeon R9 285 sowie die Radeon R9 Fury X, Radeon R9 Fury und Radeon R9 Nano. Auch alle zukünftigen GPUs auf Basis der Polaris-Architektur werden Delta Color Compression unterstützen. Auf Seiten der APUs unterstützen dies alle APUs auf Basis der Carrizo-Plattform.

So einfach die grundsätzliche Funktionsweise der Delta Color Compression klingen mag, so kompliziert ist jedoch die Implementierung, denn hier werden weitere Optimierungen vorgenommen, damit die Daten schnellstmöglich abgerufen werden können. So wird die Blockgröße für die als Delta Color Compression gespeicherten Daten dynamisch bestimmt, je nachdem wie und auf welche Art und Weise auf die Daten im Speicher zugegriffen werden soll. Der in der GCN-Architektur implementierte Compressor arbeitet ähnlich wie der, der für die Datenkompression von Tiefen- und Matrizen-Werte im Renderingprozess verantwortlich ist.

Für die Entwickler sollen keine besonderen Vorbereitungen notwendig sein. Fallen Daten an, die komprimiert werden können, wird diese Komprimierung auch durchgeführt. Falls keine solche Daten vorliegen, wird die Rendering Pipeline nicht verändert. Die Komprimierung der Daten ist aber nur eine Seite der Optimierung. Die meisten Daten werden häufiger gelesen, als sie geschrieben werden. Daher bekommen die Shader auch die Möglichkeit direkt auf die dekomprimierten Daten zuzugreifen. Werden diese häufiger benötigt liegen sie direkt im Speicher vor. Solche Daten, die weniger häufig verwendet werden, verbleiben komprimiert. Damit lassen sich einige oftmals überflüssige Prozesse verhindern.

Blockdiagramm der Fiji-GPU auf Basis der GCN-1.2-Architektur
Blockdiagramm der Fiji-GPU auf Basis der GCN-1.2-Architektur

Ein Beispiel für die Kompression liefert AMD gleich mit. Ein vollständiges Schwarz und Wei0 wird als {1.0, 0.0, 0.0, 0.0} der {0.0, 1.0, 1.0, 1.0} im Speicher abgelegt. Aber auch hier lässt sich Speicherplatz einsparen, in dem nur 0.0 oder 1.0  als Wert für die ARGB-Oberfläche abgespeichert wird. AMD hat auch einige Tipps an Entwickler, um nicht unnötig Ressourcen zu verbrauchen. So sollten Render-Targets nur dann als solche ausgewiesen werden, wenn dies auch unbedingt notwendig ist. Damit soll verhindert werden, dass nicht andere Optimierungen (ebenfalls Kompressionsverfahren) blockiert werden. Für ein MSAA können Tiefeninformationen im Speicher extrem gut komprimiert werden. Weißt der Entwickler diese Daten den Shadern aber als Render-Targets aus, wird diese Komprimierung nicht durchgeführt.

Solche Daten sollten auch in einem bestimmten Datenformat abgelegt werden. So rät AMD dazu 32 Bit Floating Point (D32F) anstatt 16 Bit (D16) als Datenformat zu verwenden. Die D32F-Datensätze sollen sich deutlich besser komprimieren lassen und verhalten sich bei der Zuweisung im Speicher auch deutlich effektiver. Eine 24-Bit-Tiefeninformation lässt sich auch einfacher in einem 32-Bit-Datenblock speichern, als in zwei 16-Bit-Blöcken abgelegt werden zu müssen.

Die Delta Color Compression wird auch in Zukunft weiterhin eine Rolle spielen, denn es handelt sich um ein verlustloses Verfahren, dass keinerlei Daten verliert, wohl aber den Aufwand für das Speichern und Lesen von Daten deutlich reduzieren kann. Richtig implementiert entstehen so keiner Leistungsnachteile und grundsätzlich sind nur Vorteile vorhanden, die auch ausgeschöpft werden sollen.

AMD hat auch noch einige weitere Tipps parat und interessierte Entwickler können sich alle weiteren Informationen im Blogbeitrag anschauen.

Social Links

Ihre Bewertung

Ø Bewertungen: 0

Tags

Kommentare (1)

#1
Registriert seit: 18.10.2006

Hauptgefreiter
Beiträge: 196
Bei der Aufzählung der Tonga-Karten habt ihr die R9 380/380X vergessen. Wenn man es genau nimmt, auch die Graphiklösungen von Apple auf Tonga-Basis ;)
Um Kommentare schreiben zu können, musst Du eingeloggt sein!

Das könnte Sie auch interessieren:

NVIDIA Titan V: Volta-Architektur im Gaming-Test

Logo von IMAGES/STORIES/2017/NVIDIA-TITANV

In der letzten Woche hatte NVIDA noch eine Überraschung für uns parat: Die brandneue NVIDIA Titan V wurde vorgestellt. Damit gibt es das erste Consumer-Modell mit der neuen Volta-Architektur, das auch für Spieler interessant sein kann, in erster Linie aber auch professionelle Nutzer ansprechen... [mehr]

Sapphire Radeon RX Vega 64 Nitro+ im Test

Logo von IMAGES/STORIES/2017/SAPPHIRE-VEGA

Heute ist es endlich soweit: Wir können uns das zweite Custom-Design der Radeon RX Vega anschauen. Dabei handelt es sich um die Sapphire Radeon RX Vega 64 Nitro+, die besonders durch die Kühlung auf sich aufmerksam machen will. Drei Slots, drei Axiallüfter und sogar eine spezielle... [mehr]

Mega-Roundup: 14 aktuelle GeForce-Grafikkarten in 11 Blockbuster-Spielen...

Logo von IMAGES/STORIES/2017/GPU_BLOCKBUSER_VGL_ZOTAC-TEASER

In Kooperation mit Zotac Auch in diesem Jahr veranstalteten die Spielepublisher wieder ein regelrechtes Feuerwerk an neuen Videospielen. Vor allem in den letzten Wochen des Jahres wurden zahlreiche neue Triple-A-Titel veröffentlicht, wie beispielsweise ein neues "Call of Duty",... [mehr]

Die GeForce RTX 2080 Ti und RTX 2080 Founders Edition im Test

Logo von IMAGES/STORIES/2017/GEFORCERTX2080

Heute nun ist es endlich soweit und wir präsentieren die vollständigen Leistungsdaten und Messwerte zu den beiden ersten Karten der GeForce-RTX-20-Serie von NVIDIA. Nach der Vorstellung der Pascal-Architektur im Mai 2016 sind die neuen Karten für NVIDIA in vielerlei Hinsicht ein... [mehr]

Die ersten Custom-Modelle der GeForce GTX 1070 Ti im Test

Logo von IMAGES/STORIES/LOGOS-2017/GTX1070TI-LOGO

Nach der Vorstellung aller Details dürfen wir heute die Leistungswerte der GeForce GTX 1070 Ti veröffentlichen. Dabei stand uns dieses Mal keine Founders Edition zur Verfügung, die nur von NVIDIA verkauft wird, dafür aber einige Custom-Modelle. Diese stammen aus dem Hause ASUS, Inno3D und... [mehr]

AMD Radeon RX Vega 64 im mGPU-Test

Logo von IMAGES/STORIES/2017/AMD_RADEON_RX_VEGA_64_56_TEST

In den letzten Tagen war es so weit. Wir hatten endlich Hard- und Software zusammen, um die Radeon RX Vega 64 im mGPU testen zu können. Zum einen halten wir die ASUS ROG Strix Radeon Vega 64 OC Edition in Händen, zum anderen hat AMD den Radeon Software Crimson ReLive Edition 17.9.2... [mehr]