TU Darmstadt / ULB / TUbiblio

Improving Cache usage of Tracing Incoherent Rays on GPUs

Schulz, André (2012):
Improving Cache usage of Tracing Incoherent Rays on GPUs.
Darmstadt, TU, Diplomarbeit, 2012, [Master Thesis]

Abstract

Path tracing and related global illumination techniques create beautiful photorealistic images but computing these images is expensive. The process can be sped up by parallelization as it is embarassingly parallel. With recent developments in CPU technology moving towards many-core architectures and GPUs becoming more general purpose architectures, path tracing can now be parallelized on commodity hardware. Unfortunately, while the parallelization is trivial in theory, in reality hardware details make it more difficult, especially for tracing incoherent rays. This thesis investigates the impact of different bounding volume hierarchy (BVH) and node memory layouts as well as accessing the BVH in different memory areas on the ray tracing performance of a path tracer on a many-core wide SIMD architecture by NVIDIA, the Tesla C2070. Furthermore, we optimize the BVH layout by using information gathered in a pre-processing pass which we use in a number of different BVH reordering techniques. Depending on the memory area and complexity of the scene, we are able to achieve a speedup ranging from negligible to moderate. "Path Tracing" und verwandte Techniken zur globalen Beleuchtung können sehr schöne, fotorealistische Bilder erzeugen, welche jedoch sehr aufwendig zu berechnen sind. Dieser Prozess kann durch Parallelisierung beschleunigt werden, da dieser hochgradig einfach zu parallelisieren ist. Aufgrund der Entwicklung von CPUs hin zu Viel-Kern-Architekturen sowie der Entwicklung von GPUs zu allgemeineren Architekturen, kann Path Tracing heutzutage auf handelsüblicher Hardware parallelisiert werden. Theoretisch ist die Parallelisierung trivial, aber in der Praxis schwieriger wegen diverser Hardwaredetails, welche speziell die Verfolgung von inkohärenten Strahlen zu einer Herausforderung machen. Diese Arbeit untersucht, wie sich verschiedene Speicherlayouts von Hüllkörper-Hierarchien und deren Knoten sowie der Zugriff auf diese über verschiedene Speicherbereiche auf die Strahlverfolgungsleistung eines Pathtracers auswirkt, welcher auf einer breiten SIMD Viel- Kern-Architektur von NVIDIA, der Tesla C2070, läuft. Weiterhin, wird das BVH Layout durch Informationen optimiert, welche in einem Vorverarbeitungsschritt gesammelt und für verschiedene BVH Umsortierungstechniken verwendet wird. In Abhängigkeit vom verwendeten Speicherbereich und der Szenenkomplexität erreichen wir eine Laufzeitverbesserung, welche von geringfügig bis mässig reicht.

Item Type: Master Thesis
Erschienen: 2012
Creators: Schulz, André
Title: Improving Cache usage of Tracing Incoherent Rays on GPUs
Language: English
Abstract:

Path tracing and related global illumination techniques create beautiful photorealistic images but computing these images is expensive. The process can be sped up by parallelization as it is embarassingly parallel. With recent developments in CPU technology moving towards many-core architectures and GPUs becoming more general purpose architectures, path tracing can now be parallelized on commodity hardware. Unfortunately, while the parallelization is trivial in theory, in reality hardware details make it more difficult, especially for tracing incoherent rays. This thesis investigates the impact of different bounding volume hierarchy (BVH) and node memory layouts as well as accessing the BVH in different memory areas on the ray tracing performance of a path tracer on a many-core wide SIMD architecture by NVIDIA, the Tesla C2070. Furthermore, we optimize the BVH layout by using information gathered in a pre-processing pass which we use in a number of different BVH reordering techniques. Depending on the memory area and complexity of the scene, we are able to achieve a speedup ranging from negligible to moderate. "Path Tracing" und verwandte Techniken zur globalen Beleuchtung können sehr schöne, fotorealistische Bilder erzeugen, welche jedoch sehr aufwendig zu berechnen sind. Dieser Prozess kann durch Parallelisierung beschleunigt werden, da dieser hochgradig einfach zu parallelisieren ist. Aufgrund der Entwicklung von CPUs hin zu Viel-Kern-Architekturen sowie der Entwicklung von GPUs zu allgemeineren Architekturen, kann Path Tracing heutzutage auf handelsüblicher Hardware parallelisiert werden. Theoretisch ist die Parallelisierung trivial, aber in der Praxis schwieriger wegen diverser Hardwaredetails, welche speziell die Verfolgung von inkohärenten Strahlen zu einer Herausforderung machen. Diese Arbeit untersucht, wie sich verschiedene Speicherlayouts von Hüllkörper-Hierarchien und deren Knoten sowie der Zugriff auf diese über verschiedene Speicherbereiche auf die Strahlverfolgungsleistung eines Pathtracers auswirkt, welcher auf einer breiten SIMD Viel- Kern-Architektur von NVIDIA, der Tesla C2070, läuft. Weiterhin, wird das BVH Layout durch Informationen optimiert, welche in einem Vorverarbeitungsschritt gesammelt und für verschiedene BVH Umsortierungstechniken verwendet wird. In Abhängigkeit vom verwendeten Speicherbereich und der Szenenkomplexität erreichen wir eine Laufzeitverbesserung, welche von geringfügig bis mässig reicht.

Uncontrolled Keywords: Optimization, General Purpose Computation on Graphics Processing Unit (GPGPU), GPU computing, Graphics Processing Unit (GPU), Ray tracing, Path-tracing, Stochastic ray tracing, 3D Computer graphics, 3D Graphics, Compute Unified Device Architecture (CUDA), Hierarchical bounding volumes, Global illumination, GPU ray casting, Hierarchical data structures
Divisions: 20 Department of Computer Science
20 Department of Computer Science > Interactive Graphics Systems
Date Deposited: 12 Nov 2018 11:16
Additional Information:

53 p.

Export:
Suche nach Titel in: TUfind oder in Google
Send an inquiry Send an inquiry

Options (only for editors)
Show editorial Details Show editorial Details