News RadeonRays springt von 2.0 auf 4.0 und nutzt nun BVH (update)

User-News

Von E555user

Hinweis: Diese "User-News" wurde nicht von der Planet 3DNow! Redaktion veröffentlicht, sondern vom oben genannten Leser, der persönlich für den hier veröffentlichten Inhalt haftet.
Die schlechte Nachricht zuerst. AMD stellt die neue API nicht mehr als Open Source zur Verfügung. Die Nutzung bleibt aber frei.

In einem gewaltigen Schritt wurde dafür von Version 2.0 auf 4.0 die API vollständig umgebaut (GPUopen). Diverse News zu den neuen Konsolen und RDNA2 haben bereits den Weg zu Bounding Volume Hierarchy (BVH) aufgezeigt. War bislang OpenCL die Basis um in beliebiger Compute-Software ohne besondere Hardwareunterstützung Raytracing zu unterstützen bietet man nun wie Nvidia mit BVH ein für GPU-Beschleunigung geeignetes Verfahren als Basis. Das RadeonRays 4.0 SDK basiert nunmehr auf C Code.

Konsequenter Weise werden damit für die wichtigen 3D-APIs Bibliotheken angeboten: DirectX 12, Metal und Vulkan. Eine für AMD Verhältnisse umfangreiche Dokumentation auf GitHub.io als Teil von Radeon ProRender komplettiert den neuen Auftritt. Allein ein dokumentiertes Beispiel für Vulkan fehlt noch, Tutorial-Code ist aber für alle 3 APIs im SDK vorhanden.
Bildschirmfoto 2020-05-14 um 09.42.26.png

Da man mit dem Code nach wie vor generischen bzw. RDNA-unabhängigen Ray- bzw. Pathtracing-Code erstellt ist noch unklar, ob es noch weiter optimierte Schnittstellen für Spieleentwickler geben wird oder ob AMD bereits auf diese Libraries im Treiber für GCN und RDNA vollständig optimieren kann.

RadeonRays 4.0

RadeonRays is a ray intersection acceleration library for heterogeneous hardware and software systems. AMD developed RadeonRays to help developers make the most of GPU, APUs and CPUs, and to eliminate the need to maintain hardware-dependent code.

The library offers a well-defined C API for scene building and performing asynchronous ray intersection queries.

RadeonRays is not limited to AMD hardware, a specific operating system or graphics framework. The library helps assure compatibility and best performance across a wide range of hardware platforms.
 
Zuletzt bearbeitet:
In einer Zusammenfassung zu neuen Features und Effekten erläutert Jason Lacroix von AMD den neuen Softwarestand.
Bei der Gelegenheit wurde auch Radeon Rays 3.0 (download) erwähnt, das mir bislang nicht bekannt oder irgendwie entfallen war. Diese Entwicklungsstufe von Mitte März 2019 hatte bereits eine Implementierung für Vulkan mit BVH für CPU/GPU Beschleunigung geboten.

Neu an RadeonRays 4.0 sind u.a. drei unterschiedliche Modi für die Intersection Berechnung enthalten. Das erste ist eine Compute-Variante, die in der Funktionsweise die V2.0 & V3.0 wiederspiegelt und für HW-generische Design-Apps prädestiniert ist. Genutzt wird BVH mit axis aligned bounding boxes (AABB).
Nur für AMD nutzbar mit dem Fokus Gaming sind die Varianten mit HW-beschleunigter BVH Intersection Berechnung. Zum einen gibt es eine DXR1.1 kompatible Variante, darüber hinaus kann man unabhängig von DX12-Vorgaben mit einer dritten Variante den BVH offen definieren um so noch stärker für AMD RDNA optimiert dynamische BVH Strukturen nutzen.
Letzteres hat man bereits (zumindest teilweise) in den Spezifikationen des Raytracing für Vulkan gesehen.

Der entsprechende, leider nur kurze Videoausschnitt bei 36:57
Es wird spannend werden in wie weit diese neuen dynamischen Möglichkeiten bei der BVH Berechnung bereits in beiden kommenden Konsolen-Chips einem DXR1.2 oder DXR2.0 vorgreifen, oder ob nur mit RDNA2 auf dem Desktop das volle aktuelle AMD RDNA Raytracing Feature Set zur Verfügung steht.

PS: Etwas mehr Einblick in den Featureset von Radeon Rays 3.0, wie dieser 4.0 vorbereitet hat und was da für Vega und GCN noch drin ist gibt die Präsentation Enabling Light Baking Workflows - GDC 2019 von Dmitry Kozlov AMD und Max Gridnev Saber Interactive, Seite 20ff.
Nach dem Durchsehen der Rays 3.0 denke ich dort wird allgmeines Compute eingesetzt, die Shader sind in SPIR-V abgelegt mit Anpassungen für Fijii und Vega (RapidPacked Math), sowie AMD generisch und Nvidia wo nötig.
 
Zuletzt bearbeitet:
Ich möchte noch den Snippet aus Mark Czernys Präsentation "Road to PS5" (bei 30:00) hinweisen, in der er auf einen sehr hohen Bandbreitenbedarf beim Raytracing des Chips mit BVH-Strukturen und der Intersection-Engine hinweist.
Das spricht entweder für ein Desgin mit sehr viel Cache um den BVH-Tree vorzuhalten oder aber für sehr schnellen VRAM, aka HBM3 für gute Raytracing-Leistung.
 
Zurück
Oben Unten