Grafikkarten Cache

Klingerdennis

Lt. Commander
Registriert
Feb. 2010
Beiträge
1.273
Eine kurze vermutlich einfach zu beantwortende Frage:
Haben Grafikkarten bzw deren Chips einen Cache-Speicher?
 
google doch einfach mal
 
danke und in wiefern unterscheiden sich die caches zwischen einer generatinon also zb gtx580 und na gtx550ti und zwischen den marken nv und amd und wie wirkt sich das auf die leistung aus?
 
Du hast den "Schlag mit Zaunpfahl" nicht verstanden oder !?!?

GOOGLE !!!

Woher soll hier jemand sowas spezifisches Wissen ?
 
Mal zur Leistungsfrage:
Naja der Cache selbst, wirkt sich erst dann auf die Leistung der Grafikkarte aus, wenn er auch benutzt wird. Dh. wenn das Programm so geschrieben ist, dass sich Dinge in den Cache legt. Um mal ein bisschen aus meiner Vorlesung GPU-Computing zu erzählen:
Es gibt den Globalen Speicher (das ist der, der bei den Grafikkarten immer angegeben wird. Also die 512,1024, ... MB. Hier werden die Daten vom Host-System, also CPU reingeladen), den lokalen Speicher ( 8 - 32KB) den sich nur Work items innerhalb einer sogenannten "Arbeitsgruppe" (Work Group) teilen. Eine Work Group wird von genau einem Streaming-Processor abgearbeitet. Zu guter Letzt gibt es noch die Register, die für jedes Work Item privat sind (kleinster Speicher, aber auch am schnellsten).
Lange Rede, kurzer Sinn:
Prinzipiell kann man nicht pauschal sagen, dass mit mehr Cache ein Programm schneller läuft. Man muss sich beim Programmieren immer überlegen: Nutze ich dieselben Daten häufig direkt hintereinander, dann lade ich sie mir vllt besser in den lokalen Speicher, oder benutze ich alle Daten nur genau einmal, dann dauert der Transfer zw. Globalen Speicher und lokalen Speicher eventuell länger, als die Berechnung meiner Daten.
 
dake mausweazle
Fidikus schrieb:
Woher soll hier jemand sowas spezifisches Wissen ?


erstmal sind wir hier auf einer seite wo es um computer geht es würde mich nicht wundern wenns jemand weiss wenn nicht dann antwortet keiner hab ich eben pech gehabt. wie soll ich denn ergooglen wie sich das leistungstechnisch auswirkt und wie sich die unterschiede bei den verschiedenen marken auswirken? benches kann es dazu nicht geben es sei denn es gibt gleiche gpus mit unterschiedlichem cache
 
Achtung: Ich verwende hier die Größen K und M als 1024er-Basis, anstelle der 1000. (MiB habe ich mir noch nicht angewöhnt und bevor es inkonsistent wird ...)

Unterschiede:
Der Cache bei NVidias Kepler-Karten ist pro SMX (bis zu 32 pro Karte) 4-geteilt. Es gibt "3" L1-Caches: 64KB L1-Cache, der Unterteilt ist in den Shared Memory und den L1-Cache. Die Unterteilung kann vom Programmierer konfiguriert werden, aber nur in diesen Schritten: 48/16, 32/32, 16/48. Dazu kommt ein nochmal 48KB großer "Read-only"-Data-Cache, der programmierbar ist! Darin können also bewusst Daten abgelegt werden, die der Programmierer sich dort wünscht. Und dadrüber sitzt dann der L2-Cache, der zwischen den SMX-Units gilt und primär dafür gedacht ist, effizienter auf den VRAM zugreifen zu können und viele Daten auf einmal zu lesen.

Also effektiv 48KB programmierbarer L1-Cache, 64KB konfigurierbarer L1-Cache und 1,5MB GPU-Verwalteter L2-Cache.

