Wie kann ich die CPU- und GPU-Leistung profilieren, wenn ich einen Monster-PC habe?

7

Ich werde meinen PC bald aktualisieren. Ich mache mir Sorgen, dass ich aufgrund der besseren technischen Daten keine Leistungsverluste mehr in meinem Spiel feststellen kann.

Ich kann die Speichernutzung leicht überprüfen, aber wie überprüfe und debugge ich die CPU- und GPU-Nutzung? Früher habe ich mich auf die Framerate verlassen, aber ich denke, dass sie nicht genau ist.

user55489
quelle
1
Der naheliegende Punkt hier ist, Ihre alte Maschine zu Testzwecken aufzubewahren. Die meisten ernsthaften Entwickler behalten eine Maschine, deren Spezifikation ihren angestrebten "Mindestsystemanforderungen" entspricht. Lässigere Entwickler testen in der Regel nur auf der Maschine mit der niedrigsten Leistung, die sie haben, und erklären dies dann als Minimum
Jon Story
SOFA ist ein systemweites OpenSource-Tool zur Erstellung einheitlicher CPU- und GPU-Profile für Nvidia GPU / CUDA-Anwendungen. Es ist einfach zu installieren und zu testen. github.com/cyliustack/sofa
Cheng-Yueh Liu

Antworten:

13

Sie werden Profiler genannt. In Visual Studio sind sowohl CPU- als auch GPU-Profiler in neueren Versionen integriert. Ein Profiler gibt Ihnen eine Vorstellung davon, wie viel Zeit Ihre App benötigt und wo diese Zeit verbracht wird. Dies wird jedoch die Probleme der überspezifizierten Hardware nicht vollständig abwenden. Die App ist möglicherweise an eine geringere CPU gebunden, verwendet jedoch nur 60% Ihres Entwicklercomputers. Sie können Ihnen dabei helfen, Trends zu verfolgen, z. B. zu bemerken, dass das, was früher 0,5 ms dauerte, jetzt 2 ms dauert, was auf Änderungen hinweist, die die Leistung beeinträchtigten.

Die Bildrate war für die Leistungsmessung noch nie nützlich. Sie müssen die Dinge zeitlich festlegen. Sie können einen instrumentierten Profiler im Spiel erstellen, was eine große Hilfe sein kann (und Unternehmen wie RAD verkaufen einige instrumentierte Profiler von der Stange, die auf Spiele ausgerichtet sind), oder Sie können einen separaten Sampling-Profiler verwenden, der Statistiken aus einem laufenden Programm ohne sammelt muss es ändern.

Tools wie Very Sleep sind kostenlose Profiler, die Sie ausführen können, wenn Sie nicht in Visual Studio sind oder nicht für kompetentere Entwicklertools bezahlen möchten (die oft eine weitaus bessere Investition sind als neue Hardware, könnte ich bemerken). Für OSX, Linux, Konsolen und mobile Plattformen stehen ähnliche Tools zur Verfügung. Intels VTune ist der leistungsfähigste Sampling-Profiler, den ich kenne, aber er ist teuer und funktioniert natürlich nur auf Intel-CPUs (obwohl er Nicht-Windows-Betriebssysteme unterstützt).

Für die GPU können Sie eigenständige Tools wie NVIDIAs NSight oder AMDs PerfStudio oder Intels GPA verwenden . Auch hier gibt es einige Tools für andere Plattformen als Windows. Die für Konsolen sind in der Regel erstklassig, während die für Linux derzeit nur Junk sind und ich persönlich nicht mit den Angeboten auf anderen Plattformen vertraut bin.

Letztendlich müssen Sie jedoch auf der Zielhardware testen. Finden Sie heraus, was Ihre Low-End-Zielhardware ist, und kaufen Sie dann eine davon (oder suchen Sie einen Tester mit einer). Testen Sie das. Es gibt absolut keinen anderen guten Weg, um sicherzustellen, dass Ihr Spiel auf dieser Hardware gut läuft, als es nur mit dieser speziellen Hardware zu testen. Dies gilt für PCs, mobile Geräte usw. (und dies ist einer der Gründe, warum viele Entwickler Zielkonsolen oder geschlossene Ökosysteme wie Apples Produkte bevorzugen. Dadurch wird die Anzahl der zu testenden Hardwarekonfigurationen erheblich reduziert.)

Spieleentwicklungsstudios verfügen häufig über ganze Labore mit unterschiedlichen Konfigurationen (unterschiedliche Leistungsstufen, Hardware verschiedener Hersteller, unterschiedliche Versionen des Zielbetriebssystems usw.), um ihre Tests durchzuführen. Kleinere Indie-Entwickler haben möglicherweise ein paar Computer zum Testen, wie einen primären Desktop, einen Backup-Desktop und einen Laptop (und müssen sich dann viel mehr auf freiwillige Tests verlassen).

Sean Middleditch
quelle
3
Wenn Sie Probleme haben, einen Ziel-PC zu erhalten, oder Ihr Spiel auf mehreren Computern ausprobieren möchten, können Sie auch versuchen, zuerst VMs auszuführen, da Ihr neuer Computer so leistungsfähig ist. Sie sind nicht sehr genau, aber sie geben Ihnen einen guten Überblick darüber, wie sie auf bestimmten Computerbereichen ausgeführt werden, die Sie dann eingrenzen können.
Morgan Patch
1
@ LyonesGamer - Testen mit VMs ist ein wirklich guter Vorschlag. In der Vergangenheit habe ich persönlich Engpässe festgestellt, die auf einer VM aufgetreten sind, die meine eigene Hardware jedoch harmlos verschluckt hat. Wenn Sie das nicht können, kann es auch eine gute Wahl sein, einen billigen zweiten PC mit Intel-Grafik zu kaufen (wie bei VMs kann Intel-Grafik häufig Probleme aufdecken, mit denen die großen Waffen vernünftig umgehen, und Sie können sicher sein, dass etwas in Ordnung ist auf Intel-Grafik läuft es dann gut auf allem anderen).
Maximus Minimus
Eine einfache Alternative kann der Prozess-Explorer sein , der seit einiger Zeit auch Leistungsdiagramme für die GPU enthält.
PTwr
1
Es gibt keinen Grund, eine VM zu verwenden, anstatt nur einen Profiler für Perf-Tests zu verwenden. Sie müssen die Leistung tatsächlich messen . Für Hardwaretests testen Sie entweder auf realer Zielhardware oder verschwenden Ihre Zeit aufgrund der variablen Natur von VMs. Das Testen eines Spiels in einer VM ist nur relevant, wenn Sie echte Benutzer unterstützen möchten, die Ihr Spiel in dieser bestimmten VM auf dieser bestimmten Hardware ausführen (ein leistungsfähiger Computer kann eine gute VM immer noch erheblich schneller ausführen als schwächere Hardware selbst).
Sean Middleditch
1
@ArcaneEngineer: gibt es in der Tat. Es gibt Profiler für jedes Desktop-Betriebssystem, alle verschiedenen Mobiltelefone und jede Konsole. Wir verwenden RAD Telemetry (C ++ - Bibliothek: instrumentierter Profiler), der so gut wie jede Plattform unterstützt, und dann Intel VTune (Anwendung: Advanced Sampling Profiler) für unser umfassenderes PC- und Server-Profiling. Keiner von beiden ist jedoch kostenlos. Es gibt auch viele andere Möglichkeiten.
Sean Middleditch