Frametimes und CPU Auslastung.

Supernatural909

Cadet 2nd Year
Registriert
Aug. 2014
Beiträge
31
Meine Damen und Herren,

Ich frage mich schon seit geraumer Zeit was es mit Frametimes auf sich hat. Auch wenn man 100 Bilder pro Sekunde erreicht, bringen die einem nicht so viel wenn 20 Frames in den ersten 20 Millisec und die anderen 80 Frames in den letzten 10 MS ausgegeben werden. Das Bild ruckelt dann. Mir ist (hoffentlich) bewusst, dass viele Threads schlechtere Frametimes bedeuten, da das Abstimmen der gleichmäßigen Aufgabenverteilung auf vielen Threads und das damit verbundene Timing schwierig ist.
Jedoch bedeutet eine hohe CPU Auslastung ebenfalls schlechtere Frametimes obwohl die FPS in Vergleich zu einer besseren CPU gleich sind?
Sind CPUs mit niedrigerer Threadzahl im allgemeinen besser beim liefern einer konstanten Frameausgabe?

Da dieses Thema im Vergleich zu fps nicht sehr viel behandelt wird, hoffe ich auf eure Erfahrung bzw. evt. auch Quellen zu dem Thema :3
 
Frametimes ist das, was die GPU eigentlich berichtet. Also beispielsweise, die Berechnung des letzten Frames hat 16 ms gedauert.

FPS wurden nur erfunden, damit man die Performance in einem Spiel mit einem Wert ausdrücken kann, ist aber ein schlechtes Maß für die Leistung in einem Spiel, aus Gründe die du bereits erwähnt hast.

Bei der Ermittlung der FPS wird der Kehrwert der Frametimes der Bilder der letzten Sekunde gemittelt und durch die Mittelung werden Spitzen in der Frametime ausgebügelt.
 
Zuletzt bearbeitet:
FPS lassen sich halt einfacher vergleichen, ist ja nur der Kehrwert der Durchschnittlichen Frametimes.

Was nun die Frametimes mit den Threads und Kernen zu tun haben, lässt sich nicht so leicht beantworten und muss Teils von Spiel zu Spiel untersucht werden.
Generell würde ich aber zu CPUs mit mehr Threads tendieren, da dann mehr Ressourcen für "Hintergrundprogramme" wie den Browser oder den Antivirus zu Verfügung stehen und der/die Spiele-Thread(s) nicht so oft unterbrochen werden. Deshalb liefern z.B. die i7 gleichmäßigere Frametimes als die i5, weil das Hyperthreading Leistungsspitzen besser abfangen kann. Gibt dann aber auch natürlich Negativbeispiele, bei denen Hyperthreading zu Probleme führt, wenn der Windows-Scheduler misst baut.
 
Zuletzt bearbeitet:
Supernatural909 schrieb:
Sind CPUs mit niedrigerer Threadzahl im allgemeinen besser beim liefern einer konstanten Frameausgabe?

Nö und wieso .. weil die Frametimes nicht immer nur CPU abhängig sind ... sondern halt auch GPU Abhängig.

Dann kommt es einfach auf den Effekt drauf an welcher wo und wie berechnet wird und somit dann Rechenleistung braucht.

Ansonsten hängt das ganze auch von dem Spiel ab wie es die Aufgaben verteilen kann und tut. Es gibt Games die nutzen 1-2 Kerne ... andere die nutzen halt 8 und mehr komplett aus. Ergo kann man nichts pauschalisieren sondern muss immer speziell das eine Spiel betrachten.

@ Schrank FPS ist Anzahl der Frames pro Sekunde.

Wie du da addieren willst glaub ich kaum das da was gescheites rauskommt. Denn die Summe aller Frametimes in einer Sekunde ist eine Sekunde.
 
Nilson schrieb:
FPS lassen sich halt einfacher vergleichen, ist ja nur der Kehrwert der Durchschnittlichen Frametimes.

Was nun die Frametimes mit den Threads und Kernen zu tun haben, lässt sich nicht so leicht beantworten und muss Teils von Spiel zu Spiel untersucht werden.
Generell würde ich aber zu CPUs mit mehr Threads tendieren, da dann mehr Ressourcen für "Hintergrundprogramme" wie den Browser oder den Antivirus zu Verfügung stehen und der/die Spiele-Tread(s) nicht so oft unterbrochen werden. Deshalb liefern z.B. die i7 bessere Frametimes als i5, weil das Hyperthreading Leistungsspitzen besser abfangen kann. Gibt dann aber auch natürlich Negativbeispiele, bei denen Hyperthreading zu Probleme führt, wenn der Windows-Scheduler misst baut.

xxMuahdibxx schrieb:
Nö und wieso .. weil die Frametimes nicht immer nur CPU abhängig sind ... sondern halt auch GPU Abhängig.

Dann kommt es einfach auf den Effekt drauf an welcher wo und wie berechnet wird und somit dann Rechenleistung braucht.

Ansonsten hängt das ganze auch von dem Spiel ab wie es die Aufgaben verteilen kann und tut. Es gibt Games die nutzen 1-2 Kerne ... andere die nutzen halt 8 und mehr komplett aus. Ergo kann man nichts pauschalisieren sondern muss immer speziell das eine Spiel betrachten.

@ Schrank FPS ist Anzahl der Frames pro Sekunde.

Wie du da addieren willst glaub ich kaum das da was gescheites rauskommt. Denn die Summe aller Frametimes in einer Sekunde ist eine Sekunde.

Yep, alles klar. Des macht Sinn. Kommt alles zu sehr auf Umgebung, Software und CPU an um dazu eine Aussage zu treffen.
 
Im Gegansatz zu DX11 kann in DX12 die Last des Main CPU Thread gut auf nahezu beliebig viele Threads aufgespalten werden.
Natürlich bleibt ein Teil der Verwaltung als nicht weiter parallelisierbarer Überhang an einem einzelnen Thread kleben.

Es ist üblicher weise so, dass dieser Thread dann die Arbeitsvermittlung an die Grafikkarte aufhällt.

Perfekt wäre also ein bis ins letzte Detail parallelisiertes Spiel, damit generell möglichst wenig Verzögerung entsteht.

Heute benötigt eine Grafikkarte mehrere hundert Takte und einen Frame fertig zustellen,
das kommt durch Puffer-Nutzung (Textur-Cache, etc.) hierdurch kann sehr viel Parallelität aus den Shader-Programmen extrahiert werden und sehr effizient gearbeitet werden.

Erzeugt jetzt die CPU zu viel Verzögerung, dann laufen die Grafikkarten-Puffer leer und die Parallelität geht auch dort verloren.
dx11vsdx12-performance.jpg
 
Ich habe dazu eine Reihe Themen erstellt...worum geht es dir denn? Willst du es allgemein verstehen oder für einen Hardware Kauf wissen was du brauchst?
 
Zurück
Oben