Grafikkarten Grundlagenartikel Praxis Testberichte

Trick 17: Freien Grafikkartenspeicher exakt reduzieren – ohne Systemlast und Treiberprobleme | Tutorial

Ich gebe es zu, in einer Zeit, wo alle nach immer mehr dediziertem Speicher auf der Grafikkarte schreien, ist das Anliegen dieses heutigen Tutorials für viele eher unverständlich. Allerdings sicher nur auf den ersten Blick. Denn das alles löst sehr elegant ein Problem, vor dem man zwar (zugegeben) sehr selten aber eben doch schon mal stehen könnte und für das es sogar im Bereich der schier endlosen Google-Suche auch keine auf Anhieb praktikable Lösung gibt. Und da heute Nachmittag noch ein heißer Dino auf uns wartet, habe ich den Artikel für heute früh noch einmal aus den Tiefen des Archivs geholt. Warten auf Schnappi Lake mit einer etwas anderen Morgenlektüre…

Originalartikel

Egal, ob eine ältere Anwendung streikt, weil der allokierbare bzw. freie Speicher die Obergrenze dessen überschreitet, was das Programm verarbeiten kann (man erinnere sich an die Grenzen der 32-Bit-Programme) oder weil man einfach mal testen möchte, ab wann der freie Speicher unter Umständen nicht mehr reichen könnte und welche Fehlerbilder dabei ausgelöst werden – ich stand jetzt selbst vor diesem Problem und brauchte eine praktikable Lösung, die weder System- noch Grafikkartenlast erzeugt und trotzdem Speicher sauber blockt.

Für mich war der Lösungsansatz an Ende sicher einfach, denn ich habe mir einfach ein kleines OpenCL-Programm geschrieben, das genau dies tut: Speicher allokieren, also quasi blockieren und für den Zugriff durch andere Programme schützen. Denn DirectX und die Speicherverwaltung sind auch nicht zimperlich, wenn es darum geht, im Grafikkarten-Speicher enthaltene Inhalte um- und auszulagern, wenn das betreffende Programm im Hintergrund dümpelt. Allerdings ist dies alles (schon aus Haftungsgründen) nur Bestandteil meiner eigenen Werkzeugsammlung und nichts für den Download-Bereich. Aber der Lösungsansatz ist an sich ja simpel und so geht mein Dank auch an meinen Kollegen Yannick Guerrini, der mir als Ersatz ein gängiges Tool empfahl, das man geschickt zweckentfremden und genau für diese Zwecke nutzen kann.

Blocken und Lahmlegen – Wir brauchen nur zwei kostenlose Tools

Das allokieren können wir auch geschickt mit memtestCL (Download) erledigen lassen. Dieses etwas ältere Freeware-Tool der Stanford University steht auch als Quellcode auf Github und es tut exakt, was wir möchten.  Allerdings gibt es hier die Einschränkung, dass die Vorgabe des zu testenden Speichers kleiner als 4 GB sein muss. Hier kann man sich behelfen, indem man einfach zwei Instanzen (oder noch mehr) startet und sich deutlich mehr Speicher abknappst. Die Kommandozeilen-Parameter sind simpel und wer möchte, schreibt sich einfach eine Batch-Datei (oder mehrere mit verschiedenen Größenvorgaben). Wer mehr als einen Grafikadapter im Rechner hat (z.B. eine CPU mit iGP), wählt die gewünschte Grafikkarte.

Der Aufruf ist simpel und die optionale Batch-Datei ist es auch. Wenn man z.B. 2 GB allokieren möchte, dann startet man das ganz einfach als memtestCL 2048 – einfacher geht es fast nicht. Standardmäßig sind 50 Iterationen eingestellt, so dass genügend Zeit bleibt, um das Programm dann mit dem zweiten Tool zu stoppen. Hierfür benötigen wir dann den Process Explorer (Download) von Sysinternals. Den kann man dann einfach so starten. Wie die einzelnen Schritte nun ablaufen, zeige ich Euch gleich.

Praxisbeispiel: wir blockieren 4 GB mit memtestCL

Zunächst die Ausgangssituation: Bis auf etwas Fenster-Geraffel ist der Grafikspeicher fast leer.

Doch das lässt sich leicht ändern! Starten wir nun memtestCL mit der gewünschten Speichergröße und dann den Process Explorer. Dort lassen wir alphabetisch absteigend die gerade laufenden Prozesse auflisten (z.B. in der Tabellenüberschrift auf „Process“ klicken) und suchen den Eintrag zu memtestCL.exe.

Wir markieren diese Zeile und klicken dann mit der Rechten Maustaste auf den Eintrag. Es erscheint ein Popup-Menü, bei dem wir die Funktion „suspend“ (Anhalten/Aussetzen) auswählen.

Jetzt ist das Programm faktisch im Ruhemodus und verursacht auch keinerlei Prozessorlast mehr. Der Speicher ist jedoch sicher blockiert und steht der Grafikkarte nicht mehr zur Verfügung. Ganz Clevere können das auch mit den Afterburner-Overlay testen, wo plötzlich die Speicherbelegung um den zuvor gewählten Betrag gestiegen ist.

