VRAM-Allocator CUDA Version

Naja, die Menge an genutztem RAM steigt kontinuierlich. Würde sagen ja:
Auch wenn es nicht der Menge des belegten VRAMs entspricht.
Geht man davon aus, werden etwa 10GB ausgeswappt.
 
Ich hab das Tool übrigens für meinen Speicherartikel in der kommenden PCGH 05/2019 genutzt. Es war sehr hilfreich, den generellen Speicherbedarf von Spielen einzuschätzen.
Also erstmal Danke für die Mühen @gaussmath. Wenn ich dir eine Ausgabe zukommen lassen kann (sobald sie erschienen ist), gib mir Bescheid.

Man kann die Ergebnisse mit dem Tool allerdings nicht 1:1 in die Realität übersetzen... Wenn man einen Teil des Grafikspeichers belegt "denken" die Spiele trotzdem, dieser wäre noch frei und belegen den GPU-Speicher auch, als stünde dieser voll zur Verfügung (wenn der dann zu knapp wird, nutzen die Spiele den Hauptspeicher des Systems).

Das heißt wiederum auch, dass sich das Spiel und dessen Streaming nicht auf den knapperen Speicher einstellen, wie sie es oft bei Karten mit wenig VRAM machen. Darüber hinaus greifen einige Optimierungen (oder vielleicht besser: Tricksereien, um geringen Grafikspeicher zu kaschieren) nicht so, wie es in der Realität geschieht. Eine auf 4 GiByte beschränkte Titan RTX kann beispielsweise wesentlich stärkeres Ruckeln produzieren als eine GTX 1060/3G, wenn für letzere Optimierungen in ein Spiel eingeflossen sind - der Treiber zaubert wahrscheinlich auch noch ein wenig.

Als alleiniger Maßstab reicht das Tool also nicht wirklich, aber man kann damit Tendenzen erkennen. War (bzw. ist, ich tippe aktuell noch am Artikel) sehr nützlich für den Test.

Beste Grüße,
Phil
 
Hab ich eigentlich schon das Statement vom Nvidia Support zu dem Thema hier zitiert? Falls nicht, hole ich das nach.
 
Nvidia Support:
"The windows WDDM memory manager (controlled by Microsoft, not NVIDIA) does virtual memory management on the GPU memory, and this applies to both CUDA and gaming. The WDDM memory manager may swap out even CUDA allocations to system memory, according to its own heuristics.

You don't have any direct control over this.

You can influence the behavior by not just allocating the memory using cudaMalloc, but also writing CUDA code that accesses the memory. WHen the CUDA kernel is running, the WDDM memory manager will ensure that the needed allocations are physically resident in GPU memory, not "swapped out" to system memory, which is used as a backing store.

However, when a CUDA kernel is running in a WDDM environment, many other GPU activities (including display updates) are "frozen" until the kernel completes. And if you run the kernel too long, you will hit a WDDM TDR timeout.

So there is no simple method to do this. You could experiment with trying to run a short CUDA kernel (say, 100ms or less, in duration) once every second or so. But this is just playing games with the WDDM memory manager, and at some point your attempt to evaluate game behavior is going to be influenced by this, apart from any memory considerations."

@
Phil: Ist vielleicht auch interessant für den Artikel?!
 
gaussmath;9790918[COLOR=#000000 schrieb:
Phil: Ist vielleicht auch interessant für den Artikel?!

Theoretisch schon, ist nun aber etwas spät, ich muss den Artikel quasi gleich abgeben.
Den Umstand habe ich aber quasi auch schon selbst festgestellt, deswegen hab ich auch den Systemspeicher in die Messungen miteinbezogen.

Wie gesagt, die Methode ist nicht perfekt, aber sehr nützlich. Nochmal danke für die Mühen. :)

Gruß,
Phil
 
Heute Tag 2 am Projekt VRAM Allocator in C++.

Könnte mal jemand das Programm testen auf NV und AMD Grafikkarten und mir sagen, ob es bis hierhin funktioniert und welche Ausgabe es erzeugt?

Anhang anzeigen test.zip

Einfach in der Windows Konsole die "VRAMAllocator.exe" Datei aufrufen. Parametereingabe funktioniert noch nicht.
 
@Downsampler: Es werden die Namen der gefundenen Plattformen ausgegeben. Sonst passiert weiter nichts...

Gib doch auch mal den Code mit an.
 
Das ist kompliziert. Ich versuche es mal. Dazu muß ich VS beenden. Ich stelle mal die .zip Datei der Projektmappe hier rein.

Anhang anzeigen VRAMAllocator.zip


Das ist schon Okay so. Er soll 1 Zeile zeigen mit der Anzahl der Platformen und eine 2. mit dem Namen der Plattform.

Klappt es denn auf AMD und NVidia? Ich habe leider nur AMD zum testen hier.
 
Auf meiner Nvidia Karte schmiert die App ab. Aber das heißt nichts. Ich hatte das Problem mit der Plattformabfrage auch vorher schon.
 
Das gibts doch nicht. Open CL ist doch ein "Standard" an dem NV auch mitarbeitet...

Naja ich mach Schluß für heute. Hab heute Mittag angefangen und ein bischen gemengt, nochmal auf die Uhr geschaut und es waren 5 Stunden vergangen. :)
 
Zuletzt bearbeitet:
ich bin auch erst jetzt zum testen gekommen.

VRAMAllocator_cli.jpg
 
Zurück