
Fair DRM Scheduler v4 läuft gut auf Steam Deck, "sieht solide aus"
Tvrtko Ursulin von Igalia hat den Fair DRM Scheduler als "faire" Scheduling-Policy entwickelt, um mehreren Anwendungen/Prozessen zu helfen, die gleichzeitig die GPU nutzen wollen. Mit dem diese Woche erschienenen v4-Patch-Set für den DRM Fair Scheduler gibt es einige große Code-Änderungen, aber insgesamt sieht es gut aus als eine nette Scheduling-Policy für mehrere Anwendungen/Spiele/Prozesse, die gleichen Zugriff auf GPU-Ressourcen haben wollen.
Eine Übersetzung von 🇬🇧 Phoronix.com
Der Fair DRM Scheduler ist vom CFS Scheduler des Linux-Kernels inspiriert. Ursulin beschreibt diese Scheduling-Politik wie folgt:
Die faire Scheduling-Politik basiert auf denselben Konzepten wie der bekannte CFS-Kernel-Scheduler - die Warteschlange für die Ausführung von Entitäten wird nach der von den Entitäten verbrauchten virtuellen GPU-Zeit so sortiert, dass die Entität mit der geringsten Laufzeit zuerst ausgeführt wird.
Er ist in der Lage, eine totale "priority starvation" zu vermeiden, die eines der Probleme mit FIFO ist, und es eliminiert auch die Notwendigkeit für Laufwarteschlangen pro Priorität. Da die tatsächliche GPU-Laufzeit mit abnehmender Priorität um einen exponentiellen Faktor skaliert wird, wächst die virtuelle Laufzeit für Entitäten mit niedriger Priorität schneller als für Entitäten mit normaler Priorität, so dass sie bei gleichem realen GPU-Zeitaufwand in der Runqueue-Reihenfolge weiter nach hinten rücken.
Abgesehen von dieser grundsätzlichen Fairness ist die faire Politik besonders stark bei Überbelegungs-Workloads, wo sie in der Lage ist, kurzen und stoßartigen Workloads mehr GPU-Zeit zu geben, wenn sie parallel zu GPU-lastigen Clients laufen, die tiefe Job-Warteschlangen einreichen.
Die Tests des Fair DRM Schedulers haben sich zum Teil auf das Valve Steam Deck Handheld konzentriert, wobei diese Bemühungen von der Beratungsfirma Igalia unterstützt wurden.
Der Igalia-Ingenieur beschreibt die Auswirkungen des Fair DRM Scheduler v4 wie folgt:
In meinen Experimenten sieht der faire Planer solide aus, also werden wir sehen, wie er nach weiteren Tests abschneidet.
Die Hauptvorteile der Serie sind auf hohem Niveau
1. Qualität der Planung - plant besser als FIFO.
2. Codevereinfachung - keine mehrfachen Warteschlangen mehr.
Als Hauptergebnis habe ich drei gleichzeitige Clients auf dem Steam Deck getestet:
Eine Instanz einer deferredmultisampling Vulkan-Demo, die mit niedriger Priorität läuft,
eine Instanz der gleichen Demo mit normaler Priorität und den Unigine Heaven Benchmark.
Mit dem FIFO-Scheduler können wir sehen, dass der Client mit niedriger Priorität komplett
ausgehungert ist und die GPU-Zeitverteilung zwischen den anderen beiden Clients ungleichmäßig ist:
https://people.igalia.com/tursulin/drm-sched-fair/fifo-starvation.png
Beim Wechsel zum fairen Scheduler ist die GPU-Zeitverteilung fast gleich und der
Client mit niedriger Priorität bekommt einen kleinen Anteil der GPU:
https://people.igalia.com/tursulin/drm-sched-fair/fair-no-starvation.png
...
Insgesamt sieht Fair nach einer potenziellen Verbesserung in Bezug auf Fairness aus, insbesondere bei der Vermeidung von Priority Starvation. Bei den getesteten Workloads scheint es keine Regressionen zu geben."
Die v4-Patches haben die Terminplanung durch Fair ersetzt, die Unit-Tests verbessert und weitere Verbesserungen/Fixes vorgenommen. Weitere Details zum Fair DRM Scheduler finden Sie in dieser Patch-Serie.
Ein Service von s3n🧩net
Comments