Aber man kann es auch einfach über die Ressourcenanzeige des Windows Task-Managers betrachten und prüfen. Das Ergebnis ist das gleiche.

Wer möchte und / oder Speicher ab 4 GB allokieren möchte, der startet noch eine zweite Instanz mit der nun noch zusätzlich gewünschten, weiteren Speichergröße.

Und auch hier bitte nicht den Suspend-Mode vergessen (siehe oben)!

Das Ergebnis ist eindeutig und kann wieder direkt im Task-Manager überprüft werden. Ich hatte in diesem Fall einfach zweimal 2 GB blockiert.

Man kann damit sogar Grafikkarten mit geringerem Speicherausbau emulieren, aber das habt Ihr ja sicher schon in einem Review von mir gelesen. In diesem Sinne: viel Spaß beim Experimentieren!

 

Kommentar

Lade neue Kommentare

B
Besterino

Urgestein

6,730 Kommentare 3,326 Likes

But y tho? ;)

Theoretisch interessant, aber mir fehlt gerade jede Idee, wo ich das brauchen könnte. Bin kein Softwareentwickler.

Antwort 2 Likes

r
roecket

Mitglied

24 Kommentare 11 Likes

Wenn das mal nicht für die 5500XT 8GB und die (simulierte) 4GB Variante ist...

Antwort 4 Likes

M
McFly_76

Veteran

396 Kommentare 136 Likes

Eine Auffälligkeit kann man auch gut beobachten wenn im PC der Arbeitsspeicher von 16 auf 32 GB bzw. auf 64 GB aufgerüstet wird.
Dann erhöht sich in Spielen / Benchmarks die Grafikspeicherbelegung um bis zu ~ 0,5 GB ^^

Antwort Gefällt mir

Igor Wallossek

1

10,195 Kommentare 18,808 Likes

Das liegt daran, dass sich die Speicherseiten gegenseitig einblenden. Nimm das Shared Memory weg und der Effekt ist Geschichte :)

Nein sowas aber auch...

Antwort 1 Like

m
maxitaxi96

Mitglied

64 Kommentare 10 Likes

Cool! Endlich ein Weg wie ich die 8 unnötigen Gigabyte von meiner Karte blockiert bekomme! Dann kann ich mir den Kauf einer Titan RTX selber rechtfertigen :)

/s

Antwort 2 Likes

Smartengine

Veteran

146 Kommentare 134 Likes

Ich starte einfach Cities skylines und hab meine 16GB voll :D

Antwort Gefällt mir

S
Staarfury

Veteran

257 Kommentare 206 Likes

Igor hat endlich mal was gefunden, was mit OpenCL anstandslos funktioniert :ROFLMAO:

Antwort 1 Like

big-maec

Urgestein

828 Kommentare 476 Likes

Das hat er ja auch selbst geschrieben.;)

Antwort 1 Like

F
Furda

Urgestein

663 Kommentare 370 Likes

MemtestCL kann man selbst sehr einfach ändern, um mehr als 4GB zu unterstützen, wer das selbst kompilieren kann...

Antwort Gefällt mir

G
Guest

keeping 4GB occupied smells a lot like simulating a 40x0 12GB from the 16GB variant since the 12GB variant will not be sampled :D

Antwort 2 Likes

Sephiroth Nikon

Mitglied

55 Kommentare 7 Likes
d
derGhostrider

Mitglied

64 Kommentare 53 Likes

Hmmmm… Seit Jahrzehnten habe ich mehr RAM in meinen Rechnern als üblich. Jetzt z.B. 64GB - seit einigen Jahren.
Aber Abstürze, weil man „zuviel“ RAM hat?
Das erscheint mir schon reichlich weit hergeholt.
Also bei HX oder TX Chipsätzen (späte 90er…) gab‘s unter Umständen Geschwindigkeitseinbrüche, wenn man außerhalb der cachable Area landete…. Darum kaufte man Boards mit „dem richtigen“ Chipsatz.
Aber Abstürze???
Ich weiß nicht…

Antwort Gefällt mir

k
k0k0k0

Veteran

136 Kommentare 63 Likes

Eher 70GB RAM/Swap^^

Antwort 1 Like

Danke für die Spende



Du fandest, der Beitrag war interessant und möchtest uns unterstützen? Klasse!

Hier erfährst Du, wie: Hier spenden.

Hier kannst Du per PayPal spenden.

About the author

Igor Wallossek

Chefredakteur und Namensgeber von igor'sLAB als inhaltlichem Nachfolger von Tom's Hardware Deutschland, deren Lizenz im Juni 2019 zurückgegeben wurde, um den qualitativen Ansprüchen der Webinhalte und Herausforderungen der neuen Medien wie z.B. YouTube mit einem eigenen Kanal besser gerecht werden zu können.

Computer-Nerd seit 1983, Audio-Freak seit 1979 und seit über 50 Jahren so ziemlich offen für alles, was einen Stecker oder einen Akku hat.

Folge Igor auf:
YouTube   Facebook    Instagram Twitter

Werbung

Werbung