Zeitgleich mit der Nvidia CES Keynote und deren Vorstellung neuer Methoden für
KI-basiertes Rendern von Spielegrafik haben
Cassie Hoef und
Serena Wang vom
DirectX Team eine entsprechende
Weiterentwicklung für die DirectX API angekündigt.
Neuronales Rendering: Ein neues Paradigma in der 3D-Grafikprogrammierung
Unter neuronalem Rendering werden verschiedene Techniken zur Verwendung von KI und ML verstanden, die in Render-Pipelines situativ eingesetzt werden sollen. Einzele Problemlösungen könnten somit wesentlich effizienter werden, das für den Programmierer zur Verfügung stehende Toolset erweitert sich um den Einsatz von neuronalen Netzen.
Mit dem aktuellen Vorstoss von Microsoft setzt man sich für eine Erweiterung von DirectX für eine plattformübergreifende Unterstützung neuronaler Rendering-Techniken ein.
Für die neuronalen Shader sieht man konkrete Anwendungsmöglichkeiten um einzelne Spiele-Assets mit KI besser zu rendern, Geometrie besser aufzubereiten, das Pathtracing effizienter zu machen oder um Spielcharaktere mit fotorealistischer Grafik zu erstellen.
Kernelement ist die Erweiterung um sogenannte
kooperative Vektoren. Darunter versteht man Matritzenmultiplikationen mit beliebig großen bzw. kleinen Vektoren. Durch die Optimierung von Matrix-Vektor-Operationen mit sehr hoher Last im KI-Training und -Inferencing soll deren massiver Einsatz ermöglicht werden. Die KI-Berechnungen sollen in verschiedenen Shader-Stufen ausführbar sein ohne die GPU als Ganzes zu blockieren. Ein kleines neuronales Netzwerk soll beispielsweise nur situativ in einem Pixel-Shader ausgeführt werden können. Die Entwickler sollen künftig neuronale Grafiktechniken nahtlos in DirectX-Anwendungen integrieren können und DirectX soll die Nutzung der KI-Beschleuniger-Hardware unterschiedlicher Hersteller erleichtern.
Der Terminus
kooperative Vektoren erinnert dabei an
kooperative Matritzen in Vulkan, bei denen diese über mehrere Shadereinheiten verteilt sein können.
Das HLSL-Team arbeitet
mit AMD, Intel, NVIDIA und Qualcomm bei der Erweiterung für kooperative Vektoren zusammen um die herstellerübergreifende Unterstützung im DirectX-Ökosystem sicherzustellen. Es wird eine Preview-Version in Aussicht gestellt. In diesem Zusammenhang verweist man wiederum auf die aktuellen Informationen von Nvidia zu neuronalem Rendering und den eigentlich gemäss
Nvidias Marketing der kommenden RTX-5000 Serie vorbehaltenen Funktionalität.
Mit der News zeigt Microsoft, dass man ebenso offen für Entwicklungskonzepte von Nvidia ist, nachdem man zuletzt mit dem
Work-Graph-Rendering oder
DirectSR eher Innovationen in Zusammenarbeit mit AMD in DirectX aufgenommen hatte.
Sicherlich sind neuronales Rendering und die kooperativen Vektoren eine eher langfristige Entwicklung, welche erst das ganze Potential zeigen kann, nachdem der Spielemarkt eine breite Unterstützung mit vorhandener Hardware annehmen darf. Bis dahin sind die Entwickler darauf angewiesen immer auch Alternativen ohne KI-unterstützung mit zu implementieren, so dass die Technik vorerst eher zusätzlichen Effekten vorbehalten bleiben wird. Spannend bleibt da die mögliche Unterstützung mit iGPUs in Kombination mit NPU der SoCs von AMD und Intel, bis hier her ist für das Konzept allerdings keine Auslagerung über einen PCIe-Bus hinweg für ältere dGPUs zu erwarten, mit DirectX liegt im Zweifel die Entscheidung beim Treiber. Sicherlich kann aber konstituiert werden, dass die herkömmliche Render-Pipeline mit den Entwicklungen in DirectX langsam aber sicher zu Grabe getragen wird. Es wäre durchaus möglich, dass ein DirectX-Nachfolger zur nächsten Konsolengeneration ausschliesslich auf moderne Compute-Pipelines setzt.
Nachtrag:
Auch bei AMD wurde bereits im Mai 2023 eine Arbeit zu beschleunigtem Rendering mit neuronalen Netzen bei Raytracing veröffentlicht. Man arbeitet schon länger an ähnlichen Konzepten, die auch bereits mit bestehenden GPUs (Navi31) getestet werden konnten. Mit
Sony Interactive Entertainment arbeitet man im Projekt Amethyst am gleichen Thema, die Ergebnisse könnten mittels Neural Rendering im künftigen DirectX ebenso umgesetzt bzw. verwendet werden.