AMD: Bei AMDs Tahiti sieht es anders aus. Jede CU (SMX-pentant, bis zu 32 Stück) hat einen eigenen 16KB großen L1-Instruction-Cache, zusätzlich dazu einen 32KB großen skalaren Daten-Cache, der über jeweils 4CUs reicht. Und noch einen 64KB großen Textur-/Daten-Cache pro CU. Dafür hat AMD's Tahiti nur einen 768KB großen L2-Cache, der von der GPU-Verwaltet wird.
Bei AMD sind die Caches nicht Programmierbar oder Konfigurierbar, das übernimmt alles die Hardware. Wir haben hier aber mehr Dynamik in der Hardware:
80KB CU-Cache, 32KB Cache über 4CUs und 768KB über alle CUs.

So viel zur Architektur. ABER: Wie wirkt sich das auf die Leistung aus?
Natürlich positiv, der (zwar schnelle, aber noch immer zu langsame) Video-RAM wird massiv entlastet, sowohl bei NVidia als auch bei ATI. Da beide mit ähnlichen Herstellungsverfahren bei ähnlichen Kosten ungefähr gleichwertige Karten produzieren, würde ich nun aber behaupten, keine der Cache-Architekturen ist besser oder schlechter. Zumal die Effizienz von Caches auch sehr stark vom Szenario abhängt. Programme mit vielen Sprüngen provozieren jede Menge Cache-misses, wodurch dieser fast überflüssig wird. Lineare Programme, oder Programme mit überschaubaren Schleifen hingegen profitieren extrem von Cache-Nutzung.

Ein direkter Vergleich ist also nicht ohne weiteres möglich, wegen der Gleichwertigkeit der Karten darf aber davon ausgegangen werden, dass beide Cache-Strategien sehr gut sind. Nvidia hat einen theoretischen Vorteil: Programmierbaren L1-Cache (teilweise, siehe oben). Wie stark das aber genutzt wird, weiß ich nicht. Ich vermute, das wird nur im GPU-Computing verwendet, in Grafik-Anwendungen wohl kaum.
 
SoDaTierchen schrieb:
...Natürlich positiv, der (zwar schnelle, aber noch immer zu langsame) Video-RAM wird massiv entlastet, sowohl bei NVidia als auch bei ATI.

Damit meinst du bestimmt, dass weniger Lesezugriffe stattfinden müssen. Die Datenmenge auf dem VRAM dürfte sich dadurch nicht reduzieren. Dadurch kommt aber auch die Leistungssteigerung, weil die Zugriffszeiten zum VRAM seltener vorkommen. Die Shader-Units kommen schneller an ihre Daten und haben weniger Leertakte.

So stell ich mir das zumindest vor, in Anlehnung an die Funktionsweise des Caches bei CPUs
 
Jep, exakt genau das meinte ich. Natürlich müssen die Daten im V-RAM nach wie vor vorhanden sein, aber es kommt zu weniger Zugriffen auf den V-RAM, also auch zu kürzeren Wartezeiten (Pro Zyklus kann nur eine CU/SMX auf den VRAM zugreifen).
 
Nein, tut mir Leid, da muss ich passen. Der Bereich GPU-Comuting ist mir zu fremd, um da weiterführende Aussagen treffen zu können :/

Aber du hast schon recht, der Cache spielt im GPU-Computing eine andere Rolle und wird zumindest von NVidia auch aktiv beworben (bei AMD habe ich auf die schnelle kein Datenblatt gefunden). Ob die Programmierbarkeit jetzt einen großen Vorteil bewirkt, sei dahingestellt - die hardwareseitig verbauten Algorithmen zur Cache-Nutzung reifen immerhin auch schon seit 40 Jahren und dürften für die meisten Fälle schon sehr gut bis ausgezeichnet arbeiten ... Wenn jemand dazu sinnvolle Informationen findet, bin ich auch gerne bereit dazuzulernen, doch für den Moment muss ich passen :)
 
Zurück
Oben