High-Performance Monte Carlo Radiosity on GPU based on Scene Partitioning
The recent interest in GPGPU, (General-Purpose computation on Graphics Processing Unit), has stimulated improvements in the programmability of the GPU. Although the utilization of new languages like OpenCL and CUDA facilitate GPU programming, different challenges have to be overcome to optimize the results of a direct implementation. Specifically, a straightforward implementation of the Monte Carlo radiosity algorithm on the GPU does not produce the expected performance. In this paper we develop different strategies to increase the performance of the implementation: utilization of an additional simplified version of the mesh to reduce the computational requirements, data partitioning of the scene to increase the data locality, and an efficient thread scheduling to exploit the characteristics of the GPU. Our approach increases the flexibility of previous solutions and the results show a significant improvement of the execution time.
keywords: Radiosity method, Monte Carlo algorithms, Graphics processing unit, CUDA, Data partitioning