Der AMD Radeon Vulkan-Treiber “RADV” für Open-Source-Grafikkarten hat kürzlich Unterstützung für die Erweiterung VK_NV_device_generated_commands in Mesa 22.2 aufgenommen. Die Erweiterung, die von NVIDIA entwickelt wurde, ist seit zwei Jahren aktiv und ermöglicht es der Grafikkarte, Rendering-Befehle über die Hardware zu erzeugen, anstatt sich nur auf Software zu verlassen.
AMD RADV Radeon Vulkan-Treiber beginnt mit der Unterstützung für gerätegenerierte Befehle durch NVIDIA-GPUs
Michael Larabel von der Open-Source-Website Phoronix berichtete über die kürzliche Aufnahme in Mesa 22.2. NVIDIA hat VK_NV_device_generated_commands so kodiert, dass nun “gerätegenerierte Befehle erzeugt werden, um die Rückleselatenz und Ineffizienzen zu überwinden, die entstehen, wenn man sich auf die CPU für spezifische Befehlsgenerierungsarbeiten verlässt”, berichtet Larabel. Gerätegenerierte Befehle, kurz DGC, helfen auch in Situationen, in denen die Grafikkartenhardware einen größeren Teil der globalen Szene verarbeiten kann, um die Shader “auf einer pro-Zeichnung-Basis” zu ändern.

Der NVIDIA-Blogpost vom März 2020 fasst die Vulkan-Erweiterung zusammen, die kürzlich zu Mesa 22.2 hinzugefügt wurde.
Mit den allgemeinen Fortschritten bei der programmierbaren Schattierung kann die GPU immer mehr Aufgaben beim Rendering übernehmen, indem sie zusätzliche Daten berechnet und die Implementierung einer größeren Vielfalt von Rendering-Algorithmen ermöglicht. Wenn es jedoch darum geht, den Zustand für Zeichenaufrufe einzurichten, müssen die Entscheidungen in erster Linie von der CPU getroffen werden. Daher war eine explizite Synchronisierung oder das Arbeiten mit den Ergebnissen vergangener Frames erforderlich. Durch gerätegenerierte Befehle wird diese Rückleselatenz beseitigt und bestehende Ineffizienzen überwunden.
NVIDIA Entwickler-Blog vom 17. März 2020
Die Erweiterung VK_NV_device_generated_commands wird seit ihren Ursprüngen in NVIDIAs eigenem GPU-Treiber verwendet, aber wir sehen jetzt, dass der AMD Radeon Vulkan-Treiber in Mesa 22.2 auch Radeon-Grafikkarten unterstützt. Phoronix stellt fest, dass:
Keine Funktion ist frei von Kompromissen. Ein Ansatz zur Gerätegenerierung bedeutet, dass einige treiberseitige Optimierungen möglicherweise nicht anwendbar sind. Darüber hinaus kann der Generierungsprozess die Gesamtrahmenzeit erhöhen, wenn die CPU Befehle aufzeichnen kann, ohne die GPU-Zeit zu beeinflussen. Schließlich wird zusätzlicher GPU-Speicher benötigt.
Zusammenfassend lässt sich sagen, dass das Ziel dieser Erweiterung in erster Linie darin besteht, die auf der GPU anfallende Arbeit zu reduzieren, indem auf dem Gerät entschieden wird, was und wie Arbeit erzeugt wird. Es geht nicht darum, die Befehlserzeugung generell von der CPU auf die GPU zu verlagern.
Bas Nieuwenhuizen, Miterfinder des RADV-Treibers, war einer der Entwickler, die an der aktuellen Zusammenführung gearbeitet haben. Larabel weist darauf hin, dass die Erweiterung “für die VKD3D-Unterstützung im Umgang mit der ExecuteIndirect-Funktionalität von D3D12 von Vorteil sein könnte.”
News-Quellen: Phoronix, NVIDIA Developer Blog,
Author Profile
- Abubakar ist ein Technikfreak, gewissenhaft, zuverlässig, und fleißige Person, deren Detailgenauigkeit im Zeitmanagement die meisten übertrifft. Daneben kennt er sich mit PC-Hardware aus, beschäftigt sich mit winzigen Benchmarks, Analysen und Tests, bevor er Informationen mit der Community teilt.