AnyDSL-Ray - An Open, Scalable, and Portable Ray Tracing Infrastructure

Die Ray-Tracing-Technologie stellt für zahlreiche unterschiedliche Visual Computing-Technologien einen zentralen Knotenpunkt dar. Viele Projekte mit Bezug zu Visual Computing – sowohl innerhalb als auch außerhalb des Intel-VCI – greifen auf die Ray-Tracing-Technologie zurück oder streben deren Einsatz an.

Jedoch unterliegen die Ray-Tracing-Implementierungen von heute einigen Einschränkungen: Statt flexibler Bibliotheken, auf denen andere Projekte aufbauen können, handelt es sich häufig eher um monolithische Anwendungen. Außerdem lassen sie sich in der Regel nur entlang einiger Achsen wie etwa Bildqualität, Modellgröße, Hardware-Ressourcen und Anwendungstyp skalieren. Viele dieser Implementierungen können nicht so einfach erweitert oder mit einer spezifischen Hardware-Plattform verbunden werden. Dies ist bei folgenden Systemen der Fall: Nvidia Optix etwa ist an eine spezifische Hardwarearchitektur gebunden, dem Open Source-System Manta fehlt es an qualitativ hochwertigen Renderern, und es konfrontiert den Programmierer mit SSE-Kodierung auf niedriger Ebene. Embree konzentriert sich auf einzelne Kernel und bietet (noch) keine vollständige Rendering-Lösung. PBRT ist ein komplettes Rendering-System, lässt jedoch die notwendigen Leistungsoptimierungen vermissen.

Mit diesem Projekt soll diese Lücke geschlossen werden. Hierzu wird eine vollständig Open Source-basierte Ray-Tracing-Infrastruktur entwickelt und aufgebaut, die als Bibliothek bzw. Tool genutzt werden kann. Die Infrastruktur lässt sich mithilfe der richtigen Compiler-Technologie auf eine Vielzahl an Hardware-Plattformen portieren und bietet dabei gleichzeitig eine nahezu optimale Leistung auf jeder dieser Plattformen. Außerdem zielt die Infrastruktur explizit auf eine Skalierbarkeit über die verschiedenen Dimensionen von Ray-Tracing-Technologien ab, die Nutzer benötigen. Wir nähern uns dem Projektziel in zwei Etappen: Mit Hilfe des grundlegenden AnyDSL-Compilers und dem AnyDSL-Ray Ray-Tracing-System.

Wir bauen auf das AnyDSL-Compiler-Projekt auf. Dieses hat zum Ziel, domänenspezifische Bibliotheken (DSL) auf hoher Ebene anzubieten. Gleichzeitig soll ermöglicht werden, diese Bibliotheken mithilfe von User-Space-Bibliotheken mit Verfeinerungstransformationen in einen hocheffizienten und hardwarespezifischen Code zu kompilieren. Inzwischen befindet sich AnyDSL in einem Stadium, in dem die Infrastruktur von größeren Anwendungen genutzt werden kann, auch wenn AnyDSL noch weitere Verfeinerungen und Erweiterungen benötigt.

In AnyDSL-Ray haben wir Ray-Traversal-Abstraktionen erstellt. Aus diesen können wir leistungsstarke Varianten von Ray-Traversal-Routinen generieren. Der resultierende Code kann mit den handcodierten Embree-Kernels auf der CPU mithalten und übertrifft sogar hochmoderne GPU-Implementierungen.

Aktueller Stand der Aktivitäten:

  • AnyDSL bietet eine Reihe einzigartiger Compiler-Werkzeuge, die für eine generische, leistungsstarke Ray-Tracing-Bibliothek entscheidend sein werden. Hierzu zählt der Code, der die im generischen Code verwendeten Abstraktionen sowohl auf die CPU- als auch die GPU-Zielhardware abbildet. Im Zuge der Entwicklung des Ray-Tracing-Codes wurden einige Einschränkungen bei AnyDSL festgestellt, speziell im Hinblick auf das Typensystem. Dies wird mit dem kommenden neuen Typensystem für AnyDSL und weiteren Arbeiten behoben.
  • Der oben erwähnte Ray-Tracing-Code enthält einen vollständigen Ray-Tracer mit globaler Beleuchtung (mittels Path-Tracing), Transparenz, Texturen und erweiterten Materialien (wie Glas). Mit der direkten Nutzung der neuen DSL-Funktionen definieren und beschreiben wir die Architektur derart, dass sie in allen obigen Bereichen (Qualität, Komplexität, Hardware, Anwendungen etc.) skalierbar ist und dabei gleichzeitig die notwendigen Haken bietet, um die generischen und hardwarespezifischen Optimierungen durch geeignete Verfeinerungen der DSL-Konstrukte durchzuführen. Ziel soll sein, dass die Leistung nahe an den hochoptimierten Code in Embree heranreicht. Für diesen waren zahlreiche Entwicklerjahre erforderlich. Wir werden jedoch von vielen der architektonischen und algorithmischen Design-Entscheidungen in Embree profitieren können [Siggraph’14].

Bereitstellung als Plattform für kollaborative Forschung: Mit dem AnyDSL-Ray Ray-Tracing-System soll eine sehr flexible und dennoch leistungsstarke Grundlage geschaffen werden, auf der andere Projekte aufbauen können. Zu diesem Zweck müssen wir einen Renderer in eine Form bringen, die von externen Entwicklern auf einfache Weise mithilfe eines Open Source-Ansatzes genutzt werden kann. Dazu gehört eine ausreichend flexible API für verschiedene Typen und Geometrieanordnungen, erweiterte Shading-Unterstützung, erweiterte Beschleunigungsstrukturen und deren Algorithmen. Als Grundlage für diese Arbeit werden wir hauptsächlich den XML3D-Szenenbeschreibungsansatz verwenden. Darüber hinaus planen wir, die erweiterten Algorithmen zur Beleuchtungssimulation im Sinne unserer vier Siggraph-Veröffentlichungen einzubinden [SigAsia’12, SigAsia’13, 2x Siggraph’14]. Dabei konzentrieren wir uns hauptsächlich auf die Vertex-Verbindung und den Fusionierungsansatz [Georgiev et al., SigAsia’12] sowie dessen Abbildung auf hochgradig parallele Architekturen [Davidovic et al., Siggraph’14].

Als Grundlage für das Design von AnyDSL-Ray dienen mehrere interne Intel-VCI- und DFKI-Projekte (Deutsches Forschungszentrum für Künstliche Intelligenz), darunter Dreamspace, ein EU-Projekt zur Erstellung fotorealistischer Echtzeit-Bilder; die Future Internet-Projekte zur Erweiterung von XML3D im Hinblick auf eine qualitativ hochwertige Rendering-Lösung (auch in der Cloud) mit portierbaren Materialmodellen; Display as a Service (DaaS) zur Bereitstellung von Rendering-Diensten innerhalb von DaaS sowie weitere Projekte.

Projektteam

Principal Investigator
Prof. Dr.-Ing. Philipp Slusallek