Abstract

This chapter presents a method for efficiently generating random walks on the GPU. It analyzes the main drawback of naive random walk generators resulting in a low GPU utilization over time, and proposes an intuitive scheme for keeping all the processing units busy during the entire computation. A random walk is a Markov chain describing a trajectory of a walker that takes a number of successive random steps, thus forming a path through the domain. To sufficiently explore the domain, vast number of such paths needs to be computed. Even worse, the length of the walk is generally not known prior to execution because the termination criteria are probabilistic. A well-known method for rendering photo-realistic images that suffers from this problem is path tracing. The algorithm traces a high number of random walks from the camera in order to determine the color of each pixel in the image. The algorithm does not require interthread communication, collective operations, or intricate handling of work queues. Instead, the improved utilization is achieved by intelligently regenerating terminated walks. Optimization in the context of rendering global illumination images where random walks are used to compute the propagation of energy between light sources and cameras are discussed. Algorithms such as (bidirectional) path tracing, photon mapping, and irradiance caching directly benefit from the higher throughput; however, our technique is also applicable to nongraphical problems that explore the domain of interest by random walks.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call