Geteilter Speicher bei Grafikkarten, nutzt meine Grafikkarte den eigenen Speicher nicht effizient genug?
Hallo,
Ich habe aufgrund einigen Bluescreens mal ein paar Hardwarestabilitätstests gemacht und bin dann bei der Grafikkarte darauf "gestossen", dass sehr viel Speicher geteilt wird (Grafikkarte und RAM).
Da frage ich mich, ob das nicht sehr uneffizient ist, wie man auf den angehängten Bildern sehen kann. Meine Grafikkarte ist die GTX 1060 Gaming 6G von MSI.
Ich habe 6 Tests gemacht. Einmal einen Test der besonders für die GPU belastend ist und 5 Mal welche, die besonders belastend für den Grafikspeicher sind. Je einmal mit 1,2,3,4 & 6GB Auslastung (sieht man jeweils in den Bildern).
Das komische dabei ist jetzt, dass bei diesen Tests auch mein Arbeitsspeicher ziemlich stark belastet wird.
D.H beim 4GB Test wird vom Prozess ca. 3.7GB vom Arbeitsspeicher genutzt. Das ist ja irgendwie nicht normal, wenn meine Grafikkarte 6GB hat. Komischerweise wird aber gleichzeitig ausgelesen, dass die Grafikkarte ca.65% ihres Speichers ausgelastet hat (also 4GB wären ja 66% von 6GB, würde also etwa aufgehen), während dem aber trotzdem 3.7GB vom Arbeitsspeicher genutzt werden (evtl. wird der dazu gezählt, sonst kann ich mir das nicht erklären).
Auch beim 3GB Test werden 2.6GB vom Arbeitsspeicher genutzt (also wieder sehr viel ausgelagert).
Beim 2GB Test sind es 1.6GB
Beim 1GB Test sind es 0.4GB
Beim GPU Test ist die Belastung vom Arbeitsspeicher eigentlich praktisch nichts.
Also das kann doch nicht wirklich effizient sein, wenn trotz 6GB Grafikspeicher immer so viel auslagert werden ? Wie kann ich das ausstellen bzw. umstellen? Ich will doch schliesslich meinen Grafikspeicher auch nutzen können.
Und warum wird so viel Speicherverbrauch beim Arbeitsspeicher gemessen und gleichzeitig aber auch eine, dem Test entsprechende, Menge an Grafikspeicherauslastung angezeigt ?
Danke schonmal für die Hilfe.
2 Antworten
Da wird (bestimmt) nichts ausgelagert.
Das Testprogramm läuft - wie jedes andere Programm oder Spiel - auf der CPU und nutzt den RAM, interagiert aber mit der Grafikkarte - entweder per Low-Level-Grafikschnittstelle wie das Spiele tun oder über CUDA/OpenCL. Um sein Ding machen zu können muss das Testprogramm (was auf der CPU läuft) Testdaten generieren (welche wie alle Laufzeitdaten im RAM liegen) und sie der Grafikkarte übergeben - sie in dessen VRAM laden. Was das Testprogramm genau macht bzw. testet weiß ich nicht, ich habs nicht geschrieben.
Aber wenn der Entwickler die Testdaten im RAM nicht wieder freigibt liegen die Daten eben sowohl im VRAM als auch im RAM. Gründe dafür könnten sein:
- Der Entwickler hat beim Programmieren versehentlich vergessen den allokierten RAM wieder freizugeben (Bug bzw. "Memory Leak")
- Die Daten sollen auch nach dem Test für mögliche weitere Tests zur Verfügung stehen
- Es ist für den Test notwendig, weil die Geschwindigkeit der Datenübertragung getestet werden soll und der VRAM mehrfach gefüllt werden soll um einen Durchschnittswert zu berechnen um verlässlichere Werte zu erhalten (sowas in der Art, ich rate einfach mal ins Blaue)
Sowas wie drittens wäre besonders dann denkbar wenn die Auslastung annähernd parallel beim Start/Ende rauf/runter geht. Ersteres wäre typisch wenn sie gar nicht mehr runtergeht bis das Programm beendet wird, sondern mit jedem Test immer mehr wird.
Theoretisch müsste die Grafikkarte zwar dank DMA Daten in den RAM auslagern können, aber ich glaub nicht das sie das tut. Das wäre relativ langsam und bei freiem VRAM auch Blödsinn. Aber wie gesagt, ich hab keine Ahnung was das Programm genau macht
Update: Ich habe übrigens jetzt herausgefunden, warum beim 6GB Test von MSI Kombustor nicht wirklich 6GB voll belastet werden.
Der Grund war, dass meine Auslagerungsdatei von Windows "nur" 2GB betrugen. Nach erhöhung auf 8 wurden auch schön 6GB geladen :-)
Nur so, falls es dich interessiert.
Danke für die Antwort.
Ach so, dann wird es bei mir wahrschienlich 2. sein. Und dann hoffe ich mal, dass es bei den Spielen auch vernünftig genutzt wird :)
Danke für die Antwort.
Ich habe die Bilder noch vergessen:
Den 1GB Test habe ich jetzt einmal weggelassen, da 5 Bilder das Max. sind. In der Frage steht ja, wie viel da gebnutzt wird.