GPU Cost Estimation for Load Balancing
in Parallel Ray Tracing

Biagio Cosenza, Carsten Dachsbacher and Ugo Erra
In 8th International Conference on Computer Graphics Theory and Applications (GRAPP 2013)

An example of cost map evaluation. Left to right: the ray-traced image, the GPU-based estimation of the rendering cost, the actual packet-based rendering cost, position and normals in eye-space (used for the cost estimation), and using our method for an adaptive tiling of the image for parallel rendering

Abstract

Interactive ray tracing has seen enormous progress in recent years. However, advanced rendering techniques requiring many million rays per second are still not feasible at interactive speed, and are only possible by means of highly parallel ray tracing. When using compute clusters, good load balancing is crucial in order to fully exploit the available computational power, and to not suffer from the overhead involved by synchronization barriers. In this paper, we present a novel GPU method to compute a cost map: a per-pixel cost estimate of the ray tracing rendering process. We show that the cost map is a powerful tool to improve load balancing in parallel ray tracing, and it can be used for adaptive task partitioning and enhanced dynamic load balancing. Its effectiveness has been proven in a parallel ray tracer implementation tailored for a cluster of workstations.

Keywords: Ray Tracing, Image-based Techniques, Parallel Rendering, GPU.

Downloads

BibTex reference

@inproceedings{GRAPP13,
 author    = {Biagio Cosenza and Carsten Dachsbacher and Ugo Erra},
  title     = {GPU Cost Estimation for Load Balancing in Parallel Ray Tracing},
  booktitle = {International Conference on Computer Graphics Theory and Applications (GRAPP)},
  year      = {2013},
  pages     = {139-151},
  keywords  = {Ray Tracing, Image-based Techniques, Parallel Rendering, GPU},
  abstract  = 
{Interactive ray tracing has seen enormous progress in recent years. However, advanced rendering techniques
requiring many million rays per second are still not feasible at interactive speed, and are only possible by means
of highly parallel ray tracing. When using compute clusters, good load balancing is crucial in order to fully
exploit the available computational power, and to not suffer from the overhead involved by synchronization
barriers. In this paper, we present a novel GPU method to compute a cost map: a per-pixel cost estimate of
the ray tracing rendering process. We show that the cost map is a powerful tool to improve load balancing in
parallel ray tracing, and it can be used for adaptive task partitioning and enhanced dynamic load balancing. Its
effectiveness has been proven in a parallel ray tracer implementation tailored for a cluster of workstations.}
}

Additional materials and images

Our test scenes. (from left to right) Kalabsha Temple, Cornell box, Ekklesiasterion, Toasters, Paestum Temple.
Clik to open them on a bigger resolution.



rendering adaptive_tiling real_cost_map GPU_cost_map

Effectiveness of the cost map generation. Rendering (top-left), real packet-based cost map based on timings (bottom-left); the GPU-based cost map estimate (bottom-right); the resulting adaptive tiling (top-right). Javascript code courtesy of M. B. Hullin and G. Iliyan.



Multi-threading with tile buffering. A small number of tiles moves from the queue to the buffer. This allows separating the work stealing algorithm, working on the queue, from the multi-threading parallelization, working on the tile buffer.

Contact

For any inquiries about paper, algorithm implementation and source code, please send an email to
cosenza {at} tu-berlin.de.

Acknowledgements

Part of this work was funded by the Austrian Science Foundation FWF (DK+CIM, W1227) and also by the Austrian Ministry of Science BMWF as part of the UniInfrastrukturprogramm of the Research Platform Scientific Computing at the University of Innsbruck. The first author initiated this work at the Visualization Research Center, Universität Stuttgart, and has been partially funded by a DAAD Scholarship and a HPC-EUROPA2 project (228398). Carsten Dachsbacher acknowledges support from the Intel Visual Computing Institute, Saarbruecken.